A_SalesOrderItemSimulation_2

DDL: A_SALESORDERITEMSIMULATION_2 Type: view_entity CONSUMPTION Package: ODATA_SD_SALESORDER_API

Sales Order Item Simulation

A_SalesOrderItemSimulation_2 is a Consumption CDS View that provides data about "Sales Order Item Simulation" in SAP S/4HANA. It reads from 1 data source (I_SalesOrderItem) and exposes 101 fields with key fields SalesOrder, SalesOrderItem. It has 6 associations to related views. It is exposed through 1 OData service (API_SALESORDERSIMULATION). Part of development package ODATA_SD_SALESORDER_API.

Data Sources (1)

SourceAliasJoin Type
I_SalesOrderItem SalesOrderItem from

Associations (6)

CardinalityTargetAliasCondition
[0..1] A_VarCnfContextSimulation _VariantConfiguration $projection.VarConfigurationBusObjectType = _VariantConfiguration.VarConfigurationBusObjectType and $projection.VarConfigurationBusObjectKey = _VariantConfiguration.VarConfigurationBusObjectKey
[0..1] I_SlsDocItemEnhancedFields _ItemEnhancedFields $projection.SalesOrder = _ItemEnhancedFields.SalesDocument and $projection.SalesOrderItem = _ItemEnhancedFields.SalesDocumentItem
[1] E_SalesDocumentItemBasic _Extension $projection.SalesOrder = _Extension.SalesDocument and $projection.SalesOrderItem = _Extension.SalesDocumentItem
[0..*] A_SalesOrderItemPartnerSimln_2 _ItemPartner
[0..*] A_SlsOrdItmPrcgElmntSimln_2 _ItemPricingElement
[0..*] A_SlsOrdScheduleLineSimln_2 _ScheduleLine

Annotations (14)

NameValueLevelField
VDM.lifecycle.contract.type #PUBLIC_REMOTE_API view
VDM.viewType #CONSUMPTION view
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Sales Order Item Simulation view
Metadata.ignorePropagatedAnnotations true view
OData.entityType.name SalesOrderItem_Type view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.query.implementedBy ABAP:CL_SD_SO_SIMLN_RAP_V4_QRY view
AbapCatalog.extensibility.extensible true view
AbapCatalog.extensibility.elementSuffix SDI view
AbapCatalog.extensibility.quota.maximumFields 204 view
AbapCatalog.extensibility.quota.maximumBytes 100000 view

OData Services (1)

ServiceBindingVersionContractRelease
API_SALESORDERSIMULATION API_SALESORDERSIMULATION V4 C2 C1

Fields (101)

KeyFieldSource TableSource FieldDescription
KEY SalesOrder I_SalesOrderItem SalesOrder
KEY SalesOrderItem I_SalesOrderItem SalesOrderItem
HigherLevelItem I_SalesOrderItem HigherLevelItem
HigherLevelItem_H
SalesOrderItemCategory I_SalesOrderItem SalesOrderItemCategory
SalesOrderItemText I_SalesOrderItem SalesOrderItemText
Product I_SalesOrderItem Product
OriginallyRequestedMaterial I_SalesOrderItem OriginallyRequestedMaterial
ProductGroup I_SalesOrderItem ProductGroup
MaterialByCustomer I_SalesOrderItem MaterialByCustomer
InternationalArticleNumber I_SalesOrderItem InternationalArticleNumber
PurchaseOrderByCustomer I_SalesOrderItem PurchaseOrderByCustomer
UnderlyingPurchaseOrderItem I_SalesOrderItem UnderlyingPurchaseOrderItem
CorrespncExternalReference I_SalesOrderItem CorrespncExternalReference
PurchaseOrderByShipToParty I_SalesOrderItem PurchaseOrderByShipToParty
UndrlgPurOrdItmByShipToParty I_SalesOrderItem UndrlgPurOrdItmByShipToParty
CorrespncExtRefByShipToParty I_SalesOrderItem CorrespncExtRefByShipToParty
ConfdDelivQtyInOrderQtyUnit I_SalesOrderItem ConfdDelivQtyInOrderQtyUnit
OrderQuantitySAPUnit I_SalesOrderItem OrderQuantityUnit
OrderQuantityISOUnit
RequestedQuantity I_SalesOrderItem RequestedQuantity
RequestedQuantitySAPUnit I_SalesOrderItem RequestedQuantityUnit
RequestedQuantityISOUnit
ReferenceSDDocument I_SalesOrderItem ReferenceSDDocument
ReferenceSDDocumentItem I_SalesOrderItem ReferenceSDDocumentItem
ReferenceSDDocumentCategory I_SalesOrderItem ReferenceSDDocumentCategory
ItemGrossWeight I_SalesOrderItem ItemGrossWeight
ItemNetWeight I_SalesOrderItem ItemNetWeight
ItemWeightSAPUnit I_SalesOrderItem ItemWeightUnit
ItemWeightISOUnit
ItemVolume I_SalesOrderItem ItemVolume
ItemVolumeSAPUnit I_SalesOrderItem ItemVolumeUnit
ItemVolumeISOUnit
RequestedDeliveryDate
ConfirmedDeliveryDate
PricingDate I_SalesOrderItem PricingDate
ServicesRenderedDate I_SalesOrderItem ServicesRenderedDate
BillingDocumentDate I_SalesOrderItem BillingDocumentDate
NetAmount I_SalesOrderItem NetAmount
TransactionCurrency I_SalesOrderItem TransactionCurrency
TaxAmount I_SalesOrderItem TaxAmount
Subtotal1Amount I_SalesOrderItem Subtotal1Amount
Subtotal2Amount I_SalesOrderItem Subtotal2Amount
Subtotal3Amount I_SalesOrderItem Subtotal3Amount
Subtotal4Amount I_SalesOrderItem Subtotal4Amount
Subtotal5Amount I_SalesOrderItem Subtotal5Amount
Subtotal6Amount I_SalesOrderItem Subtotal6Amount
CustomerGroup I_SalesOrderItem CustomerGroup
Batch I_SalesOrderItem Batch
Plant I_SalesOrderItem Plant
StorageLocation I_SalesOrderItem StorageLocation
ShippingPoint I_SalesOrderItem ShippingPoint
ShippingType I_SalesOrderItem ShippingType
Route I_SalesOrderItem Route
DeliveryPriority I_SalesOrderItem DeliveryPriority
PartialDeliveryIsAllowed I_SalesOrderItem PartialDeliveryIsAllowed
MaxNmbrOfPartialDelivery I_SalesOrderItem MaxNmbrOfPartialDelivery
DeliveryDateTypeRule I_SalesOrderItem DeliveryDateTypeRule
ReceivingPoint I_SalesOrderItem ReceivingPoint
DeliveryGroup I_SalesOrderItem DeliveryGroup
IncotermsClassification I_SalesOrderItem IncotermsClassification
IncotermsLocation1 I_SalesOrderItem IncotermsLocation1
IncotermsLocation2 I_SalesOrderItem IncotermsLocation2
IncotermsVersion I_SalesOrderItem IncotermsVersion
CustomerPaymentTerms I_SalesOrderItem CustomerPaymentTerms
FixedValueDate I_SalesOrderItem FixedValueDate
CustomerPriceGroup I_SalesOrderItem CustomerPriceGroup
MaterialPricingGroup
BusinessArea I_SalesOrderItem BusinessArea
ProfitCenter I_SalesOrderItem ProfitCenter
MatlAccountAssignmentGroup I_SalesOrderItem MatlAccountAssignmentGroup
WBSElementExternalID
ItemBillingBlockReason I_SalesOrderItem ItemBillingBlockReason
SalesDocumentRjcnReason I_SalesOrderItem SalesDocumentRjcnReason
ProductConfiguration I_SalesOrderItem ProductConfiguration
SlsContrAutoAssgmtIDForSlsOrd I_SalesOrderItem SlsContrAutoAssgmtIDForSlsOrd
SDProcessStatus I_SalesOrderItem SDProcessStatus
PurchaseConfirmationStatus I_SalesOrderItem PurchaseConfirmationStatus
SDDocumentRejectionStatus I_SalesOrderItem SDDocumentRejectionStatus
DeliveryStatus I_SalesOrderItem DeliveryStatus
BillingBlockStatus I_SalesOrderItem BillingBlockStatus
ItemGeneralIncompletionStatus I_SalesOrderItem ItemGeneralIncompletionStatus
DeliveryBlockStatus I_SalesOrderItem DeliveryBlockStatus
SlsOrderItemDownPaymentStatus I_SalesOrderItem SlsOrderItemDownPaymentStatus
OrderRelatedBillingStatus I_SalesOrderItem OrderRelatedBillingStatus
ChmlCmplncStatus I_SalesOrderItem ChmlCmplncStatus
DangerousGoodsStatus I_SalesOrderItem DangerousGoodsStatus
SafetyDataSheetStatus I_SalesOrderItem SafetyDataSheetStatus
TrdCmplncEmbargoSts I_SalesOrderItem TrdCmplncEmbargoSts
TrdCmplncSnctndListChkSts I_SalesOrderItem TrdCmplncSnctndListChkSts
OvrlTrdCmplncLegalCtrlChkSts I_SalesOrderItem OvrlTrdCmplncLegalCtrlChkSts
_SalesOrder _SalesOrder
_ItemPartner _ItemPartner
_ItemPricingElement _ItemPricingElement
_ScheduleLine _ScheduleLine
_VariantConfiguration _VariantConfiguration
LastChangeDateTime _SalesOrder LastChangeDateTime
SalesOrderType _SalesOrder SalesOrderType
OrganizationDivision _SalesOrder OrganizationDivision
SalesOrganization _SalesOrder SalesOrganization
DistributionChannel _SalesOrder DistributionChannel
@VDM: {
  lifecycle.contract.type: #PUBLIC_REMOTE_API,
  usage.type: [#TRANSACTIONAL_PROCESSING_SERVICE],
  viewType: #CONSUMPTION
}

@AccessControl: {
    authorizationCheck: #MANDATORY,
    personalData.blocking: #('TRANSACTIONAL_DATA')
}

@EndUserText.label: 'Sales Order Item Simulation'

@Metadata.ignorePropagatedAnnotations: true

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

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

@AbapCatalog.extensibility: {
  extensible: true,
  dataSources: ['_Extension'],
  elementSuffix: 'SDI',
  quota: {
    maximumFields: 204, //This is calculated with formula - 2* <Customer Percentage from SCFD_REGISTRY> * <max number of fields in SCFD_REGISTRY>

    maximumBytes: 100000  //Set to maximum allowed bytes

  }
}

define view entity A_SalesOrderItemSimulation_2
  as select from I_SalesOrderItem as SalesOrderItem
  composition [0..*] of A_SalesOrderItemPartnerSimln_2 as _ItemPartner
  composition [0..*] of A_SlsOrdItmPrcgElmntSimln_2    as _ItemPricingElement
  composition [0..*] of A_SlsOrdScheduleLineSimln_2    as _ScheduleLine

  association [0..1] to A_VarCnfContextSimulation      as _VariantConfiguration on  $projection.VarConfigurationBusObjectType = _VariantConfiguration.VarConfigurationBusObjectType
                                                                                and $projection.VarConfigurationBusObjectKey  = _VariantConfiguration.VarConfigurationBusObjectKey
  association [0..1] to I_SlsDocItemEnhancedFields     as _ItemEnhancedFields   on  $projection.SalesOrder     = _ItemEnhancedFields.SalesDocument
                                                                                and $projection.SalesOrderItem = _ItemEnhancedFields.SalesDocumentItem

  association        to parent A_SalesOrderSimulation_2       as _SalesOrder    on  $projection.SalesOrder = _SalesOrder.SalesOrder
  //Extension Association

  association [1]    to E_SalesDocumentItemBasic          as _Extension         on  $projection.SalesOrder     = _Extension.SalesDocument
                                                                                and $projection.SalesOrderItem = _Extension.SalesDocumentItem
{
  key SalesOrderItem.SalesOrder,
  key SalesOrderItem.SalesOrderItem,

      SalesOrderItem.HigherLevelItem,

      @Consumption.hidden: true
      @Semantics.nullValueIndicatorFor: 'HigherLevelItem'
      cast( '' as rap_null_value_indicator )                                                   as HigherLevelItem_H,

      SalesOrderItem.SalesOrderItemCategory,

      @Semantics.text: true
      SalesOrderItem.SalesOrderItemText,

      SalesOrderItem.Product,
      SalesOrderItem.OriginallyRequestedMaterial,

      @ObjectModel.sapObjectNodeTypeReference: 'ProductGroup'
      SalesOrderItem.ProductGroup,
      SalesOrderItem.MaterialByCustomer,
      SalesOrderItem.InternationalArticleNumber,

      SalesOrderItem.PurchaseOrderByCustomer,
      SalesOrderItem.UnderlyingPurchaseOrderItem,
      SalesOrderItem.CorrespncExternalReference,
      SalesOrderItem.PurchaseOrderByShipToParty,
      SalesOrderItem.UndrlgPurOrdItmByShipToParty,
      SalesOrderItem.CorrespncExtRefByShipToParty,

      @Semantics.quantity.unitOfMeasure: 'OrderQuantitySAPUnit'
      @Semantics.quantity.unitOfMeasureSapCode: 'OrderQuantitySAPUnit'
      @Semantics.quantity.unitOfMeasureIsoCode: 'OrderQuantityISOUnit'
      SalesOrderItem.ConfdDelivQtyInOrderQtyUnit,
      SalesOrderItem.OrderQuantityUnit                                                         as OrderQuantitySAPUnit,
      cast(_OrderQuantityUnit.UnitOfMeasureISOCode as sd_ord_qty_isounit preserving type)      as OrderQuantityISOUnit,



      @Semantics.quantity.unitOfMeasure: 'RequestedQuantitySAPUnit'
      @Semantics.quantity.unitOfMeasureSapCode: 'RequestedQuantitySAPUnit'
      @Semantics.quantity.unitOfMeasureIsoCode: 'RequestedQuantityISOUnit'
      @Semantics.valueRange.minimum: '0'
      SalesOrderItem.RequestedQuantity,

      // @Semantics.unitOfMeasure: true

      SalesOrderItem.RequestedQuantityUnit                                                     as RequestedQuantitySAPUnit,
      cast(_RequestedQuantityUnit.UnitOfMeasureISOCode as sd_reqd_qty_isounit preserving type) as RequestedQuantityISOUnit,

      //Reference

      SalesOrderItem.ReferenceSDDocument,
      @Consumption.hidden: true
      @Semantics.nullValueIndicatorFor: 'ReferenceSDDocument'
      cast( '' as rap_null_value_indicator )                                                   as ReferenceSDDocumentIsNull,

      SalesOrderItem.ReferenceSDDocumentItem,
      @Consumption.hidden: true
      @Semantics.nullValueIndicatorFor: 'ReferenceSDDocumentItem'
      cast( '' as rap_null_value_indicator )                                                   as ReferenceSDDocumentItemIsNull,

      SalesOrderItem.ReferenceSDDocumentCategory,
      @Consumption.hidden: true
      @Semantics.nullValueIndicatorFor: 'ReferenceSDDocumentCategory'
      cast( '' as rap_null_value_indicator )                                                   as ReferenceSDDocumentCatIsNull,

      @Semantics.quantity.unitOfMeasure: 'ItemWeightSAPUnit'
      @Semantics.quantity.unitOfMeasureSapCode: 'ItemWeightSAPUnit'
      @Semantics.quantity.unitOfMeasureIsoCode: 'ItemWeightISOUnit'
      SalesOrderItem.ItemGrossWeight,
      @Semantics.quantity.unitOfMeasure: 'ItemWeightSAPUnit'
      @Semantics.quantity.unitOfMeasureSapCode: 'ItemWeightSAPUnit'
      @Semantics.quantity.unitOfMeasureIsoCode: 'ItemWeightISOUnit'
      SalesOrderItem.ItemNetWeight,
      SalesOrderItem.ItemWeightUnit                                                            as ItemWeightSAPUnit,
      cast(_ItemWeightUnit.UnitOfMeasureISOCode as sd_itm_wgt_isounit preserving type)         as ItemWeightISOUnit,

      @Semantics.quantity.unitOfMeasure: 'ItemVolumeSAPUnit'
      @Semantics.quantity.unitOfMeasureSapCode: 'ItemVolumeSAPUnit'
      @Semantics.quantity.unitOfMeasureIsoCode: 'ItemVolumeISOUnit'
      SalesOrderItem.ItemVolume,
      SalesOrderItem.ItemVolumeUnit                                                            as ItemVolumeSAPUnit,
      cast(_ItemVolumeUnit.UnitOfMeasureISOCode as sd_itm_vol_isounit preserving type)         as ItemVolumeISOUnit,

      _ItemEnhancedFields._RequestedDeliveryDate.RequestedDeliveryDate,
      _ItemEnhancedFields._ConfirmedDeliveryDate.ConfirmedDeliveryDate,
      SalesOrderItem.PricingDate,
      SalesOrderItem.ServicesRenderedDate,
      SalesOrderItem.BillingDocumentDate,

      @Semantics.amount.currencyCode: 'TransactionCurrency'
      SalesOrderItem.NetAmount,
      @ObjectModel.sapObjectNodeTypeReference: 'Currency'
      SalesOrderItem.TransactionCurrency,
      @Semantics.amount.currencyCode: 'TransactionCurrency'
      SalesOrderItem.TaxAmount,

      @Semantics.amount.currencyCode: 'TransactionCurrency'
      SalesOrderItem.Subtotal1Amount,
      @Semantics.amount.currencyCode: 'TransactionCurrency'
      SalesOrderItem.Subtotal2Amount,
      @Semantics.amount.currencyCode: 'TransactionCurrency'
      SalesOrderItem.Subtotal3Amount,
      @Semantics.amount.currencyCode: 'TransactionCurrency'
      SalesOrderItem.Subtotal4Amount,
      @Semantics.amount.currencyCode: 'TransactionCurrency'
      SalesOrderItem.Subtotal5Amount,
      @Semantics.amount.currencyCode: 'TransactionCurrency'
      SalesOrderItem.Subtotal6Amount,

      @ObjectModel.sapObjectNodeTypeReference: 'CustomerGroup'
      SalesOrderItem.CustomerGroup,

      SalesOrderItem.Batch,
      SalesOrderItem.Plant,
      @ObjectModel.sapObjectNodeTypeReference: 'StorageLocation'
      SalesOrderItem.StorageLocation,
      @ObjectModel.sapObjectNodeTypeReference: 'ShippingPoint'
      SalesOrderItem.ShippingPoint,
      SalesOrderItem.ShippingType,
      SalesOrderItem.Route,
      SalesOrderItem.DeliveryPriority,
      SalesOrderItem.PartialDeliveryIsAllowed,
      SalesOrderItem.MaxNmbrOfPartialDelivery,
      @ObjectModel.sapObjectNodeTypeReference: 'DeliveryDateTypeRule'
      SalesOrderItem.DeliveryDateTypeRule,
      SalesOrderItem.ReceivingPoint,
      SalesOrderItem.DeliveryGroup,

      @ObjectModel.sapObjectNodeTypeReference: 'IncotermsClassification'
      SalesOrderItem.IncotermsClassification,
      SalesOrderItem.IncotermsLocation1,
      SalesOrderItem.IncotermsLocation2,
      @ObjectModel.sapObjectNodeTypeReference: 'IncotermsVersion'
      SalesOrderItem.IncotermsVersion,
      SalesOrderItem.CustomerPaymentTerms,
      SalesOrderItem.FixedValueDate,
      @ObjectModel.sapObjectNodeTypeReference: 'CustomerPriceGroup'
      SalesOrderItem.CustomerPriceGroup,
      @ObjectModel.sapObjectNodeTypeReference: 'MaterialPricingGroup'
      cast (MaterialPricingGroup as productpricinggroup preserving type )                      as MaterialPricingGroup,

      SalesOrderItem.BusinessArea,
      SalesOrderItem.ProfitCenter,
      @ObjectModel.sapObjectNodeTypeReference: 'MaterialAccountAssignmentGroup'
      SalesOrderItem.MatlAccountAssignmentGroup,

      SalesOrderItem._WBSElementBasicData_2.WBSElementExternalID                               as WBSElementExternalID,

      @ObjectModel.sapObjectNodeTypeReference: 'BillingBlockReason'
      SalesOrderItem.ItemBillingBlockReason,
      @ObjectModel.sapObjectNodeTypeReference: 'SalesDocumentRjcnReason'
      SalesOrderItem.SalesDocumentRjcnReason,

      SalesOrderItem.ProductConfiguration,
      //@Consumption.hidden: true

      //SalesOrderItem.VarConfigurationBusObjectKey,

      //@Consumption.hidden: true

      //SalesOrderItem.VarConfigurationBusObjectType,


      SalesOrderItem.SlsContrAutoAssgmtIDForSlsOrd,
      @Consumption.hidden: true
      @Semantics.nullValueIndicatorFor: 'SlsContrAutoAssgmtIDForSlsOrd'
      cast( '' as rap_null_value_indicator )                                                   as SlsContrAutoAssgmtIDIsNull,

      @ObjectModel.sapObjectNodeTypeReference: 'SDProcessStatus'
      SalesOrderItem.SDProcessStatus,
      @ObjectModel.sapObjectNodeTypeReference: 'SalesDocPurchaseConfStatus'
      SalesOrderItem.PurchaseConfirmationStatus,
      @ObjectModel.sapObjectNodeTypeReference: 'SalesDocRejectionStatus'
      SalesOrderItem.SDDocumentRejectionStatus,
      @ObjectModel.sapObjectNodeTypeReference: 'SalesDocDeliveryStatus'
      SalesOrderItem.DeliveryStatus,
      @ObjectModel.sapObjectNodeTypeReference: 'SalesDocItemBillingBlockStatus'
      SalesOrderItem.BillingBlockStatus,
      @ObjectModel.sapObjectNodeTypeReference: 'SlsDocItemGenIncompltnStatus'
      SalesOrderItem.ItemGeneralIncompletionStatus,
      @ObjectModel.sapObjectNodeTypeReference: 'SalesDocDeliveryBlockStatus'
      SalesOrderItem.DeliveryBlockStatus,
      SalesOrderItem.SlsOrderItemDownPaymentStatus,
      @ObjectModel.sapObjectNodeTypeReference: 'OrderRelatedBillingStatus'
      SalesOrderItem.OrderRelatedBillingStatus,
      SalesOrderItem.ChmlCmplncStatus,
      SalesOrderItem.DangerousGoodsStatus,
      SalesOrderItem.SafetyDataSheetStatus,
      SalesOrderItem.TrdCmplncEmbargoSts,
      SalesOrderItem.TrdCmplncSnctndListChkSts,
      SalesOrderItem.OvrlTrdCmplncLegalCtrlChkSts,


      //Parent

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

      //Compositions

      @ObjectModel.filter.enabled: false
      _ItemPartner,
      @ObjectModel.filter.enabled: false
      _ItemPricingElement,
      @ObjectModel.filter.enabled: false
      _ScheduleLine,
      @ObjectModel.filter.enabled: false
      _VariantConfiguration,

      @Consumption.hidden: true
      case when SalesOrderItem.ProductConfiguration is not initial
        then cast(concat(SalesOrderItem.SalesOrder, SalesOrderItem.SalesOrderItem) as ibobjkey)
        else null
      end                                                                                      as VarConfigurationBusObjectKey,

      @Consumption.hidden: true
      case when SalesOrderItem.ProductConfiguration is not initial
        then cast('SalesOrderItem' as sbo_node_type)
        else null
      end                                                                                      as VarConfigurationBusObjectType,

      //used for ETAG

      @Consumption.hidden: true
      _SalesOrder.LastChangeDateTime,

      // For Access control

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