I_MfgOrderOperationComponent

DDL: I_MFGORDEROPERATIONCOMPONENT SQL: IPPMFGORDOPCOMP Type: view BASIC

Manufacturing Order Operation Component

I_MfgOrderOperationComponent is a Basic CDS View (Dimension) that provides data about "Manufacturing Order Operation Component" in SAP S/4HANA. It reads from 1 data source (P_MfgOrderOpReservationItem) and exposes 38 fields with key fields Reservation, ReservationItem, RecordType. It has 78 associations to related views.

Data Sources (1)

SourceAliasJoin Type
P_MfgOrderOpReservationItem resb from

Associations (78)

CardinalityTargetAliasCondition
[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_ManufacturingOrder _ManufacturingOrder $projection.ManufacturingOrder = _ManufacturingOrder.ManufacturingOrder
[1..1] I_ManufacturingOrderSequence _ManufacturingOrderSequence $projection.ManufacturingOrder = _ManufacturingOrderSequence.ManufacturingOrder and $projection.ManufacturingOrderSequence = _ManufacturingOrderSequence.ManufacturingOrderSequence
[1..1] I_MfgOrder _MfgOrder $projection.ManufacturingOrder = _MfgOrder.ManufacturingOrder
[1..1] I_MfgOrderSequence _MfgOrderSequence $projection.ManufacturingOrder = _MfgOrderSequence.ManufacturingOrder and $projection.ManufacturingOrderSequence = _MfgOrderSequence.ManufacturingOrderSequence
[0..1] I_SequenceCategory _MfgOrderSequenceCategory $projection.MfgOrderSequenceCategory = _MfgOrderSequenceCategory.SequenceCategory
[1..1] I_MfgOrderOperationBasic _MfgOrderOperation $projection.OrderInternalBillOfOperations = _MfgOrderOperation.OrderInternalBillOfOperations and $projection.OrderIntBillOfOperationsItem = _MfgOrderOperation.OrderIntBillOfOperationsItem
[1..1] I_MfgOrderOperationBySemanKey _MfgOrderOperationBySemanKey $projection.ManufacturingOrder = _MfgOrderOperationBySemanKey.ManufacturingOrder and $projection.ManufacturingOrderSequence = _MfgOrderOperationBySemanKey.ManufacturingOrderSequence and $projection.ManufacturingOrderOperation = _MfgOrderOperationBySemanKey.ManufacturingOrderOperation
[1..1] I_MfgOrderOperationBySemKey _MfgOrderOperationBySemKey $projection.ManufacturingOrder = _MfgOrderOperationBySemKey.ManufacturingOrder and $projection.ManufacturingOrderSequence = _MfgOrderOperationBySemKey.ManufacturingOrderSequence and $projection.ManufacturingOrderOperation_2 = _MfgOrderOperationBySemKey.ManufacturingOrderOperation
[1..1] I_MfgOrderCategory _MfgOrderCategory $projection.ManufacturingOrderCategory = _MfgOrderCategory.ManufacturingOrderCategory
[1..1] I_MfgOrderType _MfgOrderType $projection.ManufacturingOrderType = _MfgOrderType.ManufacturingOrderType
[1..1] I_Plant _ProductionPlant $projection.ProductionPlant = _ProductionPlant.Plant
[1..1] I_OrdInternalBillOfOperations _OrdInternalBillOfOperations $projection.OrderInternalBillOfOperations = _OrdInternalBillOfOperations.OrderInternalBillOfOperations
[1..1] I_OrderInternalID _OrderInternalID $projection.OrderInternalBillOfOperations = _OrderInternalID.OrderInternalID
[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..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
[1..*] I_ProductUnitsOfMeasure _ProductUnitsOfMeasure $projection.Material = _ProductUnitsOfMeasure.Product
[0..1] I_MRPController _AssemblyMRPController $projection.Plant = _AssemblyMRPController.Plant and $projection.AssemblyMRPController = _AssemblyMRPController.MRPController
[0..1] I_ProductionSupervisor _ProductionSupervisor $projection.Plant = _ProductionSupervisor.Plant and $projection.ProductionSupervisor = _ProductionSupervisor.ProductionSupervisor
[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_WBSElementByInternalKey _WBSElement $projection.WBSElementInternalID = _WBSElement.WBSElementInternalID
[0..1] I_WBSElementBasicData _WBSElementBasicData $projection.WBSElementInternalID = _WBSElementBasicData.WBSElementInternalID
[0..1] I_WBSElementBasicData _WBSElementBasicData2 $projection.WBSElementInternalID_2 = _WBSElementBasicData2.WBSElementInternalID
[0..1] I_ChangeMaster _ChangeNumber $projection.ChangeNumber = _ChangeNumber.ChangeNumber
[0..1] I_BOMExplosionDate _BOMExplosion $projection.BOMExplosionDateID = _BOMExplosion.BOMExplosionDateID
[0..1] I_BillOfMaterialItemBasic _BillOfMaterialItem $projection.BillOfMaterialCategory = _BillOfMaterialItem.BillOfMaterialCategory and $projection.BillOfMaterial = _BillOfMaterialItem.BillOfMaterial and $projection.BOMItem = _BillOfMaterialItem.BillOfMaterialItemNodeNumber and $projection.BOMItemInternalChangeCount = _BillOfMaterialItem.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_BatchSplitType _BatchSplitType $projection.BatchSplitType= _BatchSplitType.BatchSplitType
[1..1] I_DebitCreditCode _DebitCreditCode $projection.DebitCreditCode = _DebitCreditCode.DebitCreditCode
[1..1] I_GoodsMovementType _GoodsMovementType $projection.GoodsMovementType = _GoodsMovementType.GoodsMovementType
[0..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_Product _PhantomAssembly $projection.Assembly = _PhantomAssembly.Product
[0..1] I_Product _FollowUpMaterial $projection.FollowUpMaterial = _FollowUpMaterial.Product
[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_CompanyCode _CompanyCode $projection.CompanyCode = _CompanyCode.CompanyCode
[0..1] I_BusinessArea _BusinessArea $projection.BusinessArea = _BusinessArea.BusinessArea
[0..1] I_GLAccount _GLAccount $projection.GLAccount = _GLAccount.GLAccount and $projection.CompanyCode = _GLAccount.CompanyCode
[0..1] I_ControllingArea _ControllingArea $projection.ControllingArea = _ControllingArea.ControllingArea
[0..1] I_FunctionalArea _FunctionalArea $projection.FunctionalArea = _FunctionalArea.FunctionalArea
[0..1] I_AccountAssignmentCategory _AccountAssignmentCategory $projection.AccountAssignmentCategory = _AccountAssignmentCategory.AccountAssignmentCategory
[0..1] I_CommitmentItemShortID _CommitmentItemShortID $projection.CommitmentItemShortID = _CommitmentItemShortID.CommitmentItemShortID
[0..1] I_UnitOfMeasure _OpLeadTimeOffsetUnit $projection.OperationLeadTimeOffsetUnit = _OpLeadTimeOffsetUnit.UnitOfMeasure
[0..1] I_UnitOfMeasure _VariableSizeCompUnit $projection.VariableSizeComponentUnit = _VariableSizeCompUnit.UnitOfMeasure
[1..1] I_UnitOfMeasure _BaseUnit $projection.BaseUnit = _BaseUnit.UnitOfMeasure
[1..1] I_UnitOfMeasure _EntryUnit $projection.EntryUnit = _EntryUnit.UnitOfMeasure
[0..1] I_Currency _Currency $projection.Currency = _Currency.Currency
[0..1] I_Language _LongTextLanguage $projection.LongTextLanguageCode = _LongTextLanguage.Language
[0..1] I_OrderComponentLongText _LongText $projection.Reservation = _LongText.Reservation and $projection.ReservationItem = _LongText.ReservationItem and $projection.RecordType = _LongText.RecordType
[0..1] I_MfgOrderComponentLongText _MfgOrderComponentLongText $projection.Reservation = _MfgOrderComponentLongText.Reservation and $projection.ReservationItem = _MfgOrderComponentLongText.ReservationItem and $projection.RecordType = _MfgOrderComponentLongText.RecordType and $projection.LongTextLanguageCode = _MfgOrderComponentLongText.LongTextLanguage -- to extension
[1..1] E_ReservationDocumentItem _Extension $projection.Reservation = _Extension.Reservation and $projection.ReservationItem = _Extension.ReservationItem and $projection.RecordType = _Extension.RecordType

Annotations (18)

NameValueLevelField
AbapCatalog.sqlViewName IPPMFGORDOPCOMP 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.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
VDM.viewType #BASIC view
EndUserText.label Manufacturing Order Operation Component view

Fields (38)

KeyFieldSource TableSource FieldDescription
KEY Reservation P_MfgOrderOpReservationItem rsnum
KEY ReservationItem
KEY RecordType
MaterialGroup P_MfgOrderOpReservationItem matkl
Material P_MfgOrderOpReservationItem matnr
Plant P_MfgOrderOpReservationItem werks
ManufacturingOrderCategory
ManufacturingOrderType
ManufacturingOrder
MfgOrderSequenceCategory
ManufacturingOrderOperation
ManufacturingOrderOperation_2
ProductionPlant
OrderInternalBillOfOperations
OrderIntBillOfOperationsItem
AssemblyMRPController
ProductionSupervisor
OrderObjectInternalID P_MfgOrderOpReservationItem OrderObjectInternalID
MatlCompRequirementDate
MatlCompRequirementTime
LatestRequirementDate
MfgOrderActualReleaseDate
ReservationItemCreationCode
ReservationIsFinallyIssued P_MfgOrderOpReservationItem kzear
MatlCompIsMarkedForDeletion
MaterialComponentIsMissing P_MfgOrderOpReservationItem xfehl
IsBulkMaterialComponent P_MfgOrderOpReservationItem schgt
MatlCompIsMarkedForBackflush P_MfgOrderOpReservationItem rgekz
MatlCompIsTextItem P_MfgOrderOpReservationItem txtps
MaterialPlanningRelevance
MatlCompIsConfigurable P_MfgOrderOpReservationItem kfpos
MaterialComponentIsClassified P_MfgOrderOpReservationItem clakz
MaterialCompIsIntraMaterial P_MfgOrderOpReservationItem inpos
LongTextLanguageCode P_MfgOrderOpReservationItem ltxsp
RequirementType
SalesOrder
SalesOrderItem
WBSElementInternalID
@AbapCatalog.sqlViewName: 'IPPMFGORDOPCOMP'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@AccessControl.privilegedAssociations: ['_AssemblyMRPController', '_ProductionSupervisor', '_LongText']
@Analytics.dataCategory: #DIMENSION
@Analytics.dataExtraction: { enabled: true,
                             delta.changeDataCapture:
                                    { mapping:
                                      [ { role: #MAIN,
                                          table: 'resb',
                                          tableElement: ['rsnum'      , 'rspos'          , 'rsart'],
                                          viewElement:  ['Reservation', 'ReservationItem', 'RecordType']
                                        },
                                        { role: #LEFT_OUTER_TO_ONE_JOIN,
                                          table: 'aufk',
                                          tableElement: ['aufnr'],
                                          viewElement:  ['ManufacturingOrder']
                                        },
                                        { role: #LEFT_OUTER_TO_ONE_JOIN,
                                          table: 'afko',
                                          tableElement: ['aufnr'],
                                          viewElement:  ['ManufacturingOrder']
                                        } ] } }
@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.usageType: {serviceQuality: #B, sizeCategory: #XL, dataClass: #TRANSACTIONAL}
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@VDM.viewType: #BASIC
@EndUserText.label: 'Manufacturing Order Operation Component'

/*+[hideWarning] { "IDS" : [ "CALCULATED_FIELD_CHECK" ]  } */
define view I_MfgOrderOperationComponent
  as select from P_MfgOrderOpReservationItem as resb

  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_ManufacturingOrder           as _ManufacturingOrder          on  $projection.ManufacturingOrder = _ManufacturingOrder.ManufacturingOrder
  association [1..1] to I_ManufacturingOrderSequence   as _ManufacturingOrderSequence  on  $projection.ManufacturingOrder         = _ManufacturingOrderSequence.ManufacturingOrder
                                                                                       and $projection.ManufacturingOrderSequence = _ManufacturingOrderSequence.ManufacturingOrderSequence
  association [1..1] to I_MfgOrder                     as _MfgOrder                    on  $projection.ManufacturingOrder = _MfgOrder.ManufacturingOrder
  association [1..1] to I_MfgOrderSequence             as _MfgOrderSequence            on  $projection.ManufacturingOrder         = _MfgOrderSequence.ManufacturingOrder
                                                                                       and $projection.ManufacturingOrderSequence = _MfgOrderSequence.ManufacturingOrderSequence
  association [0..1] to I_SequenceCategory             as _MfgOrderSequenceCategory    on  $projection.MfgOrderSequenceCategory = _MfgOrderSequenceCategory.SequenceCategory
  association [1..1] to I_MfgOrderOperationBasic       as _MfgOrderOperation           on  $projection.OrderInternalBillOfOperations = _MfgOrderOperation.OrderInternalBillOfOperations
                                                                                       and $projection.OrderIntBillOfOperationsItem  = _MfgOrderOperation.OrderIntBillOfOperationsItem
  association [1..1] to I_MfgOrderOperationBySemanKey  as _MfgOrderOperationBySemanKey on  $projection.ManufacturingOrder          = _MfgOrderOperationBySemanKey.ManufacturingOrder
                                                                                       and $projection.ManufacturingOrderSequence  = _MfgOrderOperationBySemanKey.ManufacturingOrderSequence
                                                                                       and $projection.ManufacturingOrderOperation = _MfgOrderOperationBySemanKey.ManufacturingOrderOperation
  association [1..1] to I_MfgOrderOperationBySemKey    as _MfgOrderOperationBySemKey   on  $projection.ManufacturingOrder            = _MfgOrderOperationBySemKey.ManufacturingOrder
                                                                                       and $projection.ManufacturingOrderSequence    = _MfgOrderOperationBySemKey.ManufacturingOrderSequence
                                                                                       and $projection.ManufacturingOrderOperation_2 = _MfgOrderOperationBySemKey.ManufacturingOrderOperation
  association [1..1] to I_MfgOrderCategory             as _MfgOrderCategory            on  $projection.ManufacturingOrderCategory = _MfgOrderCategory.ManufacturingOrderCategory
  association [1..1] to I_MfgOrderType                 as _MfgOrderType                on  $projection.ManufacturingOrderType = _MfgOrderType.ManufacturingOrderType
  association [1..1] to I_Plant                        as _ProductionPlant             on  $projection.ProductionPlant = _ProductionPlant.Plant
  association [1..1] to I_OrdInternalBillOfOperations  as _OrdInternalBillOfOperations on  $projection.OrderInternalBillOfOperations = _OrdInternalBillOfOperations.OrderInternalBillOfOperations
  association [1..1] to I_OrderInternalID              as _OrderInternalID             on  $projection.OrderInternalBillOfOperations = _OrderInternalID.OrderInternalID
  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..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 [1..*] to I_ProductUnitsOfMeasure        as _ProductUnitsOfMeasure       on  $projection.Material = _ProductUnitsOfMeasure.Product
  association [0..1] to I_MRPController                as _AssemblyMRPController       on  $projection.Plant                 = _AssemblyMRPController.Plant
                                                                                       and $projection.AssemblyMRPController = _AssemblyMRPController.MRPController
  association [0..1] to I_ProductionSupervisor         as _ProductionSupervisor        on  $projection.Plant                = _ProductionSupervisor.Plant

                                                                                       and $projection.ProductionSupervisor = _ProductionSupervisor.ProductionSupervisor
  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_WBSElementByInternalKey      as _WBSElement                  on  $projection.WBSElementInternalID = _WBSElement.WBSElementInternalID
  association [0..1] to I_WBSElementBasicData          as _WBSElementBasicData         on  $projection.WBSElementInternalID = _WBSElementBasicData.WBSElementInternalID
  association [0..1] to I_WBSElementBasicData          as _WBSElementBasicData2        on  $projection.WBSElementInternalID_2 = _WBSElementBasicData2.WBSElementInternalID
  association [0..1] to I_ChangeMaster                 as _ChangeNumber                on  $projection.ChangeNumber = _ChangeNumber.ChangeNumber
  association [0..1] to I_BOMExplosionDate             as _BOMExplosion                on  $projection.BOMExplosionDateID = _BOMExplosion.BOMExplosionDateID
  association [0..1] to I_BillOfMaterialItemBasic      as _BillOfMaterialItem          on  $projection.BillOfMaterialCategory     = _BillOfMaterialItem.BillOfMaterialCategory
                                                                                       and $projection.BillOfMaterial             = _BillOfMaterialItem.BillOfMaterial
                                                                                       and $projection.BOMItem                    = _BillOfMaterialItem.BillOfMaterialItemNodeNumber
                                                                                       and $projection.BOMItemInternalChangeCount = _BillOfMaterialItem.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_BatchSplitType               as _BatchSplitType              on  $projection.BatchSplitType= _BatchSplitType.BatchSplitType    
  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 [0..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_Product                      as _PhantomAssembly             on  $projection.Assembly = _PhantomAssembly.Product
  association [0..1] to I_Product                      as _FollowUpMaterial            on  $projection.FollowUpMaterial = _FollowUpMaterial.Product
  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_CompanyCode                  as _CompanyCode                 on  $projection.CompanyCode = _CompanyCode.CompanyCode
  association [0..1] to I_BusinessArea                 as _BusinessArea                on  $projection.BusinessArea = _BusinessArea.BusinessArea
  association [0..1] to I_GLAccount                    as _GLAccount                   on  $projection.GLAccount   = _GLAccount.GLAccount
                                                                                       and $projection.CompanyCode = _GLAccount.CompanyCode
  association [0..1] to I_ControllingArea              as _ControllingArea             on  $projection.ControllingArea = _ControllingArea.ControllingArea
  association [0..1] to I_FunctionalArea               as _FunctionalArea              on  $projection.FunctionalArea = _FunctionalArea.FunctionalArea
  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_UnitOfMeasure                as _OpLeadTimeOffsetUnit        on  $projection.OperationLeadTimeOffsetUnit = _OpLeadTimeOffsetUnit.UnitOfMeasure
  association [0..1] to I_UnitOfMeasure                as _VariableSizeCompUnit        on  $projection.VariableSizeComponentUnit = _VariableSizeCompUnit.UnitOfMeasure
  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_Currency                     as _Currency                    on  $projection.Currency = _Currency.Currency
  association [0..1] to I_Language                     as _LongTextLanguage            on  $projection.LongTextLanguageCode = _LongTextLanguage.Language
  association [0..1] to I_OrderComponentLongText       as _LongText                    on  $projection.Reservation     = _LongText.Reservation
                                                                                       and $projection.ReservationItem = _LongText.ReservationItem
                                                                                       and $projection.RecordType      = _LongText.RecordType
  association [0..1] to I_MfgOrderComponentLongText    as _MfgOrderComponentLongText   on  $projection.Reservation          = _MfgOrderComponentLongText.Reservation
                                                                                       and $projection.ReservationItem      = _MfgOrderComponentLongText.ReservationItem
                                                                                       and $projection.RecordType           = _MfgOrderComponentLongText.RecordType
                                                                                       and $projection.LongTextLanguageCode = _MfgOrderComponentLongText.LongTextLanguage
  -- 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,

      //Material data

      @ObjectModel.foreignKey.association: '_MaterialGroup'
      resb.matkl                                                      as MaterialGroup,
      @ObjectModel.foreignKey.association: '_Material'
      resb.matnr                                                      as Material,
      @ObjectModel.foreignKey.association: '_Plant'
      resb.werks                                                      as Plant,

      // Order and Operation data

      @ObjectModel.foreignKey.association: '_MfgOrderCategory'
      cast(resb.autyp as manufacturingordercategory preserving type)  as ManufacturingOrderCategory,
      @ObjectModel.foreignKey.association: '_MfgOrderType'
      cast(resb.auart as manufacturingordertype preserving type)      as ManufacturingOrderType,
      @ObjectModel.foreignKey.association: '_ManufacturingOrder'
      cast(resb.aufnr as manufacturingorder preserving type)          as ManufacturingOrder,
      @ObjectModel.foreignKey.association: '_ManufacturingOrderSequence'
      case resb.autyp
        when '10' then case resb.plnfl
          when '' then '000000'
          else resb.plnfl
          end
        when '40' then ''   // clear sequence for process orders

      end                                                             as ManufacturingOrderSequence,
      @ObjectModel.foreignKey.association: '_MfgOrderSequenceCategory'
      cast(resb.flgat as folgenart preserving type)                   as MfgOrderSequenceCategory,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: 'ManufacturingOrderOperation_2'
      @ObjectModel.foreignKey.association: '_MfgOrderOperationBySemanKey'
      cast(resb.vornr as manufacturingorderoperation preserving type) as ManufacturingOrderOperation,
      @ObjectModel.foreignKey.association: '_MfgOrderOperationBySemKey'
      cast(resb.vornr as vdm_vornr preserving type)                   as ManufacturingOrderOperation_2,
      @ObjectModel.foreignKey.association: '_ProductionPlant'
      cast(resb.pwerk as pwwrk preserving type)                       as ProductionPlant,
      @ObjectModel.foreignKey.association: '_OrdInternalBillOfOperations'
      cast(resb.aufpl as pph_aufpl preserving type)                   as OrderInternalBillOfOperations,
      @ObjectModel.foreignKey.association: '_MfgOrderOperation'
      cast(resb.aplzl as operationinternalid preserving type)         as OrderIntBillOfOperationsItem,
      @ObjectModel.foreignKey.association: '_AssemblyMRPController'
      cast(resb.dispo as assymrpcontrl preserving type)               as AssemblyMRPController,
      @ObjectModel.foreignKey.association: '_ProductionSupervisor'
      cast(resb.fevor as pph_fevor preserving type)                   as ProductionSupervisor,
      resb.OrderObjectInternalID,

      // 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,
      cast(resb.sbter as pph_sbter preserving type)                   as LatestRequirementDate,
      cast(resb.ftrmi as mfgorderactualreleasedate preserving type)   as MfgOrderActualReleaseDate,

      // Attributes

      cast(resb.rssta as pph_rssta preserving type)                   as ReservationItemCreationCode,
      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,
      cast(resb.no_disp as vdm_no_disp preserving type)               as MaterialPlanningRelevance,
      resb.kfpos                                                      as MatlCompIsConfigurable,
      resb.clakz                                                      as MaterialComponentIsClassified,
      resb.inpos                                                      as MaterialCompIsIntraMaterial,
      cast(case
             when resb.dbskz =  'E' then 'X' 
             when resb.dbskz <> 'E' then ''
      end as clcor preserving type )                                  as MaterialIsDirectlyProduced,
      cast(case
             when resb.dbskz =  'F' then 'X'
             when resb.dbskz <> 'F' then ''
      end as dirpr preserving type )                                  as MaterialIsDirectlyProcured,

      // Text

      @ObjectModel.foreignKey.association: '_LongTextLanguage'
      resb.ltxsp                                                      as LongTextLanguageCode,
      cast(case 
             when resb.ltxsp <> '' then 'X'
             else resb.ltxsp
      end as aufltext preserving type)                                as LongTextExists,

      // Assignments

      @ObjectModel.foreignKey.association: '_RequirementType'
      cast(resb.bdart as pph_bdart preserving type)                   as RequirementType,
      @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: '_WBSElementBasicData2'
      cast(resb.pspel as ps_s4_pspnr preserving type)                 as WBSElementInternalID_2,
      resb.cuobj                                                      as ProductConfiguration,
      @ObjectModel.foreignKey.association: '_ChangeNumber'
      resb.aennr                                                      as ChangeNumber,
      resb.techs                                                      as EffectivityParameterVariant,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: 'MaterialComponentSortText'
      resb.sortf                                                      as SortField,
      resb.sortf                                                      as MaterialComponentSortText,
      resb.objnr                                                      as ObjectInternalID,
      cast(resb.revlv as vdm_qm_revlv preserving type)                as MaterialRevisionLevel,

      // 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.stlan                                                      as BillOfMaterialVariantUsage,
      resb.stlal                                                      as BillOfMaterialVariant,
      resb.stlnr2                                                     as BillOfMaterial,
      cast(resb.stlkn as pph_stlkn preserving type)                   as BOMItem,
      resb.bom_versn                                                  as BillOfMaterialVersion,
      resb.stpoz                                                      as BOMItemInternalChangeCount,
      resb.stvkn                                                      as InheritedBOMItemNode,
      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