I_PlannedOrderComponent
Planned Order Component
I_PlannedOrderComponent is a Basic CDS View (Dimension) that provides data about "Planned Order Component" in SAP S/4HANA. It reads from 2 data sources (I_PlannedOrder, resb) and exposes 62 fields with key fields Reservation, ReservationItem, RecordType. It has 62 associations to related views.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_PlannedOrder | plaf | inner |
| resb | resb | from |
Associations (62)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_ReservationDocumentHeader | _Reservation | $projection.Reservation = _Reservation.Reservation |
| [1..1] | I_ReservationDocumentItem | _ReservationItem | $projection.Reservation = _ReservationItem.Reservation and $projection.ReservationItem = _ReservationItem.ReservationItem and $projection.RecordType = _ReservationItem.RecordType |
| [0..1] | I_ReservationDocRecordType | _ReservationDocRecordType | $projection.RecordType = _ReservationDocRecordType.RecordType |
| [1..1] | I_PlannedOrderType | _PlannedOrderType | $projection.PlannedOrderType = _PlannedOrderType.PlannedOrderType |
| [1..1] | I_MaterialRequirementType | _RequirementType | $projection.RequirementType = _RequirementType.RequirementType |
| [1..1] | I_MaterialGroup | _MaterialGroup | $projection.MaterialGroup = _MaterialGroup.MaterialGroup |
| [1..1] | I_Material | _Material | $projection.Material = _Material.Material |
| [1..1] | I_Product | _Product | $projection.Material = _Product.Product |
| [1..*] | I_ProductUnitsOfMeasure | _ProductUnitsOfMeasure | $projection.Material = _ProductUnitsOfMeasure.Product |
| [1..1] | I_Plant | _Plant | $projection.Plant = _Plant.Plant |
| [1..1] | I_ProductPlant | _ProductPlant | $projection.Material = _ProductPlant.Product and $projection.Plant = _ProductPlant.Plant |
| [1..1] | I_ProductPlantBasic | _ProductPlant2 | $projection.Material = _ProductPlant2.Product and $projection.Plant = _ProductPlant2.Plant |
| [1..1] | I_ProductSupplyPlanning | _ProductSupplyPlanning | $projection.Material = _ProductSupplyPlanning.Product and $projection.Plant = _ProductSupplyPlanning.Plant |
| [0..1] | I_ProductStorageLocation | _ProductStorageLocation | $projection.Material = _ProductStorageLocation.Product and $projection.Plant = _ProductStorageLocation.Plant and $projection.StorageLocation = _ProductStorageLocation.StorageLocation |
| [0..1] | I_ProductStorageLocationBasic | _ProductStorageLocation2 | $projection.Material = _ProductStorageLocation2.Product and $projection.Plant = _ProductStorageLocation2.Plant and $projection.StorageLocation = _ProductStorageLocation2.StorageLocation |
| [0..1] | I_ProductPlantMRP | _ProductPlantMRPArea | $projection.Material = _ProductPlantMRPArea.Product and $projection.Plant = _ProductPlantMRPArea.Plant and $projection.MRPArea = _ProductPlantMRPArea.MRPArea |
| [0..1] | I_MRPController | _MRPController | $projection.Plant = _MRPController.Plant and $projection.MRPController = _MRPController.MRPController |
| [0..1] | I_MRPArea | _MRPArea | $projection.MRPArea = _MRPArea.MRPArea |
| [0..1] | I_ProductionSupervisor | _ProductionSupervisor | $projection.Plant = _ProductionSupervisor.Plant and $projection.ProductionSupervisor = _ProductionSupervisor.ProductionSupervisor |
| [0..1] | I_ProductionVersion | _ProductionVersion | $projection.Material = _ProductionVersion.Material and $projection.Plant = _ProductionVersion.Plant and $projection.ProductionVersion = _ProductionVersion.ProductionVersion |
| [0..1] | I_SalesOrder | _SalesOrder | $projection.SalesOrder = _SalesOrder.SalesOrder |
| [0..1] | I_SalesOrderItem | _SalesOrderItem | $projection.SalesOrder = _SalesOrderItem.SalesOrder and $projection.SalesOrderItem = _SalesOrderItem.SalesOrderItem |
| [0..1] | I_WBSElementBasicData | _WBSElement | $projection.WBSElementInternalID = _WBSElement.WBSElementInternalID |
| [0..1] | I_WBSElementBasicData | _WBSElementBasic | $projection.WBSElementInternalID_2 = _WBSElementBasic.WBSElementInternalID |
| [0..1] | I_BOMExplosionDate | _BOMExplosion | $projection.BOMExplosion = _BOMExplosion.BOMExplosionDateID |
| [0..1] | I_BillOfMaterialItemBasic | _BillOfMaterialItem | $projection.BillOfMaterialCategory = _BillOfMaterialItem.BillOfMaterialCategory and $projection.BillOfMaterialInternalID = _BillOfMaterialItem.BillOfMaterial and $projection.BOMItem = _BillOfMaterialItem.BillOfMaterialItemNodeNumber and $projection.BOMItemInternalChangeCount = _BillOfMaterialItem.BOMItemInternalChangeCount |
| [0..1] | I_BillOfMaterialItemBasic | _BillOfMaterialItemBasic | $projection.BillOfMaterialCategory = _BillOfMaterialItemBasic.BillOfMaterialCategory and $projection.BillOfMaterialInternalID_2 = _BillOfMaterialItemBasic.BillOfMaterial and $projection.BOMItem = _BillOfMaterialItemBasic.BillOfMaterialItemNodeNumber and $projection.BOMItemInternalChangeCount = _BillOfMaterialItemBasic.BOMItemInternalChangeCount |
| [0..1] | I_BillOfMaterialItemCategory | _BOMItemCategory | $projection.BOMItemCategory = _BOMItemCategory.BillOfMaterialItemCategory |
| [0..1] | I_PurchasingInfoRecordApi01 | _PurchasingInfoRecord | $projection.PurchasingInfoRecord = _PurchasingInfoRecord.PurchasingInfoRecord |
| [0..1] | I_PurchasingGroup | _PurchasingGroup | $projection.PurchasingGroup = _PurchasingGroup.PurchasingGroup |
| [0..1] | I_PurchaseOrderAPI01 | _PurchaseOrder | $projection.PurchaseOrder = _PurchaseOrder.PurchaseOrder |
| [0..1] | I_PurchaseOrderItemAPI01 | _PurchaseOrderItem | $projection.PurchaseOrder = _PurchaseOrderItem.PurchaseOrder and $projection.PurchaseOrderItem = _PurchaseOrderItem.PurchaseOrderItem |
| [0..1] | I_Purchaserequisition | _PurchaseRequisition | $projection.PurchaseRequisition = _PurchaseRequisition.PurchaseRequisition |
| [0..1] | I_PurchaseRequisition_Api01 | _PurchaseRequisitionItem | $projection.PurchaseRequisition = _PurchaseRequisitionItem.PurchaseRequisition and $projection.PurchaseRequisitionItem = _PurchaseRequisitionItem.PurchaseRequisitionItem |
| [0..1] | I_PurchaseRequisitionItemAPI01 | _PurchaseRequisitionItem2 | $projection.PurchaseRequisition = _PurchaseRequisitionItem2.PurchaseRequisition and $projection.PurchaseRequisitionItem = _PurchaseRequisitionItem2.PurchaseRequisitionItem |
| [0..1] | I_Supplier | _Supplier | $projection.Supplier = _Supplier.Supplier |
| [0..1] | I_SupplierCompanyByPlant | _SupplierCompanyByPlant | $projection.Plant = _SupplierCompanyByPlant.Plant and $projection.Supplier = _SupplierCompanyByPlant.Supplier |
| [0..1] | I_StorageLocation | _StorageLocation | $projection.Plant = _StorageLocation.Plant and $projection.StorageLocation = _StorageLocation.StorageLocation |
| [0..*] | I_Batch | _Batch | $projection.Material = _Batch.Material and $projection.Batch = _Batch.Batch |
| [0..1] | I_Batch | _Batch_2 | $projection.Material = _Batch_2.Material and $projection.Plant = _Batch_2.Plant and $projection.Batch = _Batch_2.Batch |
| [1..1] | I_DebitCreditCode | _DebitCreditCode | $projection.DebitCreditCode = _DebitCreditCode.DebitCreditCode |
| [1..1] | I_GoodsMovementType | _GoodsMovementType | $projection.GoodsMovementType = _GoodsMovementType.GoodsMovementType |
| [1..1] | I_InventorySpecialStockType | _InventorySpecialStockType | $projection.InventorySpecialStockType = _InventorySpecialStockType.InventorySpecialStockType |
| [0..1] | I_InvtrySpecialStockValnType | _InventorySpecialStockValnType | $projection.InventorySpecialStockValnType = _InventorySpecialStockValnType.InventorySpecialStockValnType |
| [0..1] | I_ConsumptionPosting | _ConsumptionPosting | $projection.ConsumptionPosting = _ConsumptionPosting.ConsumptionPosting |
| [0..1] | I_ProductionSupplyArea | _SupplyArea | $projection.Plant = _SupplyArea.Plant and $projection.SupplyArea = _SupplyArea.ProductionSupplyArea |
| [0..1] | I_Warehouse | _Warehouse | $projection.Warehouse = _Warehouse.Warehouse |
| [0..1] | I_MatlCompDiscontinuationType | _MatlCompDiscontinuationType | $projection.MatlCompDiscontinuationType = _MatlCompDiscontinuationType.MatlCompDiscontinuationType |
| [0..1] | I_MatlCompProvisionType | _ProvisionType | $projection.MaterialProvisionType = _ProvisionType.MaterialProvisionType |
| [0..1] | I_MatlCompSparePartType | _SparePartType | $projection.MatlComponentSparePartType = _SparePartType.MatlComponentSparePartType |
| [0..1] | I_BusinessArea | _BusinessArea | $projection.BusinessArea = _BusinessArea.BusinessArea |
| [0..1] | I_AccountAssignmentCategory | _AccountAssignmentCategory | $projection.AccountAssignmentCategory = _AccountAssignmentCategory.AccountAssignmentCategory |
| [0..1] | I_CommitmentItemShortID | _CommitmentItemShortID | $projection.CommitmentItemShortID = _CommitmentItemShortID.CommitmentItemShortID |
| [0..1] | I_Product | _Assembly | $projection.Assembly = _Assembly.Product |
| [0..1] | I_Product | _FollowUpMaterial | $projection.FollowUpMaterial = _FollowUpMaterial.Product |
| [1..1] | I_UnitOfMeasure | _BaseUnit | $projection.BaseUnit = _BaseUnit.UnitOfMeasure |
| [1..1] | I_UnitOfMeasure | _EntryUnit | $projection.EntryUnit = _EntryUnit.UnitOfMeasure |
| [0..1] | I_UnitOfMeasure | _OpLeadTimeOffsetUnit | $projection.OperationLeadTimeOffsetUnit = _OpLeadTimeOffsetUnit.UnitOfMeasure |
| [0..1] | I_Currency | _Currency | $projection.Currency = _Currency.Currency |
| [0..1] | I_ChangeMaster | _ChangeNumber | $projection.ChangeNumber = _ChangeNumber.ChangeNumber -- to root |
| [1..1] | I_PlannedOrder | _PlannedOrder | $projection.PlannedOrder = _PlannedOrder.PlannedOrder -- to extension |
| [1..1] | E_ReservationDocumentItem | _Extension | $projection.Reservation = _Extension.Reservation and $projection.ReservationItem = _Extension.ReservationItem and $projection.RecordType = _Extension.RecordType |
Annotations (19)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IPPPLNDORDCOMP | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #MANDATORY | view | |
| Analytics.dataCategory | #DIMENSION | view | |
| Analytics.dataExtraction.enabled | true | view | |
| Analytics.internalName | #LOCAL | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ClientHandling.type | #CLIENT_DEPENDENT | view | |
| Metadata.allowExtensions | true | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| ObjectModel.modelingPattern | #NONE | view | |
| ObjectModel.representativeKey | ReservationItem | view | |
| ObjectModel.sapObjectNodeType.name | PlannedOrderComponent | view | |
| ObjectModel.usageType.serviceQuality | #B | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| VDM.lifecycle.contract.type | #PUBLIC_LOCAL_API | view | |
| VDM.viewType | #BASIC | view | |
| EndUserText.label | Planned Order Component | view |
Fields (62)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | Reservation | resb | rsnum | |
| KEY | ReservationItem | |||
| KEY | RecordType | |||
| PlannedOrder | I_PlannedOrder | PlannedOrder | ||
| PlannedOrderType | I_PlannedOrder | PlannedOrderType | ||
| MatlCompRequirementDate | ||||
| MatlCompRequirementTime | ||||
| ReservationIsFinallyIssued | resb | kzear | ||
| MatlCompIsMarkedForDeletion | ||||
| MaterialComponentIsMissing | resb | xfehl | ||
| IsBulkMaterialComponent | resb | schgt | ||
| MatlCompIsMarkedForBackflush | resb | rgekz | ||
| MatlCompIsTextItem | resb | txtps | ||
| MatlCompIsConfigurable | resb | kfpos | ||
| RequirementType | ||||
| MaterialGroup | resb | matkl | ||
| Material | resb | matnr | ||
| Plant | resb | werks | ||
| MRPArea | I_PlannedOrder | MRPArea | ||
| MRPController | I_PlannedOrder | MRPController | ||
| ProductionSupervisor | I_PlannedOrder | ProductionSupervisor | ||
| ProductionVersion | I_PlannedOrder | ProductionVersion | ||
| pbdnrasRequirementPlan | ||||
| SalesOrder | ||||
| SalesOrderItem | ||||
| WBSElementInternalID | ||||
| WBSElementInternalID_2 | ||||
| ProductConfiguration | resb | cuobj | ||
| ChangeNumber | ||||
| SortField | resb | sortf | ||
| MatlCompFreeDefinedAttribute | resb | sortf | ||
| MaterialRevisionLevel | ||||
| MaterialPlanningRelevance | ||||
| BillOfMaterialCategory | ||||
| BillOfMaterialInternalID | resb | stlnr | ||
| BillOfMaterialInternalID_2 | ||||
| BillOfMaterialVariant | resb | stlal | ||
| BOMItem | ||||
| BOMItemInternalChangeCount | resb | stpoz | ||
| BOMItemCategory | ||||
| BillOfMaterialItemNumber | resb | posnr | ||
| BillOfMaterialItemNumber_2 | ||||
| BOMItemDescription | resb | potx1 | ||
| BOMItemText2 | resb | potx2 | ||
| BOMExplosion | ||||
| PurchasingGroup | ||||
| Supplier | resb | lifnr | ||
| DeliveryDurationInDays | ||||
| GoodsMovementIsAllowed | resb | xwaok | ||
| StorageLocation | ||||
| Batch | resb | charg | ||
| DebitCreditCode | ||||
| GoodsMovementType | resb | bwart | ||
| InventorySpecialStockType | ||||
| InventorySpecialStockValnType | ||||
| ConsumptionPosting | ||||
| SupplyArea | ||||
| MaterialStaging | resb | berkz | ||
| Warehouse | resb | lgnum | ||
| StorageType | resb | lgtyp | ||
| StorageBin | resb | lgpla | ||
| BusinessArea | resb | gsber |
@AbapCatalog.sqlViewName: 'IPPPLNDORDCOMP'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@AccessControl.privilegedAssociations: ['_MRPController', '_ProductionSupervisor']
@Analytics.dataCategory: #DIMENSION
@Analytics.dataExtraction.enabled: true
@Analytics.internalName: #LOCAL
@ClientHandling.algorithm: #SESSION_VARIABLE
@ClientHandling.type: #CLIENT_DEPENDENT
@Metadata.allowExtensions: true
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.modelingPattern: #NONE
@ObjectModel.supportedCapabilities: [#SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #EXTRACTION_DATA_SOURCE, #ANALYTICAL_DIMENSION, #CDS_MODELING_ASSOCIATION_TARGET]
@ObjectModel.representativeKey: 'ReservationItem'
@ObjectModel.sapObjectNodeType.name: 'PlannedOrderComponent'
@ObjectModel.usageType: {serviceQuality: #B, sizeCategory: #L, dataClass: #TRANSACTIONAL}
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@VDM.viewType: #BASIC
@EndUserText.label: 'Planned Order Component'
/*+[hideWarning] { "IDS" : [ "CALCULATED_FIELD_CHECK" ] } */
define view I_PlannedOrderComponent
as select from resb as resb
inner join I_PlannedOrder as plaf on resb.plnum = plaf.PlannedOrder
association [1..1] to I_ReservationDocumentHeader as _Reservation on $projection.Reservation = _Reservation.Reservation
association [1..1] to I_ReservationDocumentItem as _ReservationItem on $projection.Reservation = _ReservationItem.Reservation
and $projection.ReservationItem = _ReservationItem.ReservationItem
and $projection.RecordType = _ReservationItem.RecordType
association [0..1] to I_ReservationDocRecordType as _ReservationDocRecordType on $projection.RecordType = _ReservationDocRecordType.RecordType
association [1..1] to I_PlannedOrderType as _PlannedOrderType on $projection.PlannedOrderType = _PlannedOrderType.PlannedOrderType
association [1..1] to I_MaterialRequirementType as _RequirementType on $projection.RequirementType = _RequirementType.RequirementType
association [1..1] to I_MaterialGroup as _MaterialGroup on $projection.MaterialGroup = _MaterialGroup.MaterialGroup
association [1..1] to I_Material as _Material on $projection.Material = _Material.Material
association [1..1] to I_Product as _Product on $projection.Material = _Product.Product
association [1..*] to I_ProductUnitsOfMeasure as _ProductUnitsOfMeasure on $projection.Material = _ProductUnitsOfMeasure.Product
association [1..1] to I_Plant as _Plant on $projection.Plant = _Plant.Plant
association [1..1] to I_ProductPlant as _ProductPlant on $projection.Material = _ProductPlant.Product
and $projection.Plant = _ProductPlant.Plant
association [1..1] to I_ProductPlantBasic as _ProductPlant2 on $projection.Material = _ProductPlant2.Product
and $projection.Plant = _ProductPlant2.Plant
association [1..1] to I_ProductSupplyPlanning as _ProductSupplyPlanning on $projection.Material = _ProductSupplyPlanning.Product
and $projection.Plant = _ProductSupplyPlanning.Plant
association [0..1] to I_ProductStorageLocation as _ProductStorageLocation on $projection.Material = _ProductStorageLocation.Product
and $projection.Plant = _ProductStorageLocation.Plant
and $projection.StorageLocation = _ProductStorageLocation.StorageLocation
association [0..1] to I_ProductStorageLocationBasic as _ProductStorageLocation2 on $projection.Material = _ProductStorageLocation2.Product
and $projection.Plant = _ProductStorageLocation2.Plant
and $projection.StorageLocation = _ProductStorageLocation2.StorageLocation
association [0..1] to I_ProductPlantMRP as _ProductPlantMRPArea on $projection.Material = _ProductPlantMRPArea.Product
and $projection.Plant = _ProductPlantMRPArea.Plant
and $projection.MRPArea = _ProductPlantMRPArea.MRPArea
association [0..1] to I_MRPController as _MRPController on $projection.Plant = _MRPController.Plant
and $projection.MRPController = _MRPController.MRPController
association [0..1] to I_MRPArea as _MRPArea on $projection.MRPArea = _MRPArea.MRPArea
association [0..1] to I_ProductionSupervisor as _ProductionSupervisor on $projection.Plant = _ProductionSupervisor.Plant
and $projection.ProductionSupervisor = _ProductionSupervisor.ProductionSupervisor
association [0..1] to I_ProductionVersion as _ProductionVersion on $projection.Material = _ProductionVersion.Material
and $projection.Plant = _ProductionVersion.Plant
and $projection.ProductionVersion = _ProductionVersion.ProductionVersion
association [0..1] to I_SalesOrder as _SalesOrder on $projection.SalesOrder = _SalesOrder.SalesOrder
association [0..1] to I_SalesOrderItem as _SalesOrderItem on $projection.SalesOrder = _SalesOrderItem.SalesOrder
and $projection.SalesOrderItem = _SalesOrderItem.SalesOrderItem
association [0..1] to I_WBSElementBasicData as _WBSElement on $projection.WBSElementInternalID = _WBSElement.WBSElementInternalID
association [0..1] to I_WBSElementBasicData as _WBSElementBasic on $projection.WBSElementInternalID_2 = _WBSElementBasic.WBSElementInternalID
association [0..1] to I_BOMExplosionDate as _BOMExplosion on $projection.BOMExplosion = _BOMExplosion.BOMExplosionDateID
association [0..1] to I_BillOfMaterialItemBasic as _BillOfMaterialItem on $projection.BillOfMaterialCategory = _BillOfMaterialItem.BillOfMaterialCategory
and $projection.BillOfMaterialInternalID = _BillOfMaterialItem.BillOfMaterial
and $projection.BOMItem = _BillOfMaterialItem.BillOfMaterialItemNodeNumber
and $projection.BOMItemInternalChangeCount = _BillOfMaterialItem.BOMItemInternalChangeCount
association [0..1] to I_BillOfMaterialItemBasic as _BillOfMaterialItemBasic on $projection.BillOfMaterialCategory = _BillOfMaterialItemBasic.BillOfMaterialCategory
and $projection.BillOfMaterialInternalID_2 = _BillOfMaterialItemBasic.BillOfMaterial
and $projection.BOMItem = _BillOfMaterialItemBasic.BillOfMaterialItemNodeNumber
and $projection.BOMItemInternalChangeCount = _BillOfMaterialItemBasic.BOMItemInternalChangeCount
association [0..1] to I_BillOfMaterialItemCategory as _BOMItemCategory on $projection.BOMItemCategory = _BOMItemCategory.BillOfMaterialItemCategory
association [0..1] to I_PurchasingInfoRecordApi01 as _PurchasingInfoRecord on $projection.PurchasingInfoRecord = _PurchasingInfoRecord.PurchasingInfoRecord
association [0..1] to I_PurchasingGroup as _PurchasingGroup on $projection.PurchasingGroup = _PurchasingGroup.PurchasingGroup
association [0..1] to I_PurchaseOrderAPI01 as _PurchaseOrder on $projection.PurchaseOrder = _PurchaseOrder.PurchaseOrder
association [0..1] to I_PurchaseOrderItemAPI01 as _PurchaseOrderItem on $projection.PurchaseOrder = _PurchaseOrderItem.PurchaseOrder
and $projection.PurchaseOrderItem = _PurchaseOrderItem.PurchaseOrderItem
association [0..1] to I_Purchaserequisition as _PurchaseRequisition on $projection.PurchaseRequisition = _PurchaseRequisition.PurchaseRequisition
association [0..1] to I_PurchaseRequisition_Api01 as _PurchaseRequisitionItem on $projection.PurchaseRequisition = _PurchaseRequisitionItem.PurchaseRequisition
and $projection.PurchaseRequisitionItem = _PurchaseRequisitionItem.PurchaseRequisitionItem
association [0..1] to I_PurchaseRequisitionItemAPI01 as _PurchaseRequisitionItem2 on $projection.PurchaseRequisition = _PurchaseRequisitionItem2.PurchaseRequisition
and $projection.PurchaseRequisitionItem = _PurchaseRequisitionItem2.PurchaseRequisitionItem
association [0..1] to I_Supplier as _Supplier on $projection.Supplier = _Supplier.Supplier
association [0..1] to I_SupplierCompanyByPlant as _SupplierCompanyByPlant on $projection.Plant = _SupplierCompanyByPlant.Plant
and $projection.Supplier = _SupplierCompanyByPlant.Supplier
association [0..1] to I_StorageLocation as _StorageLocation on $projection.Plant = _StorageLocation.Plant
and $projection.StorageLocation = _StorageLocation.StorageLocation
association [0..*] to I_Batch as _Batch on $projection.Material = _Batch.Material
and $projection.Batch = _Batch.Batch
association [0..1] to I_Batch as _Batch_2 on $projection.Material = _Batch_2.Material
and $projection.Plant = _Batch_2.Plant
and $projection.Batch = _Batch_2.Batch
association [1..1] to I_DebitCreditCode as _DebitCreditCode on $projection.DebitCreditCode = _DebitCreditCode.DebitCreditCode
association [1..1] to I_GoodsMovementType as _GoodsMovementType on $projection.GoodsMovementType = _GoodsMovementType.GoodsMovementType
association [1..1] to I_InventorySpecialStockType as _InventorySpecialStockType on $projection.InventorySpecialStockType = _InventorySpecialStockType.InventorySpecialStockType
association [0..1] to I_InvtrySpecialStockValnType as _InventorySpecialStockValnType on $projection.InventorySpecialStockValnType = _InventorySpecialStockValnType.InventorySpecialStockValnType
association [0..1] to I_ConsumptionPosting as _ConsumptionPosting on $projection.ConsumptionPosting = _ConsumptionPosting.ConsumptionPosting
association [0..1] to I_ProductionSupplyArea as _SupplyArea on $projection.Plant = _SupplyArea.Plant
and $projection.SupplyArea = _SupplyArea.ProductionSupplyArea
association [0..1] to I_Warehouse as _Warehouse on $projection.Warehouse = _Warehouse.Warehouse
association [0..1] to I_MatlCompDiscontinuationType as _MatlCompDiscontinuationType on $projection.MatlCompDiscontinuationType = _MatlCompDiscontinuationType.MatlCompDiscontinuationType
association [0..1] to I_MatlCompProvisionType as _ProvisionType on $projection.MaterialProvisionType = _ProvisionType.MaterialProvisionType
association [0..1] to I_MatlCompSparePartType as _SparePartType on $projection.MatlComponentSparePartType = _SparePartType.MatlComponentSparePartType
association [0..1] to I_BusinessArea as _BusinessArea on $projection.BusinessArea = _BusinessArea.BusinessArea
association [0..1] to I_AccountAssignmentCategory as _AccountAssignmentCategory on $projection.AccountAssignmentCategory = _AccountAssignmentCategory.AccountAssignmentCategory
association [0..1] to I_CommitmentItemShortID as _CommitmentItemShortID on $projection.CommitmentItemShortID = _CommitmentItemShortID.CommitmentItemShortID
association [0..1] to I_Product as _Assembly on $projection.Assembly = _Assembly.Product
association [0..1] to I_Product as _FollowUpMaterial on $projection.FollowUpMaterial = _FollowUpMaterial.Product
association [1..1] to I_UnitOfMeasure as _BaseUnit on $projection.BaseUnit = _BaseUnit.UnitOfMeasure
association [1..1] to I_UnitOfMeasure as _EntryUnit on $projection.EntryUnit = _EntryUnit.UnitOfMeasure
association [0..1] to I_UnitOfMeasure as _OpLeadTimeOffsetUnit on $projection.OperationLeadTimeOffsetUnit = _OpLeadTimeOffsetUnit.UnitOfMeasure
association [0..1] to I_Currency as _Currency on $projection.Currency = _Currency.Currency
association [0..1] to I_ChangeMaster as _ChangeNumber on $projection.ChangeNumber = _ChangeNumber.ChangeNumber
-- to root
association [1..1] to I_PlannedOrder as _PlannedOrder on $projection.PlannedOrder = _PlannedOrder.PlannedOrder
-- to extension
association [1..1] to E_ReservationDocumentItem as _Extension on $projection.Reservation = _Extension.Reservation
and $projection.ReservationItem = _Extension.ReservationItem
and $projection.RecordType = _Extension.RecordType
{
// Key
@ObjectModel.foreignKey.association: '_Reservation'
key resb.rsnum as Reservation,
@ObjectModel.text.element: ['BOMItemDescription']
key cast(resb.rspos as pph_rspos preserving type) as ReservationItem,
@ObjectModel.foreignKey.association: '_ReservationDocRecordType'
key cast(resb.rsart as pph_rsart preserving type) as RecordType,
// Order data
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlannedOrderStdVH', element: 'PlannedOrder' } } ]
@ObjectModel.foreignKey.association: '_PlannedOrder'
plaf.PlannedOrder,
@ObjectModel.foreignKey.association: '_PlannedOrderType'
plaf.PlannedOrderType,
// Date and Time
@Semantics.businessDate.at: true
cast(resb.bdter as pph_bdter preserving type) as MatlCompRequirementDate,
cast(resb.bdztp as pph_bdztp preserving type) as MatlCompRequirementTime,
// Attributes
resb.kzear as ReservationIsFinallyIssued,
cast(resb.xloek as pph_xloek preserving type) as MatlCompIsMarkedForDeletion,
resb.xfehl as MaterialComponentIsMissing,
resb.schgt as IsBulkMaterialComponent,
resb.rgekz as MatlCompIsMarkedForBackflush,
resb.txtps as MatlCompIsTextItem,
resb.kfpos as MatlCompIsConfigurable,
// Assignments
@ObjectModel.foreignKey.association: '_RequirementType'
cast(resb.bdart as pph_bdart preserving type) as RequirementType,
@ObjectModel.foreignKey.association: '_MaterialGroup'
resb.matkl as MaterialGroup,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProductStdVH', element: 'Product' } } ]
@ObjectModel.foreignKey.association: '_Material'
resb.matnr as Material,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlantStdVH', element: 'Plant' } } ]
@ObjectModel.foreignKey.association: '_Plant'
resb.werks as Plant,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_MRPAreaVH', element: 'MRPArea' } } ]
@ObjectModel.foreignKey.association: '_MRPArea'
plaf.MRPArea,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_MRPControllerVH', element: 'MRPController' } } ]
@ObjectModel.foreignKey.association: '_MRPController'
plaf.MRPController,
@ObjectModel.foreignKey.association: '_ProductionSupervisor'
plaf.ProductionSupervisor,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProductionVersionBasicStdVH', element: 'ProductionVersion' } } ]
@ObjectModel.foreignKey.association: '_ProductionVersion'
plaf.ProductionVersion,
-- @ObjectModel.foreignKey.association: '_RequirementPlan'
resb.pbdnr as RequirementPlan,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_SalesOrderStdVH', element: 'SalesOrder' } } ]
@ObjectModel.foreignKey.association: '_SalesOrder'
cast(resb.kdauf as co_kdauf preserving type) as SalesOrder,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_SalesOrderItemStdVH', element: 'SalesOrderItem' } } ]
@ObjectModel.foreignKey.association: '_SalesOrderItem'
cast(resb.kdpos as co_kdpos preserving type) as SalesOrderItem,
@API.element.releaseState: #DEPRECATED
@API.element.successor: 'WBSElementInternalID_2'
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_WBSElementBasicDataStdVH', element: 'WBSElementInternalID' } } ]
@ObjectModel.foreignKey.association: '_WBSElement'
cast(resb.pspel as pph_pspel preserving type) as WBSElementInternalID,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_WBSElementBasicDataStdVH', element: 'WBSElementInternalID' } } ]
@ObjectModel.foreignKey.association: '_WBSElementBasic'
cast(resb.pspel as ps_s4_pspnr preserving type) as WBSElementInternalID_2,
resb.cuobj as ProductConfiguration,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ChangeMasterStdVH', element: 'ChangeNumber' } } ]
@ObjectModel.foreignKey.association: '_ChangeNumber'
cast(resb.aennr as changenumber preserving type) as ChangeNumber,
@API.element.releaseState: #DEPRECATED
@API.element.successor: 'MatlCompFreeDefinedAttribute'
resb.sortf as SortField,
resb.sortf as MatlCompFreeDefinedAttribute,
cast(resb.revlv as vdm_qm_revlv preserving type) as MaterialRevisionLevel,
cast(resb.no_disp as vdm_no_disp preserving type) as MaterialPlanningRelevance,
// Assignments BOM
cast(resb.stlty as pph_stlty preserving type) as BillOfMaterialCategory,
@API.element.releaseState: #DEPRECATED
@API.element.successor: 'BillOfMaterialInternalID_2'
resb.stlnr as BillOfMaterialInternalID,
cast(resb.stlnr as pph_stnum preserving type) as BillOfMaterialInternalID_2,
resb.stlal as BillOfMaterialVariant,
cast(resb.stlkn as pph_stlkn preserving type) as BOMItem,
resb.stpoz as BOMItemInternalChangeCount,
cast(resb.postp as pph_postp preserving type) as BOMItemCategory,
@API.element.releaseState: #DEPRECATED
@API.element.successor: 'BillOfMaterialItemNumber_2'
@ObjectModel.text.element: ['BOMItemDescription']
resb.posnr as BillOfMaterialItemNumber,
@ObjectModel.text.element: ['BOMItemDescription']
cast(resb.posnr as vdm_sposn preserving type) as BillOfMaterialItemNumber_2,
@Semantics.text: true
resb.potx1 as BOMItemDescription,
@Semantics.text: true
resb.potx2 as BOMItemText2,
@ObjectModel.foreignKey.association: '_BOMExplosion'
cast(resb.sernr as pph_sernr preserving type) as BOMExplosion,
// Assignments Purchasing
-- @ObjectModel.foreignKey.association: '_PurchasingInfoRecord'
cast(resb.infnr as pph_infnr preserving type) as PurchasingInfoRecord,
@ObjectModel.foreignKey.association: '_PurchasingGroup'
cast(resb.ekgrp as pph_ekgrp preserving type) as PurchasingGroup,
-- @ObjectModel.foreignKey.association: '_PurchaseRequisition'
cast(resb.banfn as co_banfn preserving type) as PurchaseRequisition,
-- @ObjectModel.foreignKey.association: '_PurchaseRequisitionItem'
cast(resb.bnfpo as co_bnfpo preserving type) as PurchaseRequisitionItem,
-- @ObjectModel.foreignKey.association: '_PurchaseOrder'
cast(resb.ebeln as vdm_purchaseorder preserving type) as PurchaseOrder,
-- @ObjectModel.foreignKey.association: '_PurchaseOrderItem'
cast(resb.ebelp as vdm_purchaseorderitem preserving type) as PurchaseOrderItem,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_Supplier_VH', element: 'Supplier' } } ]
@ObjectModel.foreignKey.association: '_Supplier'
resb.lifnr as Supplier,
cast(resb.lifzt as pph_lifzt preserving type) as DeliveryDurationInDays,
// Goods Movement data
resb.xwaok as GoodsMovementIsAllowed,
@ObjectModel.foreignKey.association: '_StorageLocation'
cast(resb.lgort as pph_lgort preserving type) as StorageLocation,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_BatchStdVH', element: 'Batch' } } ]
@ObjectModel.foreignKey.association: '_Batch_2'
resb.charg as Batch,
@ObjectModel.foreignKey.association: '_DebitCreditCode'
cast(resb.shkzg as pph_shkzg preserving type) as DebitCreditCode,
@ObjectModel.foreignKey.association: '_GoodsMovementType'
resb.bwart as GoodsMovementType,
@ObjectModel.foreignKey.association: '_InventorySpecialStockType'
cast(resb.sobkz as inventoryspecialstocktype preserving type) as InventorySpecialStockType,
@ObjectModel.foreignKey.association: '_InventorySpecialStockValnType'
cast(resb.kzbws as pph_kzbws preserving type) as InventorySpecialStockValnType,
@ObjectModel.foreignKey.association: '_ConsumptionPosting'
cast(resb.kzvbr as pph_kzvbr preserving type) as ConsumptionPosting,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProductionSupplyAreaStdVH', element: 'ProductionSupplyArea' } } ]
@ObjectModel.foreignKey.association: '_SupplyArea'
cast(resb.prvbe as pph_prvbe preserving type) as SupplyArea,
// Assignments WM
resb.berkz as MaterialStaging,
@ObjectModel.foreignKey.association: '_Warehouse'
resb.lgnum as Warehouse,
resb.lgtyp as StorageType,
resb.lgpla as StorageBin,
// Assignments FI/CO
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_BusinessAreaStdVH', element: 'BusinessArea' } } ]
@ObjectModel.foreignKey.association: '_BusinessArea'
resb.gsber as BusinessArea,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_GLAccountStdVH', element: 'GLAccount' } } ]
resb.saknr as GLAccount,
@ObjectModel.foreignKey.association: '_AccountAssignmentCategory'
cast(resb.knttp as pph_knttp preserving type) as AccountAssignmentCategory,
@API.element.releaseState: #DEPRECATED
@API.element.successor: 'CommitmentItemShortID'
cast(resb.fipos as bbpfipos preserving type) as CommitmentItem,
cast(resb.fipos as fmis_ci_internalname preserving type) as CommitmentItemShortID,
cast(resb.fistl as bbpfistl preserving type) as FundsCenter,
// Variable-size item data
resb.rohps as MaterialCompIsVariableSized,
cast(resb.roanz as vdm_roanz) as NumberOfVariableSizeComponents,
@Semantics.unitOfMeasure: true
cast(resb.rokme as pph_rokme preserving type) as VariableSizeComponentUnit,
@Semantics.quantity.unitOfMeasure: 'VariableSizeComponentUnit'
@Aggregation.default: #SUM
cast(resb.romen as pph_romen preserving type) as VariableSizeComponentQuantity,
@Semantics.unitOfMeasure: true
resb.romei as VariableSizeDimensionUnit,
@Semantics.quantity.unitOfMeasure: 'VariableSizeDimensionUnit'
@Aggregation.default: #MAX
resb.roms1 as VariableSizeDimension1,
@Semantics.quantity.unitOfMeasure: 'VariableSizeDimensionUnit'
@Aggregation.default: #MAX
resb.roms2 as VariableSizeDimension2,
@Semantics.quantity.unitOfMeasure: 'VariableSizeDimensionUnit'
@Aggregation.default: #MAX
resb.roms3 as VariableSizeDimension3,
resb.rform as FormulaKey,
// Alternative item data
resb.alpos as MaterialCompIsAlternativeItem,
cast(resb.alpgr as pph_alpgr preserving type) as AlternativeItemGroup,
cast(resb.alpst as pph_alpst preserving type) as AlternativeItemStrategy,
cast(resb.alprf as pph_alprf preserving type) as AlternativeItemPriority,
resb.ewahr as UsageProbabilityPercent,
cast(case resb.alpos
when 'X' then resb.splrv
else '0000'
end as vdm_splrv_alt preserving type) as AlternativeMstrReservationItem,
// Phantom assembly
cast(resb.dumps as pph_dumps preserving type) as MaterialComponentIsPhantomItem,
resb.aufwg as OrderPathValue,
resb.aufst as OrderLevelValue,
@ObjectModel.foreignKey.association: '_Assembly'
resb.baugr as Assembly,
resb.bauwg
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA