R_CustRetItemPricingElementTP

DDL: R_CUSTRETITEMPRICINGELEMENTTP Type: view_entity TRANSACTIONAL

Pricing Element for Returns Order Item - TP

R_CustRetItemPricingElementTP is a Transactional CDS View that provides data about "Pricing Element for Returns Order Item - TP" in SAP S/4HANA. It reads from 2 data sources (I_SalesDocumentBasic, I_PricingElement) and exposes 35 fields with key fields CustomerReturn, CustomerReturnItem, PricingProcedureStep, PricingProcedureCounter. It has 1 association to related views.

Data Sources (2)

SourceAliasJoin Type
I_SalesDocumentBasic CustomerReturn inner
I_PricingElement PricingElement from

Associations (1)

CardinalityTargetAliasCondition
[1..1] R_CustomerReturnTP _CustomerReturn $projection.CustomerReturn = _CustomerReturn.CustomerReturn

Annotations (8)

NameValueLevelField
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
VDM.viewType #TRANSACTIONAL view
AccessControl.authorizationCheck #CHECK view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
Metadata.ignorePropagatedAnnotations true view
EndUserText.label Pricing Element for Returns Order Item - TP view

Fields (35)

KeyFieldSource TableSource FieldDescription
KEY CustomerReturn I_SalesDocumentBasic SalesDocument
KEY CustomerReturnItem I_PricingElement PricingDocumentItem
KEY PricingProcedureStep I_PricingElement PricingProcedureStep
KEY PricingProcedureCounter I_PricingElement PricingProcedureCounter
ConditionApplication I_PricingElement ConditionApplication
ConditionType I_PricingElement ConditionType
ConditionTypeName
ConditionCalculationType I_PricingElement ConditionCalculationType
PriceConditionDeterminationDte I_PricingElement PriceConditionDeterminationDte
ConditionRateAmount I_PricingElement ConditionRateAmount
ConditionRateRatio I_PricingElement ConditionRateRatio
ConditionBaseAmount I_PricingElement ConditionBaseAmount
ConditionBaseQuantity I_PricingElement ConditionBaseQuantity
ConditionQuantity I_PricingElement ConditionQuantity
ConditionAmount I_PricingElement ConditionAmount
ConditionCurrency I_PricingElement ConditionCurrency
TransactionCurrency I_PricingElement TransactionCurrency
ConditionQuantityUnit I_PricingElement ConditionQuantityUnit
ConditionRateRatioUnit I_PricingElement ConditionRateRatioUnit
ConditionIsForStatistics I_PricingElement ConditionIsForStatistics
ConditionIsManuallyChanged I_PricingElement ConditionIsManuallyChanged
ConditionInactiveReason I_PricingElement ConditionInactiveReason
CustomerReturnType _CustomerReturn CustomerReturnType
SalesOrganization _CustomerReturn SalesOrganization
DistributionChannel _CustomerReturn DistributionChannel
OrganizationDivision _CustomerReturn OrganizationDivision
_Item _Item
_CustomerReturn _CustomerReturn
_ConditionApplication I_PricingElement _ConditionApplication
_PricingConditionType I_PricingElement _PricingConditionType
_ConditionCurrency I_PricingElement _ConditionCurrency
_TransactionCurrency I_PricingElement _Currency
_ConditionQuantityUnit I_PricingElement _ConditionQuantityUnit
_ConditionInactiveReason I_PricingElement _ConditionInactiveReason
_ConditionCalculationType I_PricingElement _ConditionCalculationType
@VDM: {
  lifecycle.contract.type: #SAP_INTERNAL_API,
  viewType: #TRANSACTIONAL
}
@AccessControl: { 
  authorizationCheck: #CHECK,
  personalData.blocking: #('TRANSACTIONAL_DATA')
}
@ObjectModel: {
  semanticKey: ['CustomerReturn', 'CustomerReturnItem', 'PricingProcedureStep', 'PricingProcedureCounter'],
  usageType: {
    dataClass: #TRANSACTIONAL,
    serviceQuality: #C,
    sizeCategory:   #XL
   }
}
@Metadata.ignorePropagatedAnnotations: true
@EndUserText.label: 'Pricing Element for Returns Order Item - TP'

define view entity R_CustRetItemPricingElementTP 
   as select from I_PricingElement             as PricingElement
   inner join   I_SalesDocumentBasic           as CustomerReturn     on  CustomerReturn.SalesDocumentCondition = PricingElement.PricingDocument
                                                                     and CustomerReturn.SDDocumentCategory     = 'H'
  
  association [1..1] to R_CustomerReturnTP     as _CustomerReturn    on  $projection.CustomerReturn     = _CustomerReturn.CustomerReturn                                                                         

  association to parent R_CustomerReturnItemTP as _Item              on  $projection.CustomerReturn     = _Item.CustomerReturn
                                                                     and $projection.CustomerReturnItem = _Item.CustomerReturnItem
{

  key CustomerReturn.SalesDocument         as CustomerReturn,
  
  key PricingElement.PricingDocumentItem   as CustomerReturnItem,
  
  key PricingElement.PricingProcedureStep,
  
  key PricingElement.PricingProcedureCounter,
  
      @ObjectModel.foreignKey.association: '_ConditionApplication'
      PricingElement.ConditionApplication,
      
      @ObjectModel.foreignKey.association: '_PricingConditionType'
      PricingElement.ConditionType,
      
      //    needed as condition type name is filled without any condition type key for subtotal lines

      PricingElement._PricingConditionType._Text[1: Language=$session.system_language].ConditionTypeName as ConditionTypeName,
      
      @ObjectModel.foreignKey.association: '_ConditionCalculationType'
      PricingElement.ConditionCalculationType,
      
      PricingElement.PriceConditionDeterminationDte,
      
      @Semantics.amount.currencyCode: 'ConditionCurrency'
      @OData.v2.amount.noDecimalShift: true
      PricingElement.ConditionRateAmount,
      
      @Semantics.quantity.unitOfMeasure: 'ConditionRateRatioUnit'
      PricingElement.ConditionRateRatio,

      @Semantics.amount.currencyCode: 'TransactionCurrency'
      @OData.v2.amount.noDecimalShift: true
      PricingElement.ConditionBaseAmount,
      
      @Semantics.quantity.unitOfMeasure: 'ConditionQuantityUnit'
      PricingElement.ConditionBaseQuantity,
      
      @Semantics.quantity.unitOfMeasure: 'ConditionQuantityUnit'
      PricingElement.ConditionQuantity,
      
      @Semantics.amount.currencyCode: 'TransactionCurrency'
      PricingElement.ConditionAmount,
      
      @ObjectModel.foreignKey.association: '_ConditionCurrency'
      PricingElement.ConditionCurrency,
      
      @ObjectModel.foreignKey.association: '_TransactionCurrency'
      PricingElement.TransactionCurrency,  
      
      @ObjectModel.foreignKey.association: '_ConditionQuantityUnit'
      PricingElement.ConditionQuantityUnit,
      
      PricingElement.ConditionRateRatioUnit,
      
      PricingElement.ConditionIsForStatistics,
      
      PricingElement.ConditionIsManuallyChanged,
      
      @ObjectModel.foreignKey.association: '_ConditionInactiveReason'
      PricingElement.ConditionInactiveReason,

      @Semantics.booleanIndicator: true
      cast(
        case
          when PricingElement.ConditionRateRatioUnit = ''
          then 'X'
        else ''
      end as boole_d )                                                                                                   as ConditionRateValueIsAmount,

      @Semantics.booleanIndicator: true
      cast(
        case
          when PricingElement.ConditionRateRatioUnit = ''
          then ''
        else 'X'
      end as boole_d )                                                                                                   as ConditionRateValueIsRatio,
      
      @Semantics.booleanIndicator: true
      cast(
        case
          when PricingElement.ConditionRateAmount is initial 
           and PricingElement.ConditionRateRatio  is initial
           then 'X'
          else ''
       end as boole_d )                                                                                                  as ConditionRateValueIsNull,
      
      @Semantics.booleanIndicator: true
      cast(
        case
          when PricingElement.ConditionQuantity is initial
           then 'X'
          else ''
       end as boole_d )                                                                                                  as ConditionQuantityIsNull,
       
      @Semantics.booleanIndicator: true
      cast(
        case
          when PricingElement.ConditionAmount is initial
           then 'X'
          else ''
       end as boole_d )                                                                                                  as ConditionAmountIsNull,

      @Semantics.booleanIndicator: true
      cast(
        case
          when PricingElement.ConditionCalculationType = 'A'
            or PricingElement.ConditionCalculationType = 'B'
            or PricingElement.ConditionCalculationType = 'H'
            or PricingElement.ConditionCalculationType = 'I'
            or PricingElement.ConditionCalculationType = 'J'
            or PricingElement.ConditionCalculationType = 'K'
            or PricingElement.ConditionCalculationType = 'W'
          then ''
        else 'X'
      end as boole_d )                                                                                                   as ConditionBaseValueIsQuantity,

      @Semantics.booleanIndicator: true
      cast(
        case
          when PricingElement.ConditionCalculationType = 'A'
            or PricingElement.ConditionCalculationType = 'B'
            or PricingElement.ConditionCalculationType = 'H'
            or PricingElement.ConditionCalculationType = 'I'
            or PricingElement.ConditionCalculationType = 'J'
            or PricingElement.ConditionCalculationType = 'K'
            or PricingElement.ConditionCalculationType = 'W'
          then 'X'
        else ''
      end as boole_d )                                                                                                   as ConditionBaseValueIsAmount,
      
      //For Access Control

      @Consumption.hidden: true
      _CustomerReturn.CustomerReturnType,
      @Consumption.hidden: true
      _CustomerReturn.SalesOrganization,
      @Consumption.hidden: true
      _CustomerReturn.DistributionChannel,
      @Consumption.hidden: true
      _CustomerReturn.OrganizationDivision,
      
      //Associations

      _Item,
      _CustomerReturn,
      PricingElement._ConditionApplication,
      PricingElement._PricingConditionType,
      PricingElement._ConditionCurrency,
      PricingElement._Currency                                            as _TransactionCurrency,
      PricingElement._ConditionQuantityUnit,
      PricingElement._ConditionInactiveReason,
      PricingElement._ConditionCalculationType  
}
where
  PricingElement.PricingDocumentItem != '000000' //Ignore Header Conditions 

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CONDITIONTYPETEXT",
"I_PRICINGCONDITIONTYPE",
"I_PRICINGELEMENT",
"I_SALESDOCUMENTBASIC",
"R_CUSTOMERRETURNTP"
],
"ASSOCIATED":
[
"I_CONDITIONAPPLICATION",
"I_CONDITIONCALCULATIONTYPE",
"I_CONDITIONINACTIVEREASON",
"I_CURRENCY",
"I_PRICINGCONDITIONTYPE",
"I_UNITOFMEASURE",
"R_CUSTOMERRETURNITEMTP",
"R_CUSTOMERRETURNTP"
],
"BASE":
[
"I_PRICINGELEMENT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/