A_SlsOrdPricingElementSimln_2

DDL: A_SLSORDPRICINGELEMENTSIMLN_2 Type: view_entity CONSUMPTION Package: ODATA_SD_SALESORDER_API

Header Pricing Element Simulation

A_SlsOrdPricingElementSimln_2 is a Consumption CDS View that provides data about "Header Pricing Element Simulation" in SAP S/4HANA. It reads from 1 data source (I_SalesOrderPricingElement) and exposes 33 fields with key fields SalesOrder, PricingProcedureStep, PricingProcedureCounter. It is exposed through 1 OData service (API_SALESORDERSIMULATION). Part of development package ODATA_SD_SALESORDER_API.

Data Sources (1)

SourceAliasJoin Type
I_SalesOrderPricingElement SalesOrderPricingElement from

Annotations (10)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Header Pricing Element Simulation view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.query.implementedBy ABAP:CL_SD_SO_SIMLN_RAP_V4_QRY view
OData.entityType.name SalesOrderPricingElement_Type view
VDM.lifecycle.contract.type #PUBLIC_REMOTE_API view
VDM.viewType #CONSUMPTION view

OData Services (1)

ServiceBindingVersionContractRelease
API_SALESORDERSIMULATION API_SALESORDERSIMULATION V4 C2 C1

Fields (33)

KeyFieldSource TableSource FieldDescription
KEY SalesOrder I_SalesOrderPricingElement SalesOrder
KEY PricingProcedureStep I_SalesOrderPricingElement PricingProcedureStep
KEY PricingProcedureCounter I_SalesOrderPricingElement PricingProcedureCounter
ConditionType I_SalesOrderPricingElement ConditionType
PriceElementDescription
ConditionCalculationType I_SalesOrderPricingElement ConditionCalculationType
ConditionRateAmount I_SalesOrderPricingElement ConditionRateAmount
ConditionCurrency I_SalesOrderPricingElement ConditionCurrency
ConditionQuantity I_SalesOrderPricingElement ConditionQuantity
ConditionBaseQuantity I_SalesOrderPricingElement ConditionBaseQuantity
ConditionQuantitySAPUnit I_SalesOrderPricingElement ConditionQuantityUnit
ConditionQuantityISOUnit
ConditionRateRatio I_SalesOrderPricingElement ConditionRateRatio
ConditionRateRatioSAPUnit I_SalesOrderPricingElement ConditionRateRatioUnit
ConditionRateRatioISOUnit
ConditionAmount I_SalesOrderPricingElement ConditionAmount
ConditionBaseAmount I_SalesOrderPricingElement ConditionBaseAmount
TransactionCurrency I_SalesOrderPricingElement TransactionCurrency
CndnRoundingOffDiffAmount I_SalesOrderPricingElement CndnRoundingOffDiffAmount
ConditionInactiveReason I_SalesOrderPricingElement ConditionInactiveReason
ConditionClass I_SalesOrderPricingElement ConditionClass
ConditionControl I_SalesOrderPricingElement ConditionControl
ConditionOrigin I_SalesOrderPricingElement ConditionOrigin
ConditionIsForStatistics I_SalesOrderPricingElement ConditionIsForStatistics
ConditionIsManuallyChanged I_SalesOrderPricingElement ConditionIsManuallyChanged
TaxCode I_SalesOrderPricingElement TaxCode
VariantCondition I_SalesOrderPricingElement VariantCondition
IsGroupCondition I_SalesOrderPricingElement IsGroupCondition_2
SalesOrderType _SalesOrder SalesOrderType
OrganizationDivision _SalesOrder OrganizationDivision
SalesOrganization _SalesOrder SalesOrganization
DistributionChannel _SalesOrder DistributionChannel
_SalesOrder _SalesOrder
@AccessControl: {
  authorizationCheck: #MANDATORY,
  personalData.blocking: #('TRANSACTIONAL_DATA')
}

@EndUserText.label: 'Header Pricing Element Simulation'

@Metadata.ignorePropagatedAnnotations: true

@ObjectModel: {
  semanticKey: ['SalesOrder','PricingProcedureStep','PricingProcedureCounter'],
  usageType: {
    dataClass:      #TRANSACTIONAL,
    serviceQuality: #C,
    sizeCategory:   #XL
  },
  query.implementedBy: 'ABAP:CL_SD_SO_SIMLN_RAP_V4_QRY'
}

@OData: {
  entityType.name: 'SalesOrderPricingElement_Type'
}

@VDM: {
  lifecycle.contract.type: #PUBLIC_REMOTE_API,
  usage.type: [#TRANSACTIONAL_PROCESSING_SERVICE],
  viewType: #CONSUMPTION
}
define view entity A_SlsOrdPricingElementSimln_2
  as select from I_SalesOrderPricingElement as SalesOrderPricingElement
  association to parent A_SalesOrderSimulation_2 as _SalesOrder on $projection.SalesOrder = _SalesOrder.SalesOrder

{

  key SalesOrderPricingElement.SalesOrder,

  key SalesOrderPricingElement.PricingProcedureStep,

  key SalesOrderPricingElement.PricingProcedureCounter,

      @ObjectModel.sapObjectNodeTypeReference: 'SalesPricingConditionType'
      SalesOrderPricingElement.ConditionType,

      cast(SalesOrderPricingElement._PricingConditionType._Text_2[1: Language=$session.system_language].ConditionTypeName as priceelementdescription) as PriceElementDescription,

      @ObjectModel.sapObjectNodeTypeReference: 'PriceConditionCalculationType'
      SalesOrderPricingElement.ConditionCalculationType,

      @Semantics.amount.currencyCode: 'ConditionCurrency'
      @OData.v2.amount.noDecimalShift: true
      SalesOrderPricingElement.ConditionRateAmount,
      @Semantics.nullValueIndicatorFor: 'ConditionRateAmount'
      @Semantics.booleanIndicator: true
      cast(
        case
          when ConditionRateRatioUnit = ''
           then ''
          else 'X'
        end as boole_d )                                                                               as ConditionRateValueIsRatio,

      @ObjectModel.sapObjectNodeTypeReference: 'Currency'
      SalesOrderPricingElement.ConditionCurrency,

      @Semantics.quantity.unitOfMeasure: 'ConditionQuantitySAPUnit'
      @Semantics.quantity.unitOfMeasureSapCode: 'ConditionQuantitySAPUnit'
      @Semantics.quantity.unitOfMeasureIsoCode: 'ConditionQuantityISOUnit'
      SalesOrderPricingElement.ConditionQuantity,
      @Semantics.nullValueIndicatorFor: 'ConditionQuantity'
      @Semantics.booleanIndicator: true
      cast(
        case
          when ConditionQuantity is initial
           then 'X'
          else ''
        end as boole_d )                                                                               as ConditionQuantityIsNull,

      @Semantics.quantity.unitOfMeasure: 'ConditionQuantitySAPUnit'
      @Semantics.quantity.unitOfMeasureSapCode: 'ConditionQuantitySAPUnit'
      @Semantics.quantity.unitOfMeasureIsoCode: 'ConditionQuantityISOUnit'
      SalesOrderPricingElement.ConditionBaseQuantity,
      @Semantics.nullValueIndicatorFor: 'ConditionBaseQuantity'
      @Semantics.booleanIndicator: true
      cast(
        case
          when ConditionCalculationType = 'A'
            or ConditionCalculationType = 'B'
            or ConditionCalculationType = 'H'
            or ConditionCalculationType = 'I'
            or ConditionCalculationType = 'J'
            or ConditionCalculationType = 'K'
            or ConditionCalculationType = 'W'
           then 'X'
          else ''
        end as boole_d )                                                                               as ConditionBaseValueIsAmount,

      SalesOrderPricingElement.ConditionQuantityUnit                                                   as ConditionQuantitySAPUnit,
      cast(_ConditionQuantityUnit.UnitOfMeasureISOCode as sd_cndn_qty_isounit preserving type)         as ConditionQuantityISOUnit,

      @Semantics.quantity.unitOfMeasure: 'ConditionRateRatioSAPUnit'
      @Semantics.quantity.unitOfMeasureSapCode: 'ConditionRateRatioSAPUnit'
      @Semantics.quantity.unitOfMeasureIsoCode: 'ConditionRateRatioISOUnit'
      SalesOrderPricingElement.ConditionRateRatio,
      @Semantics.nullValueIndicatorFor: 'ConditionRateRatio'
      @Semantics.booleanIndicator: true
      cast(
        case
          when ConditionRateRatioUnit = ''
           then 'X'
          else ''
        end as boole_d )                                                                               as ConditionRateValueIsAmount,

      SalesOrderPricingElement.ConditionRateRatioUnit                                                  as ConditionRateRatioSAPUnit,
      cast(_ConditionRateRatioUnit.UnitOfMeasureISOCode as sd_cndn_rate_ratio_isounit preserving type) as ConditionRateRatioISOUnit,

      @Semantics.amount.currencyCode: 'TransactionCurrency'
      SalesOrderPricingElement.ConditionAmount,
      @Semantics.nullValueIndicatorFor: 'ConditionAmount'
      @Semantics.booleanIndicator: true
      cast(
        case
          when ConditionAmount is initial
           then 'X'
          else ''
        end as boole_d )                                                                               as ConditionAmountIsNull,

      @Semantics.amount.currencyCode: 'TransactionCurrency'
      @OData.v2.amount.noDecimalShift: true
      SalesOrderPricingElement.ConditionBaseAmount,
      @Semantics.nullValueIndicatorFor: 'ConditionBaseAmount'
      @Semantics.booleanIndicator: true
      cast(
        case
          when ConditionCalculationType = 'A'
            or ConditionCalculationType = 'B'
            or ConditionCalculationType = 'H'
            or ConditionCalculationType = 'I'
            or ConditionCalculationType = 'J'
            or ConditionCalculationType = 'K'
            or ConditionCalculationType = 'W'
           then ''
          else 'X'
        end as boole_d )                                                                               as ConditionBaseValueIsQuantity,

      @ObjectModel.sapObjectNodeTypeReference: 'Currency'
      SalesOrderPricingElement.TransactionCurrency,

      @Semantics.amount.currencyCode: 'TransactionCurrency'
      SalesOrderPricingElement.CndnRoundingOffDiffAmount,
      @Semantics.nullValueIndicatorFor: 'CndnRoundingOffDiffAmount'
      cast( '' as rap_null_value_indicator )                                                           as CndnRndngOffDiffAmountIsNull,

      @ObjectModel.sapObjectNodeTypeReference: 'PriceConditionInactiveReason'
      SalesOrderPricingElement.ConditionInactiveReason,
      @Consumption.hidden: true
      @Semantics.nullValueIndicatorFor: 'ConditionInactiveReason'
      cast( '' as rap_null_value_indicator )                                                           as ConditionInactiveReasonIsNull,

      @ObjectModel.sapObjectNodeTypeReference: 'PriceConditionClass'
      SalesOrderPricingElement.ConditionClass,
      @Semantics.nullValueIndicatorFor: 'ConditionClass'
      cast( '' as rap_null_value_indicator )                                                           as ConditionClassIsNull,

      @ObjectModel.sapObjectNodeTypeReference: 'PriceConditionControl'
      SalesOrderPricingElement.ConditionControl,
      @Semantics.nullValueIndicatorFor: 'ConditionControl'
      cast( '' as rap_null_value_indicator )                                                           as ConditionControlIsNull,

      @ObjectModel.sapObjectNodeTypeReference: 'PriceConditionOrigin'
      SalesOrderPricingElement.ConditionOrigin,
      @Semantics.nullValueIndicatorFor: 'ConditionOrigin'
      cast( '' as rap_null_value_indicator )                                                           as ConditionOriginIsNull,

      SalesOrderPricingElement.ConditionIsForStatistics,
      @Semantics.nullValueIndicatorFor: 'ConditionIsForStatistics'
      cast( '' as rap_null_value_indicator )                                                           as ConditionIsForStatisticsIsNull,

      SalesOrderPricingElement.ConditionIsManuallyChanged,
      @Semantics.nullValueIndicatorFor: 'ConditionIsManuallyChanged'
      cast( '' as rap_null_value_indicator )                                                           as ConditionIsManuallyChgdIsNull,

      @ObjectModel.sapObjectNodeTypeReference: 'SalesTaxCode'
      SalesOrderPricingElement.TaxCode,
      @Semantics.nullValueIndicatorFor: 'TaxCode'
      cast( '' as rap_null_value_indicator )                                                           as TaxCodeIsNull,

      @ObjectModel.sapObjectNodeTypeReference: 'PricingVariantCondition'
      SalesOrderPricingElement.VariantCondition,
      @Semantics.nullValueIndicatorFor: 'VariantCondition'
      cast( '' as rap_null_value_indicator )                                                           as VariantConditionIsNull,
      
      SalesOrderPricingElement.IsGroupCondition_2                                                      as IsGroupCondition,
      @Semantics.nullValueIndicatorFor: 'IsGroupCondition'
      cast( '' as rap_null_value_indicator )                                                           as IsGroupConditionIsNull,

      // For Access control

      @Consumption.hidden: true
      _SalesOrder.SalesOrderType,
      @Consumption.hidden: true
      _SalesOrder.OrganizationDivision,
      @Consumption.hidden: true
      _SalesOrder.SalesOrganization,
      @Consumption.hidden: true
      _SalesOrder.DistributionChannel,

      //Associations

      @ObjectModel.filter.enabled: false
      @ObjectModel.sort.enabled: false
      _SalesOrder

}