A_SalesOrderHeaderPrElement

DDL: A_SALESORDERHEADERPRELEMENT Type: view COMPOSITE Package: ODATA_SD_SALESORDER_API

Header Pricing Element

A_SalesOrderHeaderPrElement is a Composite CDS View that provides data about "Header Pricing Element" in SAP S/4HANA. It reads from 2 data sources (I_PricingElement, I_SalesDocumentBasic) and exposes 46 fields with key fields SalesOrder, PricingProcedureStep, PricingProcedureCounter. It has 1 association to related views. Part of development package ODATA_SD_SALESORDER_API.

Data Sources (2)

SourceAliasJoin Type
I_PricingElement PricingElement from
I_SalesDocumentBasic SalesOrder inner

Associations (1)

CardinalityTargetAliasCondition
[1..1] A_SalesOrder _SalesOrder _SalesOrder.SalesOrder = $projection.SalesOrder

Annotations (14)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Header Pricing Element view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_REMOTE_API view
AbapCatalog.sqlViewName ASOHPRELEMENT 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 (46)

KeyFieldSource TableSource FieldDescription
KEY SalesOrder
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
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
@ClientHandling.algorithm:#SESSION_VARIABLE
@EndUserText.label: 'Header Pricing Element'
@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #PUBLIC_REMOTE_API
}
@AbapCatalog: {
  sqlViewName: 'ASOHPRELEMENT',
  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_SalesOrderHeaderPrElement
  as select from I_PricingElement     as PricingElement
    inner join   I_SalesDocumentBasic as SalesOrder on  SalesOrder.SalesDocumentCondition = PricingElement.PricingDocument
                                                    and SalesOrder.SDDocumentCategory     = 'C'

  association [1..1] to A_SalesOrder as _SalesOrder on _SalesOrder.SalesOrder = $projection.SalesOrder

{
      @ObjectModel.readOnly: true
  key cast(SalesOrder.SalesDocument as vdm_sales_order preserving type)    as SalesOrder,

  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
      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
}
where
  PricingDocumentItem = '000000' //Ignore Item conditions