A_SalesOrderItemPrElement

DDL: A_SALESORDERITEMPRELEMENT Type: view COMPOSITE

Item Pricing Element

A_SalesOrderItemPrElement is a Composite CDS View that provides data about "Item Pricing Element" in SAP S/4HANA. It reads from 2 data sources (I_PricingElement, I_SalesDocumentBasic) and exposes 50 fields with key fields SalesOrder, SalesOrderItem, PricingProcedureStep, PricingProcedureCounter. It has 2 associations to related views.

Data Sources (2)

SourceAliasJoin Type
I_PricingElement PricingElement from
I_SalesDocumentBasic SalesOrder inner

Associations (2)

CardinalityTargetAliasCondition
[1..1] A_SalesOrder _SalesOrder $projection.SalesOrder = _SalesOrder.SalesOrder
[1..1] A_SalesOrderItem _SalesOrderItem $projection.SalesOrder = _SalesOrderItem.SalesOrder and $projection.SalesOrderItem = _SalesOrderItem.SalesOrderItem

Annotations (14)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Item Pricing Element view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_REMOTE_API view
AbapCatalog.sqlViewName ASOIPRELEMENT view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
ObjectModel.createEnabled true view
ObjectModel.updateEnabled true view
ObjectModel.deleteEnabled true view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #XXL view
Metadata.ignorePropagatedAnnotations true view

Fields (50)

KeyFieldSource TableSource FieldDescription
KEY SalesOrder
KEY SalesOrderItem
KEY PricingProcedureStep PricingProcedureStep
KEY PricingProcedureCounter PricingProcedureCounter
ConditionType ConditionType
PricingDateTime PricingDateTime
PriceConditionDeterminationDte PriceConditionDeterminationDte
ConditionCalculationType ConditionCalculationType
ConditionBaseValue ConditionBaseValue
ConditionRateValue ConditionRateValue
ConditionCurrency ConditionCurrency
ConditionQuantity ConditionQuantity
ConditionQuantityUnit ConditionQuantityUnit
ConditionQuantitySAPUnit
ConditionQuantityISOUnit
ConditionCategory ConditionCategory
ConditionIsForStatistics ConditionIsForStatistics
PricingScaleType PricingScaleType
IsRelevantForAccrual IsRelevantForAccrual
CndnIsRelevantForInvoiceList CndnIsRelevantForInvoiceList
ConditionOrigin ConditionOrigin
IsGroupCondition IsGroupCondition
ConditionRecord ConditionRecord
ConditionSequentialNumber ConditionSequentialNumber
TaxCode TaxCode
WithholdingTaxCode WithholdingTaxCode
CndnRoundingOffDiffAmount CndnRoundingOffDiffAmount
ConditionAmount ConditionAmount
TransactionCurrency I_PricingElement TransactionCurrency
ConditionControl ConditionControl
ConditionInactiveReason ConditionInactiveReason
ConditionClass ConditionClass
PrcgProcedureCounterForHeader PrcgProcedureCounterForHeader
FactorForConditionBasisValue FactorForConditionBasisValue
StructureCondition StructureCondition
PeriodFactorForCndnBasisValue PeriodFactorForCndnBasisValue
PricingScaleBasis PricingScaleBasis
ConditionScaleBasisValue ConditionScaleBasisValue
ConditionScaleBasisUnit ConditionScaleBasisUnit
ConditionScaleBasisCurrency ConditionScaleBasisCurrency
CndnIsRelevantForIntcoBilling CndnIsRelevantForIntcoBilling
ConditionIsManuallyChanged ConditionIsManuallyChanged
ConditionIsForConfiguration ConditionIsForConfiguration
VariantCondition VariantCondition
SalesOrderType I_SalesDocumentBasic SalesDocumentType
OrganizationDivision I_SalesDocumentBasic OrganizationDivision
SalesOrganization I_SalesDocumentBasic SalesOrganization
DistributionChannel I_SalesDocumentBasic DistributionChannel
_SalesOrder _SalesOrder
_SalesOrderItem _SalesOrderItem
@ClientHandling.algorithm:#SESSION_VARIABLE
@EndUserText.label: 'Item Pricing Element'
@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #PUBLIC_REMOTE_API
}
@AbapCatalog: {
  sqlViewName: 'ASOIPRELEMENT',
  compiler.compareFilter: true
}
@AccessControl: { 
  authorizationCheck: #CHECK,
  personalData.blocking: #('TRANSACTIONAL_DATA')
}
@ObjectModel: {
   createEnabled: true,
   updateEnabled: true,
   deleteEnabled: true,
   usageType: {
     dataClass:      #TRANSACTIONAL,
     serviceQuality: #B,
     sizeCategory:   #XXL
   }
}
@Metadata.ignorePropagatedAnnotations: true

define view A_SalesOrderItemPrElement
  as select from I_PricingElement     as PricingElement
    inner join   I_SalesDocumentBasic as SalesOrder on  SalesDocumentCondition = PricingElement.PricingDocument
                                                    and SDDocumentCategory     = 'C'
  association [1..1] to A_SalesOrder     as _SalesOrder     on  $projection.SalesOrder = _SalesOrder.SalesOrder
  association [1..1] to A_SalesOrderItem as _SalesOrderItem on  $projection.SalesOrder     = _SalesOrderItem.SalesOrder
                                                            and $projection.SalesOrderItem = _SalesOrderItem.SalesOrderItem
{
      @ObjectModel.readOnly: true
  key cast(SalesOrder.SalesDocument as vdm_sales_order preserving type) as SalesOrder,

      @ObjectModel.readOnly: true
  key cast(PricingDocumentItem as sales_order_item preserving type)     as SalesOrderItem,

  key PricingProcedureStep,
  key PricingProcedureCounter,

      ConditionType,

      @ObjectModel.readOnly: true
      PricingDateTime,
      
      @ObjectModel.readOnly: true
      PriceConditionDeterminationDte,

      @ObjectModel.readOnly: true
      ConditionCalculationType,

      @ObjectModel.readOnly: true
      ConditionBaseValue,

      ConditionRateValue,

      ConditionCurrency,

      //PriceDetnExchangeRate,


      @Semantics.quantity.unitOfMeasure: 'ConditionQuantityUnit'
      @Semantics.quantity.unitOfMeasureSAPCode: 'ConditionQuantitySAPUnit' 
      @Semantics.quantity.unitOfMeasureISOCode: 'ConditionQuantityISOUnit'
      ConditionQuantity,

      @Semantics.unitOfMeasure: true
      ConditionQuantityUnit,
      cast(_ConditionQuantityUnit.UnitOfMeasureSAPCode as sd_cndn_qty_sapunit preserving type) as ConditionQuantitySAPUnit,
      cast(_ConditionQuantityUnit.UnitOfMeasureISOCode as sd_cndn_qty_isounit preserving type) as ConditionQuantityISOUnit,

      @ObjectModel.readOnly: true
      ConditionCategory,

      @ObjectModel.readOnly: true
      ConditionIsForStatistics,

      @ObjectModel.readOnly: true
      PricingScaleType,

      @ObjectModel.readOnly: true
      IsRelevantForAccrual,

      @ObjectModel.readOnly: true
      CndnIsRelevantForInvoiceList,

      @ObjectModel.readOnly: true
      ConditionOrigin,

      @ObjectModel.readOnly: true
      IsGroupCondition,

      @ObjectModel.readOnly: true
      ConditionRecord,

      @ObjectModel.readOnly: true
      ConditionSequentialNumber,

      @ObjectModel.readOnly: true
      TaxCode,

      @ObjectModel.readOnly: true
      WithholdingTaxCode,

      @Semantics.amount.currencyCode: 'TransactionCurrency'
      @ObjectModel.readOnly: true
      CndnRoundingOffDiffAmount,

      @Semantics.amount.currencyCode: 'TransactionCurrency'
      @ObjectModel.readOnly: true
      ConditionAmount,

      @Semantics.currencyCode: true
      PricingElement.TransactionCurrency,

      @ObjectModel.readOnly: true
      ConditionControl,

      @ObjectModel.readOnly: true
      ConditionInactiveReason,

      @ObjectModel.readOnly: true
      ConditionClass,

      @ObjectModel.readOnly: true
      PrcgProcedureCounterForHeader,

      @ObjectModel.readOnly: true
      FactorForConditionBasisValue,

      @ObjectModel.readOnly: true
      StructureCondition,

      @ObjectModel.readOnly: true
      PeriodFactorForCndnBasisValue,

      @ObjectModel.readOnly: true
      PricingScaleBasis,

      @ObjectModel.readOnly: true
      ConditionScaleBasisValue,

      @ObjectModel.readOnly: true
      @Semantics.unitOfMeasure: true
      ConditionScaleBasisUnit,

      @ObjectModel.readOnly: true
      @Semantics.currencyCode: true
      ConditionScaleBasisCurrency,

      @ObjectModel.readOnly: true
      CndnIsRelevantForIntcoBilling,

      @ObjectModel.readOnly: true
      ConditionIsManuallyChanged,

      @ObjectModel.readOnly: true
      ConditionIsForConfiguration,

      @ObjectModel.readOnly: true
      VariantCondition,

      // For Access control

      @Consumption.hidden: true
      SalesOrder.SalesDocumentType                                      as SalesOrderType,
      @Consumption.hidden: true
      SalesOrder.OrganizationDivision,
      @Consumption.hidden: true
      SalesOrder.SalesOrganization,
      @Consumption.hidden: true
      SalesOrder.DistributionChannel,

      //Expose associations

      _SalesOrder,
      _SalesOrderItem
}
where
  PricingDocumentItem != '000000' //Ignore Header conditions 

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PRICINGELEMENT",
"I_SALESDOCUMENTBASIC",
"I_UNITOFMEASURE"
],
"ASSOCIATED":
[
"A_SALESORDER",
"A_SALESORDERITEM"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/