I_MFGORDEROPERATIONCOMPONENT

CDS View

Manufacturing Order Operation Component

I_MFGORDEROPERATIONCOMPONENT is a CDS View in S/4HANA. Manufacturing Order Operation Component. It contains 176 fields. 26 CDS views read from this table.

CDS Views using this table (26)

ViewTypeJoinVDMDescription
A_ProcessOrderComponent view_entity from COMPOSITE API for Process Order Components
A_ProcessOrderComponent_2 view_entity from COMPOSITE Process Order Components
A_ProductionOrderComponent view_entity from COMPOSITE API Production Order Components
A_ProductionOrderComponent_2 view_entity from COMPOSITE Production Order Components
A_ProductionOrderComponent_3 view_entity from COMPOSITE Production Order Components Extended
A_ProductionOrderComponent_4 view_entity from COMPOSITE Production Order Components Using RAP BO
C_MfgOrderObjPgComp view_entity from CONSUMPTION Manufacturing Order Object Page Com
C_MfgOrderOperationMissingComp view from CONSUMPTION Mfg Order Operation Missing Component
C_MfgQualifnOpActyAssgmt view inner CONSUMPTION Qualification Assignment to OA
I_MfgOrderOpComponentDataList view from COMPOSITE Mfg Order Component (Data List)
I_MfgOrderOpComponentPickList view from COMPOSITE Mfg Order Component (Pick List)
I_MfgOrderOperationCompCube view from COMPOSITE Manufacturing Order Operation Component - Cube
I_MfgOrderOperationCompWithSts view from COMPOSITE Manufacturing Order Component with Header Status
I_MRPManufacturingComponent view from COMPOSITE MRP Manufacturing Components
I_OpActySFIGroupCompDetail view inner COMPOSITE Detail of a component of a group of SFI at OA
P_Mfgcompsmissaggr view_entity from CONSUMPTION Group the ComponentIsMissing flags for all components
P_Mfgordcompmissaggr view_entity from CONSUMPTION Group the ComponentsIsMissing flags for all comps for Order
P_MfgOrderOperationCompMatl view from CONSUMPTION
P_MPEProdnOrdMatlIsMissing view_entity from CONSUMPTION
P_MPEProdnOrdOperMissMatCount view_entity from CONSUMPTION Production Order Operation Missing Mat Count, private View
P_MPEProdnOrdOpMatlIsMissing view_entity from CONSUMPTION
P_OpActyComponentAssignmentDMU view inner COMPOSITE
P_OpActyPlndComponentPerSFI view inner COMPOSITE
P_OperationActivityCompUnion view inner CONSUMPTION
P_ProcOrdMisgCompAggrgn view from COMPOSITE
P_ShopFloorItemAtOpActyComp view inner CONSUMPTION

Fields (176)

KeyField CDS FieldsUsed in Views
KEY ManufacturingOrder ManufacturingOrder 9
KEY Material Material,MaterialComponent 12
KEY OrderIntBillOfOperationsItem OrderIntBillOfOperationsItem 5
KEY OrderInternalBillOfOperations OrderInternalBillOfOperations 6
KEY Plant MRPPlant,Plant,ProductionPlant 10
KEY RecordType RecordType 8
KEY Reservation Reservation 8
KEY ReservationItem ReservationItem 8
_AccountAssignmentCategory _AccountAssignmentCategory 1
_AssemblyMRPController _AssemblyMRPController 1
_BaseUnit _BaseUnit 3
_Batch _Batch 2
_BatchSplitType _BatchSplitType 2
_BOMExplosion _BOMExplosion 2
_BOMItemCategory _BOMItemCategory 2
_BusinessArea _BusinessArea 2
_ChangeNumber _ChangeNumber 1
_CompanyCode _CompanyCode 2
_ConsumptionPosting _ConsumptionPosting 1
_Currency _Currency 1
_DebitCreditCode _DebitCreditCode 3
_EntryUnit _EntryUnit 2
_FunctionalArea _FunctionalArea 1
_GLAccount _GLAccount 1
_GoodsMovementType _GoodsMovementType 2
_InventorySpecialStockType _InventorySpecialStockType 2
_InventorySpecialStockValnType _InventorySpecialStockValnType 1
_LongText _LongText 1
_LongTextLanguage _LongTextLanguage 2
_ManufacturingOrder _ManufacturingOrder 3
_Material _Material 6
_MaterialGroup _MaterialGroup 2
_MatlCompDiscontinuationType _MatlCompDiscontinuationType 2
_MfgOrder _MfgOrder 4
_MfgOrderCategory _MfgOrderCategory 3
_MfgOrderComponentLongText _MfgOrderComponentLongText 1
_MfgOrderOperation _MfgOrderOperation 2
_MfgOrderOperationBySemanKey _MfgOrderOperationBySemanKey 3
_MfgOrderOperationBySemKey _MfgOrderOperation,_MfgOrderOperationBySemKey 2
_MfgOrderSequence _MfgOrderSequence 3
_MfgOrderType _MfgOrderType 3
_OrderInternalID _OrderInternalID 1
_OrdInternalBillOfOperations _OrdInternalBillOfOperations 2
_Plant _Plant 6
_Product _Product 2
_ProductionPlant _ProductionPlant 4
_ProductionSupervisor _ProductionSupervisor 2
_ProductPlant _ProductPlant 2
_ProductPlant2 _ProductPlant2 1
_PurchaseOrder _PurchaseOrder 1
_PurchaseOrderItem _PurchaseOrderItem 1
_PurchaseRequisition _PurchaseRequisition 1
_PurchaseRequisitionItem _PurchaseRequisitionItem 1
_PurchaseRequisitionItem2 _PurchaseRequisitionItem2 1
_PurchasingGroup _PurchasingGroup 1
_PurchasingInfoRecord _PurchasingInfoRecord 1
_RequirementType _RequirementType 2
_Reservation _Reservation 3
_ReservationDocRecordType _ReservationDocRecordType 2
_ReservationItem _ReservationItem 3
_SalesOrder _SalesOrder 2
_SalesOrderItem _SalesOrderItem 2
_StorageLocation _StorageLocation 5
_SupplyArea _SupplyArea 3
_Warehouse _Warehouse 1
_WBSElement _WBSElement 1
AccountAssignmentCategory AccountAssignmentCategory 1
Assembly Assembly 1
AssemblyMRPController AssemblyMRPController,MRPController 2
BaseUnit BaseUnit 11
Batch Batch 5
BatchMasterReservationItem BatchMasterReservationItem 2
BatchSplitType BatchSplitType 3
BillOfMaterial BillOfMaterial 3
BillOfMaterialCategory BillOfMaterialCategory 3
BillOfMaterialInternalID BillOfMaterialInternalID 3
BillOfMaterialInternalID_2 BillOfMaterialInternalID 2
BillOfMaterialItemNumber BillOfMaterialItemNumber 3
BillOfMaterialItemNumber_2 BillOfMaterialItemNumber 1
BillOfMaterialVariant BillOfMaterialVariant 5
BillOfMaterialVariantUsage BillOfMaterialVariantUsage 1
BillOfMaterialVersion BillOfMaterialVersion 4
BOMExplosionDateID BOMExplosionDateID 2
BOMItem BillOfMaterialItemNodeNumber,BOMItem 7
BOMItemCategory BillOfMaterialItemCategory,BOMItemCategory 7
BOMItemDescription BOMItemDescription 5
BOMItemInternalChangeCount BOMItemInternalChangeCount 5
BusinessArea BusinessArea 2
ChangeNumber ChangeNumber 1
CompanyCode CompanyCode 2
ComponentScrapInPercent ComponentScrapInPercent 2
ConfirmedAvailableQuantity CommittedQuantity,ConfirmedAvailableQuantity 3
ConsumptionPosting ConsumptionPosting 1
Currency Currency 1
DebitCreditCode DebitCreditCode 5
DeliveryDurationInDays DeliveryDurationInDays 1
EffectivityParameterVariant EffectivityParameterVariant 2
EntryUnit EntryUnit 4
FormulaKey FormulaKey 4
FunctionalArea FunctionalArea 1
GLAccount GLAccount 1
GoodsMovementEntryQty GoodsMovementEntryQty 4
GoodsMovementIsAllowed GoodsMovementIsAllowed 5
GoodsMovementType GoodsMovementType 3
GoodsRecipientName GoodsRecipientName 1
InheritedBOMItemNode InheritedBOMItemNode 3
InventorySpecialStockType InventorySpecialStockType 3
InventorySpecialStockValnType InventorySpecialStockValnType 1
IsBulkMaterialComponent IsBulkMaterialComponent 5
IsNetScrap IsNetScrap 2
LeadTimeOffset LeadTimeOffset 1
LongTextExists LongTextExists 2
LongTextLanguageCode LongTextLanguageCode 3
ManufacturingOrderCategory ManufacturingOrderCategory 5
ManufacturingOrderOperation ManufacturingOrderOperation 5
ManufacturingOrderOperation_2 ManufacturingOrderOperation_2 2
ManufacturingOrderSequence ManufacturingOrderSequence 5
ManufacturingOrderType ManufacturingOrderType 5
MaterialCompIsAlternativeItem MaterialCompIsAlternativeItem 1
MaterialCompIsCostRelevant MaterialCompIsCostRelevant 1
MaterialCompIsIntraMaterial MaterialCompIsIntraMaterial 1
MaterialCompIsVariableSized MaterialCompIsVariableSized 2
MaterialComponentIsClassified MaterialComponentIsClassified 1
MaterialComponentIsMissing MaterialComponentIsMissing 5
MaterialComponentIsPhantomItem MaterialComponentIsPhantomItem 3
MaterialComponentSortText MaterialComponentSortText 3
MaterialCompOriginalQuantity MaterialCompOriginalQuantity 2
MaterialGroup MaterialGroup 3
MatlCompDiscontinuationType MatlCompDiscontinuationType 5
MatlCompIsConfigurable MatlCompIsConfigurable 2
MatlCompIsFollowUpMaterial MatlCompIsFollowUpMaterial 1
MatlCompIsMarkedForBackflush MatlCompIsMarkedForBackflush 5
MatlCompIsMarkedForDeletion MatlCompIsMarkedForDeletion 3
MatlCompIsTextItem MatlCompIsTextItem 2
MatlCompRequirementDate MatlCompRequirementDate,RequirementDate 6
MatlCompRequirementTime MatlCompRequirementTime 2
OperationLeadTimeOffset OperationLeadTimeOffset 1
OperationLeadTimeOffsetUnit OperationLeadTimeOffsetUnit 1
OperationScrapInPercent OperationScrapInPercent 2
OrderLevelValue OrderLevelValue 1
OrderPathValue OrderPathValue 1
ProductConfiguration ProductConfiguration 1
ProductionPlant ProductionPlant 8
ProductionSupervisor ProductionSupervisor 3
PurchasingGroup PurchasingGroup 2
PurchasingInfoRecord PurchasingInfoRecord 1
QuantityIsFixed QuantityIsFixed 2
RequiredQuantity OrderedQuantity,RequiredQuantity 5
RequirementSegment RequirementSegment 2
RequirementType RequirementType 3
ReservationIsFinallyIssued ReservationIsFinallyIssued 5
ReservationItemCreationCode ReservationItemCreationCode 1
SalesOrder SalesOrder 3
SalesOrderItem SalesOrderItem 3
SortField SortField 1
StockSegment StockSegment 2
StorageBin StorageBin 1
StorageLocation StorageLocation 9
StorageType StorageType 1
Supplier Supplier 1
SupplyArea SupplyArea 3
UnloadingPointName UnloadingPointName 1
UsageProbabilityPercent UsageProbabilityPercent 1
VariableSizeComponentQuantity VariableSizeComponentQuantity 4
VariableSizeComponentUnit VariableSizeComponentUnit 4
VariableSizeDimension1 VariableSizeDimension1 3
VariableSizeDimension2 VariableSizeDimension2 3
VariableSizeDimension3 VariableSizeDimension3 3
VariableSizeDimensionUnit VariableSizeDimensionUnit 3
VariableSizeItemQuantity VariableSizeItemQuantity 1
VariableSizeItemUnit VariableSizeItemUnit 4
Warehouse Warehouse 1
WBSElementInternalID WBSElementInternalID 2
WBSElementInternalID_2 WBSElementInternalID,WBSElementInternalID_2 2
WithdrawnQuantity WithdrawnQuantity 4
WithdrawnQuantityAmount WithdrawnQuantityAmount 1
@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