I_MfgOrderConfirmation

DDL: I_MFGORDERCONFIRMATION SQL: IPPMFGORDCONF Type: view BASIC Package: VDM_PP_CNF

Manufacturing Order Confirmation

I_MfgOrderConfirmation is a Basic CDS View (Dimension) that provides data about "Manufacturing Order Confirmation" in SAP S/4HANA. It reads from 1 data source (I_OrderConfirmation) and exposes 182 fields with key fields MfgOrderConfirmationGroup, MfgOrderConfirmation. It has 23 associations to related views. Part of development package VDM_PP_CNF.

Data Sources (1)

SourceAliasJoin Type
I_OrderConfirmation conf from

Associations (23)

CardinalityTargetAliasCondition
[1..1] I_ManufacturingOrder _MfgOrder $projection.ManufacturingOrder = _MfgOrder.ManufacturingOrder
[1..1] I_MfgOrder _MfgOrder2 $projection.ManufacturingOrder = _MfgOrder2.ManufacturingOrder
[0..1] I_MfgOrderSequence _MfgOrderSequence $projection.ManufacturingOrder = _MfgOrderSequence.ManufacturingOrder and $projection.ManufacturingOrderSequence = _MfgOrderSequence.ManufacturingOrderSequence
[0..1] I_ManufacturingOrderSequence _MfgOrderSequence2 $projection.ManufacturingOrder = _MfgOrderSequence2.ManufacturingOrder and $projection.ManufacturingOrderSequence = _MfgOrderSequence2.ManufacturingOrderSequence
[1..1] I_MfgOrderOperationBySemanKey _MfgOrderOperation $projection.ManufacturingOrder = _MfgOrderOperation.ManufacturingOrder and $projection.ManufacturingOrderSequence = _MfgOrderOperation.ManufacturingOrderSequence and $projection.ManufacturingOrderOperation = _MfgOrderOperation.ManufacturingOrderOperation
[1..1] I_MfgOrderOperationBySemKey _MfgOrderOperation2 $projection.ManufacturingOrder = _MfgOrderOperation2.ManufacturingOrder and $projection.ManufacturingOrderSequence = _MfgOrderOperation2.ManufacturingOrderSequence and $projection.ManufacturingOrderOperation_2 = _MfgOrderOperation2.ManufacturingOrderOperation
[1..1] I_MfgOrderCategory _MfgOrderCategory $projection.ManufacturingOrderCategory = _MfgOrderCategory.ManufacturingOrderCategory
[1..1] I_MfgOrderType _MfgOrderType $projection.ManufacturingOrderType = _MfgOrderType.ManufacturingOrderType
[1..1] I_UnitOfMeasure _ProductionUnit $projection.ProductionUnit = _ProductionUnit.UnitOfMeasure
[0..1] I_MaterialDocumentHeader _MaterialDocument2 $projection.MaterialDocument = _MaterialDocument2.MaterialDocument and $projection.MaterialDocumentYear = _MaterialDocument2.MaterialDocumentYear
[0..1] I_FailedGoodsMovement _FailedGoodsMovement $projection.FailedGoodsMovement = _FailedGoodsMovement.FailedGoodsMovement -- To child Long text
[0..*] I_MfgOrderConfirmationLongText _MfgOrderConfLongText $projection.MfgOrderConfirmationGroup = _MfgOrderConfLongText.MfgOrderConfirmationGroup and $projection.MfgOrderConfirmation = _MfgOrderConfLongText.MfgOrderConfirmationCount -- To child Material Document Items
[0..*] I_MfgOrderConfMatlDocItem _ConfMatlDocItem $projection.MfgOrderConfirmationGroup = _ConfMatlDocItem.MfgOrderConfirmationGroup and $projection.MfgOrderConfirmation = _ConfMatlDocItem.MfgOrderConfirmation -- To child Failed Goods Movements
[0..*] I_FailedGoodsMovementItem _ConfFailedGdsMvtItem $projection.MfgOrderConfirmationGroup = _ConfFailedGdsMvtItem.ConfirmationGroup and $projection.MfgOrderConfirmation = _ConfFailedGdsMvtItem.ConfirmationCount -- To child Failed Actual Costs
[0..*] I_ConfFailedActualCostCalc _ConfFailedActualCost $projection.MfgOrderConfirmationGroup = _ConfFailedActualCost.ConfirmationGroup and $projection.MfgOrderConfirmation = _ConfFailedActualCost.OrderConfirmation -- To extension
[0..1] E_OrderConfirmation _Extension $projection.MfgOrderConfirmationGroup = _Extension.ConfirmationGroup and $projection.MfgOrderConfirmation = _Extension.ConfirmationCount -- start new associations for full coverage of text relations
[1..1] I_Plant _PlantText $projection.Plant = _PlantText.Plant
[1..1] I_ManufacturingOrder _MfgOrderText $projection.ManufacturingOrder = _MfgOrderText.ManufacturingOrder
[0..*] I_WorkCenterText _WorkCenterText $projection.WorkCenterInternalID = _WorkCenterText.WorkCenterInternalID and $projection.WorkCenterTypeCode = _WorkCenterText.WorkCenterTypeCode
[0..1] I_PersonWorkAgreement_1 _PersonWorkAgreementText $projection.Personnel = _PersonWorkAgreementText.PersonWorkAgreement
[0..*] I_BusinessAreaText _BusinessAreaText $projection.BusinessArea = _BusinessAreaText.BusinessArea
[0..1] I_CompanyCode _CompanyCodeText $projection.CompanyCode = _CompanyCodeText.CompanyCode
[0..1] I_ControllingArea _ControllingAreaText $projection.ControllingArea = _ControllingAreaText.ControllingArea -- end new associations for full coverage of text relations

Annotations (21)

NameValueLevelField
AbapCatalog.sqlViewName IPPMFGORDCONF view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED 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
ObjectModel.compositionRoot true view
ObjectModel.modelingPattern #NONE view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.representativeKey MfgOrderConfirmation view
ObjectModel.sapObjectNodeType.name ProductionOrderConfirmation 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 Confirmation view

Fields (182)

KeyFieldSource TableSource FieldDescription
KEY MfgOrderConfirmationGroup I_OrderConfirmation ConfirmationGroup
KEY MfgOrderConfirmation I_OrderConfirmation OrderConfirmation
ManufacturingOrder
ManufacturingOrderSequence
ManufacturingOrderOperation
ManufacturingOrderOperation_2 I_OrderConfirmation OrderOperation_2
ManufacturingOrderCategory
ManufacturingOrderType
OrderInternalID I_OrderConfirmation OrderInternalID
OrderOperationInternalID I_OrderConfirmation OrderOperationInternalID
SuperiorOperationInternalID I_OrderConfirmation SuperiorOperationInternalID
ConfirmationText I_OrderConfirmation ConfirmationText
Language I_OrderConfirmation Language
LongTextExists I_OrderConfirmation LongTextExists
MfgOrderConfirmationEntryDate I_OrderConfirmation ConfirmationEntryDate
MfgOrderConfirmationEntryTime I_OrderConfirmation ConfirmationEntryTime
EnteredByUser I_OrderConfirmation EnteredByUser
LastChangeDate I_OrderConfirmation LastChangeDate
LastChangedByUser I_OrderConfirmation LastChangedByUser
ConfirmationExternalEntryDate I_OrderConfirmation ConfirmationExternalEntryDate
ConfirmationExternalEntryTime I_OrderConfirmation ConfirmationExternalEntryTime
EnteredByExternalUser I_OrderConfirmation EnteredByExternalUser
ExternalSystemConfirmation I_OrderConfirmation ExternalSystemConfirmation
FinalConfirmationType I_OrderConfirmation FinalConfirmationType
IsFinalConfirmation I_OrderConfirmation IsFinalConfirmation
OpenReservationsIsCleared I_OrderConfirmation OpenReservationsIsCleared
IsReversed I_OrderConfirmation IsReversed
IsReversal I_OrderConfirmation IsReversal
CancldMfgOrderConfCount I_OrderConfirmation CancldMfgOrderConfCount
APIConfHasNoGoodsMovements I_OrderConfirmation APIConfHasNoGoodsMovements
ConfirmationApplicationOrigin I_OrderConfirmation ConfirmationApplicationOrigin
OrderConfirmationType I_OrderConfirmation OrderConfirmationType
OrderConfirmationRecordType I_OrderConfirmation OrderConfirmationRecordType
MilestoneIsConfirmed I_OrderConfirmation MilestoneIsConfirmed
MilestoneConfirmationType I_OrderConfirmation MilestoneConfirmationType
IsConfirmedByMilestoneConf I_OrderConfirmation IsConfirmedByMilestoneConf
MilestoneConfirmationGroup I_OrderConfirmation MilestoneConfirmationGroup
MilestoneConfirmation I_OrderConfirmation MilestoneConfirmation
Plant I_OrderConfirmation Plant
WorkCenterTypeCode I_OrderConfirmation WorkCenterTypeCode
WorkCenterInternalID I_OrderConfirmation WorkCenterInternalID
CapacityInternalID I_OrderConfirmation CapacityInternalID
CapacityRequirementSplit I_OrderConfirmation CapacityRequirementSplit
ShiftGrouping I_OrderConfirmation ShiftGrouping
ShiftDefinition
MaterialDocument I_OrderConfirmation MaterialDocument
MaterialDocumentYear I_OrderConfirmation MaterialDocumentYear
FailedGoodsMovement I_OrderConfirmation FailedGoodsMovement
PlantDataCollectionID I_OrderConfirmation PlantDataCollectionID
OriginalBatch I_OrderConfirmation OriginalBatch
BatchBySupplier I_OrderConfirmation BatchBySupplier
BusinessArea I_OrderConfirmation BusinessArea
CompanyCode I_OrderConfirmation CompanyCode
ControllingArea I_OrderConfirmation ControllingArea
ProfitCenter I_OrderConfirmation ProfitCenter
SenderCostCenter I_OrderConfirmation SenderCostCenter
ProductCostCollector I_OrderConfirmation ProductCostCollector
Personnel I_OrderConfirmation Personnel
TimeRecording I_OrderConfirmation TimeRecording
EmployeeWageType I_OrderConfirmation EmployeeWageType
EmployeeWageGroup I_OrderConfirmation EmployeeWageGroup
EmployeeSuitability I_OrderConfirmation EmployeeSuitability
NumberOfEmployees I_OrderConfirmation NumberOfEmployees
PostingDate I_OrderConfirmation PostingDate
PostingDateYear I_OrderConfirmation PostingDateYear
ConfirmedExecutionStartDate I_OrderConfirmation ConfirmedExecutionStartDate
ConfirmedExecutionStartTime I_OrderConfirmation ConfirmedExecutionStartTime
ConfirmedSetupEndDate I_OrderConfirmation ConfirmedSetupEndDate
ConfirmedSetupEndTime I_OrderConfirmation ConfirmedSetupEndTime
ConfirmedProcessingStartDate I_OrderConfirmation ConfirmedProcessingStartDate
ConfirmedProcessingStartTime I_OrderConfirmation ConfirmedProcessingStartTime
ConfirmedProcessingEndDate I_OrderConfirmation ConfirmedProcessingEndDate
ConfirmedProcessingEndTime I_OrderConfirmation ConfirmedProcessingEndTime
ConfirmedTeardownStartDate I_OrderConfirmation ConfirmedTeardownStartDate
ConfirmedTeardownStartTime I_OrderConfirmation ConfirmedTeardownStartTime
ConfirmedExecutionEndDate I_OrderConfirmation ConfirmedExecutionEndDate
ConfirmedExecutionEndTime I_OrderConfirmation ConfirmedExecutionEndTime
ConfirmationUnit I_OrderConfirmation ConfirmationUnit
ConfirmationYieldQuantity I_OrderConfirmation ConfirmationYieldQuantity
ConfirmationScrapQuantity I_OrderConfirmation ConfirmationScrapQuantity
ConfirmationReworkQuantity I_OrderConfirmation ConfirmationReworkQuantity
ConfirmationTotalQuantity I_OrderConfirmation ConfirmationTotalQuantity
VarianceReasonCode I_OrderConfirmation VarianceReasonCode
ProductionUnit
ConfYieldQtyInProductionUnit
OperationUnit I_OrderConfirmation OperationUnit
OpPlannedTotalQuantity I_OrderConfirmation OpPlannedTotalQuantity
OpWorkQuantityUnit1 I_OrderConfirmation OpWorkQuantityUnit1
OpConfirmedWorkQuantity1 I_OrderConfirmation OpConfirmedWorkQuantity1
NoFurtherOpWorkQuantity1IsExpd I_OrderConfirmation NoFurtherOpWorkQuantity1IsExpd
OpWorkQuantityUnit2 I_OrderConfirmation OpWorkQuantityUnit2
OpConfirmedWorkQuantity2 I_OrderConfirmation OpConfirmedWorkQuantity2
NoFurtherOpWorkQuantity2IsExpd I_OrderConfirmation NoFurtherOpWorkQuantity2IsExpd
OpWorkQuantityUnit3 I_OrderConfirmation OpWorkQuantityUnit3
OpConfirmedWorkQuantity3 I_OrderConfirmation OpConfirmedWorkQuantity3
NoFurtherOpWorkQuantity3IsExpd I_OrderConfirmation NoFurtherOpWorkQuantity3IsExpd
OpWorkQuantityUnit4 I_OrderConfirmation OpWorkQuantityUnit4
OpConfirmedWorkQuantity4 I_OrderConfirmation OpConfirmedWorkQuantity4
NoFurtherOpWorkQuantity4IsExpd I_OrderConfirmation NoFurtherOpWorkQuantity4IsExpd
OpWorkQuantityUnit5 I_OrderConfirmation OpWorkQuantityUnit5
OpConfirmedWorkQuantity5 I_OrderConfirmation OpConfirmedWorkQuantity5
NoFurtherOpWorkQuantity5IsExpd I_OrderConfirmation NoFurtherOpWorkQuantity5IsExpd
OpWorkQuantityUnit6 I_OrderConfirmation OpWorkQuantityUnit6
OpConfirmedWorkQuantity6 I_OrderConfirmation OpConfirmedWorkQuantity6
NoFurtherOpWorkQuantity6IsExpd I_OrderConfirmation NoFurtherOpWorkQuantity6IsExpd
BusinessProcess I_OrderConfirmation BusinessProcess
BusinessProcessEntryUnit I_OrderConfirmation BusinessProcessEntryUnit
BusinessProcessConfirmedQty I_OrderConfirmation BusinessProcessConfirmedQty
NoFurtherBusinessProcQtyIsExpd I_OrderConfirmation NoFurtherBusinessProcQtyIsExpd
BusinessProcRemainingQtyUnit I_OrderConfirmation BusinessProcRemainingQtyUnit
BusinessProcessRemainingQty I_OrderConfirmation BusinessProcessRemainingQty
BreakDurationUnit I_OrderConfirmation BreakDurationUnit
ConfirmedBreakDuration I_OrderConfirmation ConfirmedBreakDuration
_MfgOrderConfLongText _MfgOrderConfLongText
_ConfMatlDocItem _ConfMatlDocItem
_ConfFailedActualCost _ConfFailedActualCost
_ConfFailedGdsMvtItem
_ConfirmationGroup I_OrderConfirmation _ConfirmationGroup
_MfgOrder _MfgOrder
_MfgOrder2 _MfgOrder2
_MfgOrderSequence _MfgOrderSequence
_MfgOrderSequence2 _MfgOrderSequence2
_MfgOrderOperation _MfgOrderOperation
_MfgOrderOperation2 _MfgOrderOperation2
_MfgOrderCategory _MfgOrderCategory
_MfgOrderType _MfgOrderType
_OrderInternalID I_OrderConfirmation _OrderInternalID
_ConfirmationUnit I_OrderConfirmation _ConfirmationUnit
_ProductionUnit _ProductionUnit
_OperationUnit I_OrderConfirmation _OperationUnit
_FinalConfirmationType I_OrderConfirmation _FinalConfirmationType
_ConfirmationType I_OrderConfirmation _ConfirmationType
_ConfirmationRecordType I_OrderConfirmation _ConfirmationRecordType
_ConfirmationApplOrigin I_OrderConfirmation _ConfirmationApplOrigin
_MilestoneConfirmationGroup I_OrderConfirmation _MilestoneConfirmationGroup
_MilestoneConfirmation I_OrderConfirmation _MilestoneConfirmation
_User I_OrderConfirmation _User
_UserContactCard I_OrderConfirmation _UserContactCard
_Language I_OrderConfirmation _Language
_WorkCenterType I_OrderConfirmation _WorkCenterType
_WorkCenter I_OrderConfirmation _WorkCenter
_Plant I_OrderConfirmation _Plant
_Capacity I_OrderConfirmation _Capacity
_ShiftGrouping I_OrderConfirmation _ShiftGrouping
_ShiftDefinition I_OrderConfirmation _ShiftDefinition
_BusinessArea I_OrderConfirmation _BusinessArea
_CompanyCode I_OrderConfirmation _CompanyCode
_ControllingArea I_OrderConfirmation _ControllingArea
_ProductCostCollector I_OrderConfirmation _ProductCostCollector
_BusinessProcess I_OrderConfirmation _BusinessProcess
_BusinessProcessUnit I_OrderConfirmation _BusinessProcessUnit
_WorkQuantityUnit1 I_OrderConfirmation _WorkQuantityUnit1
_WorkQuantityUnit2 I_OrderConfirmation _WorkQuantityUnit2
_WorkQuantityUnit3 I_OrderConfirmation _WorkQuantityUnit3
_WorkQuantityUnit4 I_OrderConfirmation _WorkQuantityUnit4
_WorkQuantityUnit5 I_OrderConfirmation _WorkQuantityUnit5
_WorkQuantityUnit6 I_OrderConfirmation _WorkQuantityUnit6
_BreakDurationUnit I_OrderConfirmation _BreakDurationUnit
_VarianceReason I_OrderConfirmation _VarianceReason
_EmployeeWageGroup I_OrderConfirmation _EmployeeWageGroup
_EmployeeSuitability I_OrderConfirmation _EmployeeSuitability
_Employee I_OrderConfirmation _Employee
_PersonWorkAgreement I_OrderConfirmation _PersonWorkAgreement
_FailedGoodsMovement _FailedGoodsMovement
_MaterialDocument I_OrderConfirmation _MaterialDocument
_MaterialDocument2 _MaterialDocument2
_MaterialDocument3 I_OrderConfirmation _MaterialDocument3
_MaterialDocumentYear I_OrderConfirmation _MaterialDocumentYear
_PostingDate I_OrderConfirmation _PostingDate
_PostingDateYear I_OrderConfirmation _PostingDateYear
_FinalConfIndicator I_OrderConfirmation _FinalConfIndicator
_ReversedIndicator I_OrderConfirmation _ReversedIndicator
_ReversalIndicator I_OrderConfirmation _ReversalIndicator
_LongTextIndicator I_OrderConfirmation _LongTextIndicator
_LongText I_OrderConfirmation _LongText
_MfgOrderText _MfgOrderText
_PlantText _PlantText
_WorkCenterText _WorkCenterText
_PersonWorkAgreementText _PersonWorkAgreementText
_BusinessAreaText _BusinessAreaText
_CompanyCodeText _CompanyCodeText
_ControllingAreaText _ControllingAreaText
@AbapCatalog.sqlViewName: 'IPPMFGORDCONF'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #NOT_REQUIRED
@AccessControl.privilegedAssociations: ['_User', '_UserContactCard', '_LongText']
@Analytics.dataCategory: #DIMENSION
@Analytics.dataExtraction: { enabled: true,
                             delta.changeDataCapture:
                                    { mapping:
                                      [ { role: #MAIN,
                                          table: 'afru',
                                          tableElement: ['rueck'                    , 'rmzhl'],
                                          viewElement:  ['MfgOrderConfirmationGroup', 'MfgOrderConfirmation']
                                        },
                                        { role: #LEFT_OUTER_TO_ONE_JOIN,
                                          table: 'aufk',
                                          tableElement: ['aufnr'],
                                          viewElement:  ['ManufacturingOrder']
                                        },
                                        { role: #LEFT_OUTER_TO_ONE_JOIN,
                                          table: 'afvv',
                                          tableElement: ['aufpl'          , 'aplzl'],
                                          viewElement:  ['OrderInternalID', 'OrderOperationInternalID']
                                        } ] } }
@Analytics.internalName: #LOCAL
@ClientHandling.algorithm: #SESSION_VARIABLE
@ClientHandling.type: #CLIENT_DEPENDENT
@Metadata.allowExtensions: true
@ObjectModel.compositionRoot: true
@ObjectModel.modelingPattern: #NONE
@ObjectModel.supportedCapabilities: [#CDS_MODELING_ASSOCIATION_TARGET, #CDS_MODELING_DATA_SOURCE, #SQL_DATA_SOURCE, #EXTRACTION_DATA_SOURCE, #ANALYTICAL_DIMENSION]
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.representativeKey: 'MfgOrderConfirmation'
@ObjectModel.sapObjectNodeType.name: 'ProductionOrderConfirmation'
@ObjectModel.semanticKey: ['MfgOrderConfirmationGroup', 'MfgOrderConfirmation']
@ObjectModel.usageType: {serviceQuality: #B, sizeCategory: #XL, dataClass: #TRANSACTIONAL}
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@VDM.viewType: #BASIC
@EndUserText.label: 'Manufacturing Order Confirmation'

/*+[hideWarning] { "IDS" : [ "CALCULATED_FIELD_CHECK" ]  } */
define view I_MfgOrderConfirmation
  as select from I_OrderConfirmation as conf

  association [1..1] to I_ManufacturingOrder           as _MfgOrder             on  $projection.ManufacturingOrder = _MfgOrder.ManufacturingOrder
  association [1..1] to I_MfgOrder                     as _MfgOrder2            on  $projection.ManufacturingOrder = _MfgOrder2.ManufacturingOrder  // for ODP reasons

  association [0..1] to I_MfgOrderSequence             as _MfgOrderSequence     on  $projection.ManufacturingOrder         = _MfgOrderSequence.ManufacturingOrder
                                                                                and $projection.ManufacturingOrderSequence = _MfgOrderSequence.ManufacturingOrderSequence
  association [0..1] to I_ManufacturingOrderSequence   as _MfgOrderSequence2    on  $projection.ManufacturingOrder         = _MfgOrderSequence2.ManufacturingOrder
                                                                                and $projection.ManufacturingOrderSequence = _MfgOrderSequence2.ManufacturingOrderSequence
  association [1..1] to I_MfgOrderOperationBySemanKey  as _MfgOrderOperation    on  $projection.ManufacturingOrder          = _MfgOrderOperation.ManufacturingOrder
                                                                                and $projection.ManufacturingOrderSequence  = _MfgOrderOperation.ManufacturingOrderSequence
                                                                                and $projection.ManufacturingOrderOperation = _MfgOrderOperation.ManufacturingOrderOperation
  association [1..1] to I_MfgOrderOperationBySemKey    as _MfgOrderOperation2   on  $projection.ManufacturingOrder            = _MfgOrderOperation2.ManufacturingOrder
                                                                                and $projection.ManufacturingOrderSequence    = _MfgOrderOperation2.ManufacturingOrderSequence
                                                                                and $projection.ManufacturingOrderOperation_2 = _MfgOrderOperation2.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_UnitOfMeasure                as _ProductionUnit       on  $projection.ProductionUnit = _ProductionUnit.UnitOfMeasure
  association [0..1] to I_MaterialDocumentHeader       as _MaterialDocument2    on  $projection.MaterialDocument     = _MaterialDocument2.MaterialDocument
                                                                                and $projection.MaterialDocumentYear = _MaterialDocument2.MaterialDocumentYear
  association [0..1] to I_FailedGoodsMovement          as _FailedGoodsMovement  on  $projection.FailedGoodsMovement = _FailedGoodsMovement.FailedGoodsMovement
-- To child Long text
  association [0..*] to I_MfgOrderConfirmationLongText as _MfgOrderConfLongText on  $projection.MfgOrderConfirmationGroup = _MfgOrderConfLongText.MfgOrderConfirmationGroup
                                                                                and $projection.MfgOrderConfirmation      = _MfgOrderConfLongText.MfgOrderConfirmationCount
-- To child Material Document Items
  association [0..*] to I_MfgOrderConfMatlDocItem      as _ConfMatlDocItem      on  $projection.MfgOrderConfirmationGroup = _ConfMatlDocItem.MfgOrderConfirmationGroup
                                                                                and $projection.MfgOrderConfirmation      = _ConfMatlDocItem.MfgOrderConfirmation
-- To child Failed Goods Movements
  association [0..*] to I_FailedGoodsMovementItem      as _ConfFailedGdsMvtItem on  $projection.MfgOrderConfirmationGroup = _ConfFailedGdsMvtItem.ConfirmationGroup
                                                                                and $projection.MfgOrderConfirmation      = _ConfFailedGdsMvtItem.ConfirmationCount
-- To child Failed Actual Costs
  association [0..*] to I_ConfFailedActualCostCalc     as _ConfFailedActualCost on  $projection.MfgOrderConfirmationGroup = _ConfFailedActualCost.ConfirmationGroup
                                                                                and $projection.MfgOrderConfirmation      = _ConfFailedActualCost.OrderConfirmation
-- To extension
  association [0..1] to E_OrderConfirmation            as _Extension            on  $projection.MfgOrderConfirmationGroup = _Extension.ConfirmationGroup
                                                                                and $projection.MfgOrderConfirmation      = _Extension.ConfirmationCount
  -- start new associations for full coverage of text relations
  association [1..1] to I_Plant                        as _PlantText            on  $projection.Plant = _PlantText.Plant
  association [1..1] to I_ManufacturingOrder           as _MfgOrderText         on  $projection.ManufacturingOrder = _MfgOrderText.ManufacturingOrder
  association [0..*] to I_WorkCenterText               as _WorkCenterText       on  $projection.WorkCenterInternalID = _WorkCenterText.WorkCenterInternalID
                                                                                and $projection.WorkCenterTypeCode   = _WorkCenterText.WorkCenterTypeCode
  association [0..1] to I_PersonWorkAgreement_1     as _PersonWorkAgreementText on  $projection.Personnel = _PersonWorkAgreementText.PersonWorkAgreement
  association [0..*] to I_BusinessAreaText             as _BusinessAreaText     on  $projection.BusinessArea = _BusinessAreaText.BusinessArea
  association [0..1] to I_CompanyCode                  as _CompanyCodeText      on  $projection.CompanyCode = _CompanyCodeText.CompanyCode
  association [0..1] to I_ControllingArea              as _ControllingAreaText  on  $projection.ControllingArea = _ControllingAreaText.ControllingArea      
  -- end new associations for full coverage of text relations
{
      // Key

      @ObjectModel.foreignKey.association: '_ConfirmationGroup'
  key conf.ConfirmationGroup                                                 as MfgOrderConfirmationGroup,
      @ObjectModel.text.element: ['ConfirmationText']
  key conf.OrderConfirmation                                                 as MfgOrderConfirmation,

      // Order and Operation Data

      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderStdVH', element: 'ManufacturingOrder' } } ]
      @ObjectModel.foreignKey.association: '_MfgOrder'
      cast(conf.OrderID as manufacturingorder preserving type)               as ManufacturingOrder,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderSequenceStdVH', element: 'ManufacturingOrderSequence' } } ]
      @ObjectModel.foreignKey.association: '_MfgOrderSequence2'
      cast(conf.Sequence as manufacturingordersequence preserving type)      as ManufacturingOrderSequence,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: 'ManufacturingOrderOperation_2'
      @ObjectModel.foreignKey.association: '_MfgOrderOperation'
      cast(conf.OrderOperation as co_vornr preserving type)                  as ManufacturingOrderOperation,   // with conv. exit NUMCV

      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderOperationVH', element: 'ManufacturingOrderOperation' } } ]
      @ObjectModel.foreignKey.association: '_MfgOrderOperation2'
      conf.OrderOperation_2                                                  as ManufacturingOrderOperation_2, // w/o conversion exit

      @ObjectModel.foreignKey.association: '_MfgOrderCategory'
      @ObjectModel.sapObjectNodeTypeReference: 'ManufacturingOrderCategory'
      cast(conf.OrderCategory as manufacturingordercategory preserving type) as ManufacturingOrderCategory,
      @ObjectModel.foreignKey.association: '_MfgOrderType'
      @ObjectModel.sapObjectNodeTypeReference: 'ManufacturingOrderType'
      cast(conf.OrderType as manufacturingordertype preserving type)         as ManufacturingOrderType,

      // Internal Keys

      @ObjectModel.foreignKey.association: '_OrderInternalID'
      conf.OrderInternalID,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderOperationVH', element: 'OrderOperationInternalID' } } ]
      conf.OrderOperationInternalID,
      conf.SuperiorOperationInternalID,

      // Text

      @Semantics.text: true
      conf.ConfirmationText,
      @ObjectModel.foreignKey.association: '_Language'
      conf.Language,
      @ObjectModel.foreignKey.association: '_LongTextIndicator'
      conf.LongTextExists,

      // Admin

      @Semantics.systemDate.createdAt: true
      conf.ConfirmationEntryDate                                             as MfgOrderConfirmationEntryDate,
      @Semantics.systemTime.createdAt: true
      conf.ConfirmationEntryTime                                             as MfgOrderConfirmationEntryTime,
      @Semantics.user.createdBy: true
      conf.EnteredByUser,
      @Semantics.systemDate.lastChangedAt: true
      conf.LastChangeDate,
      @Semantics.user.lastChangedBy: true
      conf.LastChangedByUser,
      @Semantics.systemDate.createdAt: true
      conf.ConfirmationExternalEntryDate,
      @Semantics.systemTime.createdAt: true
      conf.ConfirmationExternalEntryTime,
      conf.EnteredByExternalUser,
      conf.ExternalSystemConfirmation,

      // Attributes

      @ObjectModel.foreignKey.association: '_FinalConfirmationType'
      conf.FinalConfirmationType,
      conf.IsFinalConfirmation,
      conf.OpenReservationsIsCleared,
      @ObjectModel.foreignKey.association: '_ReversedIndicator'
      conf.IsReversed,
      @ObjectModel.foreignKey.association: '_ReversalIndicator'
      conf.IsReversal,
      conf.CancldMfgOrderConfCount,
      conf.APIConfHasNoGoodsMovements,
      @ObjectModel.foreignKey.association: '_ConfirmationApplOrigin'
      conf.ConfirmationApplicationOrigin,
      @ObjectModel.foreignKey.association: '_ConfirmationType'
      conf.OrderConfirmationType,
      @ObjectModel.foreignKey.association: '_ConfirmationRecordType'
      conf.OrderConfirmationRecordType,

      // Milestone

      @API.element.releaseState: #DEPRECATED
      @API.element.successor: 'MilestoneConfirmationType'
      conf.MilestoneIsConfirmed,                 // wrong data type for indicators

      conf.MilestoneConfirmationType,
      conf.IsConfirmedByMilestoneConf,
      @ObjectModel.foreignKey.association: '_MilestoneConfirmationGroup'
      conf.MilestoneConfirmationGroup,
      @ObjectModel.foreignKey.association: '_MilestoneConfirmation'
      conf.MilestoneConfirmation,

      // Assignments

      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlantStdVH', element: 'Plant' } } ]
      @ObjectModel.foreignKey.association: '_Plant'
      @ObjectModel.sapObjectNodeTypeReference: 'Plant'
      conf.Plant,
      @ObjectModel.foreignKey.association: '_WorkCenterType'
      conf.WorkCenterTypeCode,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_WorkCenterStdVH', element: 'WorkCenterInternalID' } } ]
      @ObjectModel.foreignKey.association: '_WorkCenter'
      @ObjectModel.text.association: '_WorkCenterText'
      conf.WorkCenterInternalID,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_CapacityStdVH', element: 'CapacityInternalID' } } ]
      @ObjectModel.foreignKey.association: '_Capacity'
      conf.CapacityInternalID,
      conf.CapacityRequirementSplit,
      @ObjectModel.foreignKey.association: '_ShiftGrouping'
      conf.ShiftGrouping,
--    @ObjectModel.foreignKey.association: '_ShiftDefinition'
      conf.ShiftDefinition,
      @ObjectModel.foreignKey.association: '_MaterialDocument2'
      @ObjectModel.sapObjectNodeTypeReference: 'MaterialDocument'   
      conf.MaterialDocument,
      @ObjectModel.foreignKey.association: '_MaterialDocumentYear'
      conf.MaterialDocumentYear,
      @ObjectModel.foreignKey.association: '_FailedGoodsMovement'
      conf.FailedGoodsMovement,
      conf.PlantDataCollectionID,
      conf.OriginalBatch,
      conf.BatchBySupplier,

      // Assignments FI/CO

      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_BusinessAreaStdVH', element: 'BusinessArea' } } ]
      @ObjectModel.foreignKey.association: '_BusinessArea'
      @ObjectModel.sapObjectNodeTypeReference: 'BusinessArea'
      @ObjectModel.text.association: '_BusinessAreaText'
      conf.BusinessArea,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_CompanyCodeStdVH', element: 'CompanyCode' } } ]
      @ObjectModel.foreignKey.association: '_CompanyCode'
      @ObjectModel.sapObjectNodeTypeReference: 'CompanyCode'
      conf.CompanyCode,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_ControllingAreaStdVH', element: 'ControllingArea' } } ]
      @ObjectModel.foreignKey.association: '_ControllingArea'
      conf.ControllingArea,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProfitCenterStdVH', element: 'ProfitCenter' } } ]
      @ObjectModel.sapObjectNodeTypeReference: 'ProfitCenter'
      conf.ProfitCenter,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_CostCenterStdVH', element: 'CostCenter' } } ]     
      conf.SenderCostCenter,
      @ObjectModel.foreignKey.association: '_ProductCostCollector'
      conf.ProductCostCollector,

      // Assignments HR

      @ObjectModel.foreignKey.association: '_PersonWorkAgreement'
      conf.Personnel,
      conf.TimeRecording,
      conf.EmployeeWageType,
      @ObjectModel.foreignKey.association: '_EmployeeWageGroup'
      conf.EmployeeWageGroup,
      @ObjectModel.foreignKey.association: '_EmployeeSuitability'      
      conf.EmployeeSuitability,
      conf.NumberOfEmployees,

      // Dates

      @ObjectModel.foreignKey.association: '_PostingDate'
      @Semantics.businessDate.at: true
      conf.PostingDate,
      @ObjectModel.foreignKey.association: '_PostingDateYear'
      conf.PostingDateYear,

      // Time Events

      conf.ConfirmedExecutionStartDate,
      conf.ConfirmedExecutionStartTime,
      conf.ConfirmedSetupEndDate,
      conf.ConfirmedSetupEndTime,
      conf.ConfirmedProcessingStartDate,
      conf.ConfirmedProcessingStartTime,
      conf.ConfirmedProcessingEndDate,
      conf.ConfirmedProcessingEndTime,
      conf.ConfirmedTeardownStartDate,
      conf.ConfirmedTeardownStartTime,
      conf.ConfirmedExecutionEndDate,
      conf.ConfirmedExecutionEndTime,
      conf.ActualForecastEndDate,
      conf.ActualForecastEndTime,

      // Quantities and UoM

      @ObjectModel.foreignKey.association: '_ConfirmationUnit'
      @Semantics.unitOfMeasure: true
      conf.ConfirmationUnit,
      @Semantics.quantity.unitOfMeasure: 'ConfirmationUnit'
      @Aggregation.default: #SUM
      conf.ConfirmationYieldQuantity,
      @Semantics.quantity.unitOfMeasure: 'ConfirmationUnit'
      @Aggregation.default: #SUM
      conf.ConfirmationScrapQuantity,
      @Semantics.quantity.unitOfMeasure: 'ConfirmationUnit'
      @Aggregation.default: #SUM
      conf.ConfirmationReworkQuantity,
      @Semantics.quantity.unitOfMeasure: 'ConfirmationUnit'
      @Aggregation.default: #SUM
      conf.ConfirmationTotalQuantity,
      @ObjectModel.foreignKey.association: '_VarianceReason'
      conf.VarianceReasonCode,

      @ObjectModel.foreignKey.association: '_ProductionUnit'
      @Semantics.unitOfMeasure: true
      cast(OrderQuantityUnit as productionunit preserving type)      as ProductionUnit,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @Aggregation.default: #SUM
      cast(ConfirmedYieldQtyInOrderUnit as ru_gmnga preserving type) as ConfYieldQtyInProductionUnit,

      @ObjectModel.foreignKey.association: '_OperationUnit'
      @Semantics.unitOfMeasure: true
      conf.OperationUnit,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      @Aggregation.default: #SUM
      conf.OpPlannedTotalQuantity,

      // Work Quantities and UoM

      @ObjectModel.foreignKey.association: '_WorkQuantityUnit1'
      @Semantics.unitOfMeasure: true
      conf.OpWorkQuantityUnit1,
      @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit1'
      @Aggregation.default: #SUM
      conf.OpConfirmedWorkQuantity1,
      conf.NoFurtherOpWorkQuantity1IsExpd,
      @ObjectModel.foreignKey.association: '_WorkQuantityUnit2'
      @Semantics.unitOfMeasure: true
      conf.OpWorkQuantityUnit2,
      @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit2'
      @Aggregation.default: #SUM
      conf.OpConfirmedWorkQuantity2,
      conf.NoFurtherOpWorkQuantity2IsExpd,
      @ObjectModel.foreignKey.association: '_WorkQuantityUnit3'
      @Semantics.unitOfMeasure: true
      conf.OpWorkQuantityUnit3,
      @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit3'
      @Aggregation.default: #SUM
      conf.OpConfirmedWorkQuantity3,
      conf.NoFurtherOpWorkQuantity3IsExpd,
      @ObjectModel.foreignKey.association: '_WorkQuantityUnit4'
      @Semantics.unitOfMeasure: true
      conf.OpWorkQuantityUnit4,
      @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit4'
      @Aggregation.default: #SUM
      conf.OpConfirmedWorkQuantity4,
      conf.NoFurtherOpWorkQuantity4IsExpd,
      @ObjectModel.foreignKey.association: '_WorkQuantityUnit5'
      @Semantics.unitOfMeasure: true
      conf.OpWorkQuantityUnit5,
      @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit5'
      @Aggregation.default: #SUM
      conf.OpConfirmedWorkQuantity5,
      conf.NoFurtherOpWorkQuantity5IsExpd,
      @ObjectModel.foreignKey.association: '_WorkQuantityUnit6'
      @Semantics.unitOfMeasure: true
      conf.OpWorkQuantityUnit6,
      @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit6'
      @Aggregation.default: #SUM
      conf.OpConfirmedWorkQuantity6,
      conf.NoFurtherOpWorkQuantity6IsExpd,

      // Business Process

      @ObjectModel.foreignKey.association: '_BusinessProcess'
      conf.BusinessProcess,
      @ObjectModel.foreignKey.association: '_BusinessProcessUnit'
      @Semantics.unitOfMeasure: true
      conf.BusinessProcessEntryUnit,
      @Semantics.quantity.unitOfMeasure: 'BusinessProcessEntryUnit'
      @Aggregation.default: #SUM
      conf.BusinessProcessConfirmedQty,
      conf.NoFurtherBusinessProcQtyIsExpd,
      @Semantics.unitOfMeasure: true
      conf.BusinessProcRemainingQtyUnit,
      @Semantics.quantity.unitOfMeasure: 'BusinessProcRemainingQtyUnit'
      @Aggregation.default: #SUM
      conf.BusinessProcessRemainingQty,

      // Durations

      @ObjectModel.foreignKey.association: '_BreakDurationUnit'
      @Semantics.unitOfMeasure: true
      conf.BreakDurationUnit,
      conf.ConfirmedBreakDuration,

      // Associations

      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _MfgOrderConfLongText,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _ConfMatlDocItem,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _ConfFailedActualCost,
--    @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _ConfFailedGdsMvtItem,
      conf._ConfirmationGroup,
      _MfgOrder,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: '_MfgOrder'
      _MfgOrder2,         // for ODP reasons

      _MfgOrderSequence,
      _MfgOrderSequence2, // for ODP reasons

      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_MfgOrderOperation2'
      _MfgOrderOperation,
      _MfgOrderOperation2,
      _MfgOrderCategory,
      _MfgOrderType,
      @Consumption.hidden: true
      conf._OrderInternalID,
      conf._ConfirmationUnit,
      _ProductionUnit,
      conf._OperationUnit,
      conf._FinalConfirmationType,
      conf._ConfirmationType,
      conf._ConfirmationRecordType,
      conf._ConfirmationApplOrigin,
      conf._MilestoneConfirmationGroup,
      conf._MilestoneConfirmation,
      conf._User,
      conf._UserContactCard,
      conf._Language,
      @Consumption.hidden: true
      conf._WorkCenterType,
      conf._WorkCenter,
      conf._Plant,
      conf._Capacity,
      conf._ShiftGrouping,
      conf._ShiftDefinition,
      conf._BusinessArea,
      conf._CompanyCode,
      conf._ControllingArea,
      conf._ProductCostCollector,
      conf._BusinessProcess,
      conf._BusinessProcessUnit,
      conf._WorkQuantityUnit1,
      conf._WorkQuantityUnit2,
      conf._WorkQuantityUnit3,
      conf._WorkQuantityUnit4,
      conf._WorkQuantityUnit5,
      conf._WorkQuantityUnit6,
      conf._BreakDurationUnit,
      conf._VarianceReason,
      conf._EmployeeWageGroup,
      conf._EmployeeSuitability,
      conf._Employee,
      conf._PersonWorkAgreement,
      _FailedGoodsMovement,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: '_MaterialDocument3'
      conf._MaterialDocument,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: '_MaterialDocument3'
      _MaterialDocument2,
      conf._MaterialDocument3,
      conf._MaterialDocumentYear,
      conf._PostingDate,
      conf._PostingDateYear,
      conf._FinalConfIndicator,
      conf._ReversedIndicator,
      conf._ReversalIndicator,
      conf._LongTextIndicator,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_MfgOrderConfLongText'
      conf._LongText,
      
      // Text relations

      _MfgOrderText,
      _PlantText,
      _WorkCenterText,
      _PersonWorkAgreementText,
      _BusinessAreaText,
      _CompanyCodeText,
      _ControllingAreaText
}
where ( conf.ConfirmationApplicationOrigin = '2' or
        conf.ConfirmationApplicationOrigin = '6' or //Manufacturing orders only

        conf.ConfirmationApplicationOrigin = '8' ); //including results recording