I_MFGORDEROPERATION

CDS View

Manufacturing Order Operation

I_MFGORDEROPERATION is a CDS View in S/4HANA. Manufacturing Order Operation. It contains 236 fields. 11 CDS views read from this table.

CDS Views using this table (11)

ViewTypeJoinVDMDescription
C_MfgExecDefectRecord view left_outer CONSUMPTION View with UI attributes for defect
C_MfgOrderOprObjPgCnf view_entity from CONSUMPTION Mfg Order Operations Confirmation
C_ShopFloorOrderOperation view from CONSUMPTION Shop Floor Order Operation
I_MfgOrderOperationForConf view from COMPOSITE Mfg Order Operation for Confirmation
I_MfgOrderWorkcenter view_entity inner COMPOSITE WorkCenters for Manufacturing Orders
P_MfgOrderHasReworkOperation view from COMPOSITE
P_MfgOrderOperationDelay view from COMPOSITE
P_MfgOrdOpActyPlanInspChar view from CONSUMPTION
P_Mpe_Workcentermaterial view_entity from CONSUMPTION Material for work center
P_OpActyMainWrkCtrMfgUser view inner COMPOSITE
P_SFIOpActyPlanInspChar view inner CONSUMPTION

Fields (236)

KeyField CDS FieldsUsed in Views
KEY ManufacturingOrder ManufacturingOrder 4
KEY OrderIntBillOfOperationsItem OrderIntBillOfOperationsItem,OrderOperationInternalID 5
KEY OrderInternalBillOfOperations OrderInternalBillOfOperations,OrderInternalID 5
KEY ProduceOpActyNtwkInstance OpActyNtwkInstance,ProduceOpActyNtwkInstance 4
_FactoryCalendar _FactoryCalendar 1
_MfgOrder _MfgOrder 3
_MfgOrderCategory _MfgOrderCategory 1
_MfgOrderSequence _MfgOrderSequence 1
_MfgOrderType _MfgOrderType 1
_MRPController _MRPController 1
_OperationConfirmation _OperationConfirmation 1
_OperationControlProfile _OperationControlProfile 2
_OrdInternalBillOfOperations _OrdInternalBillOfOperations 4
_ProductionPlant _ProductionPlant 2
_ProductionSupervisor _ProductionSupervisor 1
_WorkCenter_2 _WorkCenter 1
_WorkCenterType_2 _WorkCenterType 1
ActualForecastEndDate ActualForecastEndDate 1
ActualForecastEndTime ActualForecastEndTime 1
BillOfMaterialCategory BillOfMaterialCategory 1
BillOfMaterialInternalID BillOfMaterialInternalID 1
BillOfMaterialItemNodeNumber BillOfMaterialItemNodeNumber 1
BillOfOperationsGroup BillOfOperationsGroup 1
BillOfOperationsSequence BillOfOperationsSequence 1
BillOfOperationsType BillOfOperationsType 1
BillOfOperationsVariant BillOfOperationsVariant 1
BillOfOperationsVersion BillOfOperationsVersion 1
BOMItemNodeCount BOMItemNodeCount 1
BOOOperationInternalID BOOOperationInternalID 1
BusinessArea BusinessArea 1
BusinessProcess BusinessProcess 1
BusinessProcessConfirmedQty BusinessProcessConfirmedQty 1
BusinessProcessEntryUnit BusinessProcessEntryUnit 1
BusinessProcessRemainingQty BusinessProcessRemainingQty 1
BusinessProcRemainingQtyUnit BusinessProcRemainingQtyUnit 1
CapacityRequirement CapacityRequirement 1
CapacityRequirementItem CapacityRequirementItem 1
ChangeNumber ChangeNumber 1
CompanyCode CompanyCode 1
ControllingArea ControllingArea 1
ControllingObjectClass ControllingObjectClass 1
ControllingObjectCurrency ControllingObjectCurrency 1
ControlRecipeDestination ControlRecipeDestination 1
CostCtrActivityType1 CostCtrActivityType1 2
CostCtrActivityType2 CostCtrActivityType2 2
CostCtrActivityType3 CostCtrActivityType3 2
CostCtrActivityType4 CostCtrActivityType4 2
CostCtrActivityType5 CostCtrActivityType5 2
CostCtrActivityType6 CostCtrActivityType6 2
CostElement CostElement 1
CostEstimate CostEstimate 1
CostingSheet CostingSheet 1
CostingVariant CostingVariant 1
EarliestScheduledWaitEndDate EarliestScheduledWaitEndDate 1
EarliestScheduledWaitEndTime EarliestScheduledWaitEndTime 1
EarliestScheduledWaitStartDate EarliestScheduledWaitStartDate 1
EarliestScheduledWaitStartTime EarliestScheduledWaitStartTime 1
EmployeeSuitability EmployeeSuitability 1
EmployeeWageGroup EmployeeWageGroup 1
EmployeeWageType EmployeeWageType 1
EndDateOffsetDuration EndDateOffsetDuration 1
EndDateOffsetDurationUnit EndDateOffsetDurationUnit 1
EndDateOffsetReferenceCode EndDateOffsetReferenceCode 1
ExtProcgOperationHasSubcontrg ExtProcgOperationHasSubcontrg 1
FactoryCalendar FactoryCalendar 2
ForecastWorkQuantity1 ForecastWorkQuantity1 1
ForecastWorkQuantity2 ForecastWorkQuantity2 1
ForecastWorkQuantity3 ForecastWorkQuantity3 1
ForecastWorkQuantity4 ForecastWorkQuantity4 1
ForecastWorkQuantity5 ForecastWorkQuantity5 1
ForecastWorkQuantity6 ForecastWorkQuantity6 1
FreeDefinedAmount1 FreeDefinedAmount1 1
FreeDefinedAmount2 FreeDefinedAmount2 1
FreeDefinedAttribute01 FreeDefinedAttribute01 1
FreeDefinedAttribute02 FreeDefinedAttribute02 1
FreeDefinedAttribute03 FreeDefinedAttribute03 1
FreeDefinedAttribute04 FreeDefinedAttribute04 1
FreeDefinedDate1 FreeDefinedDate1 1
FreeDefinedDate2 FreeDefinedDate2 1
FreeDefinedIndicator1 FreeDefinedIndicator1 1
FreeDefinedIndicator2 FreeDefinedIndicator2 1
FreeDefinedQuantity1 FreeDefinedQuantity1 1
FreeDefinedQuantity2 FreeDefinedQuantity2 1
FreeDefinedTableFieldSemantic FreeDefinedTableFieldSemantic 1
FunctionalArea FunctionalArea 1
GoodsRecipientName GoodsRecipientName 1
InspectionLot InspectionLot 1
Language Language 1
LatestSchedldFcstdEndDate LatestSchedldFcstdEndDate 1
LatestSchedldFcstdStartDate LatestSchedldFcstdStartDate 1
LatestScheduledWaitEndDate LatestScheduledWaitEndDate 1
LatestScheduledWaitEndTime LatestScheduledWaitEndTime 1
LatestScheduledWaitStartDate LatestScheduledWaitStartDate 1
LatestScheduledWaitStartTime LatestScheduledWaitStartTime 1
LeadTimeReductionStrategy LeadTimeReductionStrategy 1
ManufacturingObject ManufacturingObject 1
ManufacturingOrderCategory ManufacturingOrderCategory 4
ManufacturingOrderImportance ManufacturingOrderImportance 1
ManufacturingOrderOperation ManufacturingOrderOperation 4
ManufacturingOrderSequence ManufacturingOrderSequence 2
ManufacturingOrderSubOperation ManufacturingOrderSubOperation 1
ManufacturingOrderType ManufacturingOrderType 4
MaximumNumberOfSplits MaximumNumberOfSplits 1
MfgOrderOperationIsPhase MfgOrderOperationIsPhase 1
MfgOrderOperationOrSubOp MfgOrderOperationOrSubOp 1
MfgOrderOperationText MfgOrderOperationText 4
MfgOrderPhaseSuperiorOperation MfgOrderPhaseSuperiorOperation 1
MRPController MRPController 2
NoFurtherBusinessProcQtyIsExpd NoFurtherBusinessProcQtyIsExpd 1
NoFurtherOpWorkQuantity1IsExpd NoFurtherOpWorkQuantity1IsExpd 2
NoFurtherOpWorkQuantity2IsExpd NoFurtherOpWorkQuantity2IsExpd 2
NoFurtherOpWorkQuantity3IsExpd NoFurtherOpWorkQuantity3IsExpd 2
NoFurtherOpWorkQuantity4IsExpd NoFurtherOpWorkQuantity4IsExpd 2
NoFurtherOpWorkQuantity5IsExpd NoFurtherOpWorkQuantity5IsExpd 2
NoFurtherOpWorkQuantity6IsExpd NoFurtherOpWorkQuantity6IsExpd 2
NumberOfCapacities NumberOfCapacities 1
NumberOfConfirmationSlips NumberOfConfirmationSlips 1
NumberOfEmployees NumberOfEmployees 1
NumberOfOperationConfirmations NumberOfOperationConfirmations 1
NumberOfOperationPriceUnits NumberOfOperationPriceUnits 1
NumberOfTimeTickets NumberOfTimeTickets 1
OpActualExecutionEndDate OpActualExecutionEndDate 2
OpActualExecutionEndTime OpActualExecutionEndTime 2
OpActualExecutionStartDate OpActualExecutionStartDate 2
OpActualExecutionStartTime OpActualExecutionStartTime 2
OpActualProcessingEndDate OpActualProcessingEndDate 2
OpActualProcessingEndTime OpActualProcessingEndTime 2
OpActualProcessingStartDate OpActualProcessingStartDate 2
OpActualProcessingStartTime OpActualProcessingStartTime 2
OpActualSetupEndDate OpActualSetupEndDate 2
OpActualSetupEndTime OpActualSetupEndTime 2
OpActualTeardownStartDate OpActualTeardownStartDate 2
OpActualTeardownStartTme OpActualTeardownStartTme 2
OpConfirmedWorkQuantity1 OpConfirmedWorkQuantity1 2
OpConfirmedWorkQuantity2 OpConfirmedWorkQuantity2 2
OpConfirmedWorkQuantity3 OpConfirmedWorkQuantity3 2
OpConfirmedWorkQuantity4 OpConfirmedWorkQuantity4 2
OpConfirmedWorkQuantity5 OpConfirmedWorkQuantity5 2
OpConfirmedWorkQuantity6 OpConfirmedWorkQuantity6 2
OperationConfirmation OperationConfirmation 2
OperationConfirmedEndDate OperationConfirmedEndDate 2
OperationConfirmedReworkQty OperationConfirmedReworkQty 2
OperationConfirmedStartDate OperationConfirmedStartDate 2
OperationControlProfile OperationControlProfile 3
OperationHasLongText OperationHasLongText 1
OperationImportance OperationImportance 1
OperationIsToBeDeleted OperationIsToBeDeleted 1
OperationOverlappingIsPossible OperationOverlappingIsPossible 1
OperationOverlappingIsRequired OperationOverlappingIsRequired 1
OperationReferenceQuantity OperationReferenceQuantity 1
OperationScrapPercent OperationScrapPercent 2
OperationSetupGroup OperationSetupGroup 1
OperationSetupGroupCategory OperationSetupGroupCategory 1
OperationSetupType OperationSetupType 1
OperationsIsAlwaysOverlapping OperationsIsAlwaysOverlapping 1
OperationSplitIsRequired OperationSplitIsRequired 1
OperationStandardTextCode OperationStandardTextCode 1
OperationUnit OperationUnit 1
OpErlstSchedldExecEndDte OpErlstSchedldExecEndDte 2
OpErlstSchedldExecEndTme OpErlstSchedldExecEndTme 2
OpErlstSchedldExecStrtDte OpErlstSchedldExecStrtDte 2
OpErlstSchedldExecStrtTme OpErlstSchedldExecStrtTme 2
OpErlstSchedldProcgStrtDte OpErlstSchedldProcgStrtDte 2
OpErlstSchedldProcgStrtTme OpErlstSchedldProcgStrtTme 2
OpErlstSchedldTrdwnStrtDte OpErlstSchedldTrdwnStrtDte 2
OpErlstSchedldTrdwnStrtTme OpErlstSchedldTrdwnStrtTme 2
OpExternalProcessingCurrency OpExternalProcessingCurrency 1
OpExternalProcessingPrice OpExternalProcessingPrice 1
OpLtstSchedldExecEndDte OpLtstSchedldExecEndDte 2
OpLtstSchedldExecEndTme OpLtstSchedldExecEndTme 2
OpLtstSchedldExecStrtDte OpLtstSchedldExecStrtDte 2
OpLtstSchedldExecStrtTme OpLtstSchedldExecStrtTme 2
OpLtstSchedldProcgStrtDte OpLtstSchedldProcgStrtDte 2
OpLtstSchedldProcgStrtTme OpLtstSchedldProcgStrtTme 2
OpLtstSchedldTrdwnStrtDte OpLtstSchedldTrdwnStrtDte 2
OpLtstSchedldTrdwnStrtTme OpLtstSchedldTrdwnStrtTme 2
OpPlannedScrapQuantity OpPlannedScrapQuantity 2
OpPlannedTotalQuantity OpPlannedTotalQuantity 2
OpPlannedYieldQuantity OpPlannedYieldQuantity 2
OpQtyToBaseQtyDnmntr OpQtyToBaseQtyDnmntr 2
OpQtyToBaseQtyNmrtr OpQtyToBaseQtyNmrtr 2
OpSchedldReductionLevel OpSchedldReductionLevel 1
OpTotalConfirmedScrapQty OpTotalConfirmedScrapQty 2
OpTotalConfirmedYieldQty OpTotalConfirmedYieldQty 2
OpTotConfdYieldQtyInOrdQtyUnit OpTotConfdYieldQtyInOrdQtyUnit 1
OpWorkQuantityUnit1 OpWorkQuantityUnit1 2
OpWorkQuantityUnit2 OpWorkQuantityUnit2 2
OpWorkQuantityUnit3 OpWorkQuantityUnit3 2
OpWorkQuantityUnit4 OpWorkQuantityUnit4 2
OpWorkQuantityUnit5 OpWorkQuantityUnit5 2
OpWorkQuantityUnit6 OpWorkQuantityUnit6 2
Personnel Personnel 2
ProductConfiguration ProductConfiguration 1
ProductionPlant ProductionPlant 3
ProductionSupervisor ProductionSupervisor 2
ProductionUnit ProductionUnit 2
ProfitCenter ProfitCenter 1
PurchaseOrder PurchaseOrder 1
PurchaseOrderItem PurchaseOrderItem 1
PurchaseRequisition PurchaseRequisition 1
PurchaseRequisitionItem PurchaseRequisitionItem 1
PurchasingGroup PurchasingGroup 1
PurchasingInfoRecord PurchasingInfoRecord 1
PurchasingInfoRecordCategory PurchasingInfoRecordCategory 1
PurgInfoRecdDataIsFixed PurgInfoRecdDataIsFixed 1
RequestingCostCenter RequestingCostCenter 1
ResponsiblePlannerGroup ResponsiblePlannerGroup 1
SchedldFcstdEarliestEndDate SchedldFcstdEarliestEndDate 1
SchedldFcstdEarliestEndTime SchedldFcstdEarliestEndTime 1
SchedldFcstdEarliestStartDate SchedldFcstdEarliestStartDate 1
SchedldFcstdEarliestStartTime SchedldFcstdEarliestStartTime 1
SchedldFcstdLatestEndTime SchedldFcstdLatestEndTime 1
SchedldFcstdLatestStartTime SchedldFcstdLatestStartTime 1
SetupOpActyNtwkInstance SetupOpActyNtwkInstance 1
StartDateOffsetDuration StartDateOffsetDuration 1
StartDateOffsetDurationUnit StartDateOffsetDurationUnit 1
StartDateOffsetReferenceCode StartDateOffsetReferenceCode 1
SuperiorOperationInternalID SuperiorOperationInternalID 1
TaxJurisdiction TaxJurisdiction 1
TeardownOpActyNtwkInstance TeardownOpActyNtwkInstance 1
UnloadingPointName UnloadingPointName 1
WorkCenterInternalID WorkCenterInternalID 3
WorkCenterStandardWorkQty1 WorkCenterStandardWorkQty1 2
WorkCenterStandardWorkQty2 WorkCenterStandardWorkQty2 2
WorkCenterStandardWorkQty3 WorkCenterStandardWorkQty3 2
WorkCenterStandardWorkQty4 WorkCenterStandardWorkQty4 2
WorkCenterStandardWorkQty5 WorkCenterStandardWorkQty5 2
WorkCenterStandardWorkQty6 WorkCenterStandardWorkQty6 2
WorkCenterStandardWorkQtyUnit1 WorkCenterStandardWorkQtyUnit1 2
WorkCenterStandardWorkQtyUnit2 WorkCenterStandardWorkQtyUnit2 2
WorkCenterStandardWorkQtyUnit3 WorkCenterStandardWorkQtyUnit3 2
WorkCenterStandardWorkQtyUnit4 WorkCenterStandardWorkQtyUnit4 2
WorkCenterStandardWorkQtyUnit5 WorkCenterStandardWorkQtyUnit5 2
WorkCenterStandardWorkQtyUnit6 WorkCenterStandardWorkQtyUnit6 2
WorkCenterTypeCode WorkCenterTypeCode 1
WorkCenterTypeCode_2 WorkCenterTypeCode,WorkCenterTypeCode_2 2
@AbapCatalog.sqlViewName: 'IPPMFGORDOPER'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@AccessControl.privilegedAssociations: ['_MRPController', '_ProductionSupervisor', '_LongText']
@Analytics.dataCategory: #DIMENSION
@ClientHandling.algorithm: #SESSION_VARIABLE
@ClientHandling.type: #CLIENT_DEPENDENT
@Metadata.allowExtensions: true
@ObjectModel.representativeKey: 'OrderIntBillOfOperationsItem'
@ObjectModel.semanticKey: ['ManufacturingOrder', 'ManufacturingOrderSequence', 'ManufacturingOrderOperation']
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #XL, dataClass: #TRANSACTIONAL}
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: 'I_ManufacturingOrderOperation'
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Manufacturing Order Operation'

define view I_MfgOrderOperation
  as select from    I_OrderOperation             as afvg
    inner join      I_MfgOrderBasic              as aufv on  aufv.OrderInternalID = afvg.OrderInternalID
    left outer to one join I_OrderOperationBasic as afvc on  afvc.OrderInternalID = afvg.OrderInternalID //sub-operation handling

                                                         and afvc.OrderOperationInternalID = afvg.SuperiorOperationInternalID
    left outer to one join I_OrderOperationBasic as afvp on  afvp.OrderInternalID = afvg.OrderInternalID //phase handling

                                                         and afvp.OrderOperationInternalID = afvg.OrderIntBillOfOpItemOfPhase

  association [1..1] to I_OrdInternalBillOfOperations as _OrdInternalBillOfOperations  on  $projection.OrderInternalBillOfOperations = _OrdInternalBillOfOperations.OrderInternalBillOfOperations
  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 [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 [0..1] to I_OrderOperationBasic         as _SuperiorOperation            on  $projection.OrderInternalBillOfOperations = _SuperiorOperation.OrderInternalID
                                                                                       and $projection.SuperiorOperationInternalID   = _SuperiorOperation.OrderOperationInternalID
  association [0..1] to I_OperationStandardText       as _OperationStandardTextCode    on  $projection.OperationStandardTextCode = _OperationStandardTextCode.OperationStandardTextCode
  association [1..1] to I_Plant                       as _ProductionPlant              on  $projection.ProductionPlant = _ProductionPlant.Plant
  association [1..1] to I_UnitOfMeasure               as _ProductionUnit               on  $projection.ProductionUnit = _ProductionUnit.UnitOfMeasure
  association [1..1] to I_UnitOfMeasure               as _OperationUnit                on  $projection.OperationUnit = _OperationUnit.UnitOfMeasure
  association [0..1] to I_MRPController               as _MRPController                on  $projection.ProductionPlant = _MRPController.Plant
                                                                                       and $projection.MRPController   = _MRPController.MRPController
  association [0..1] to I_ProductionSupervisor        as _ProductionSupervisor         on  $projection.ProductionPlant      = _ProductionSupervisor.Plant
                                                                                       and $projection.ProductionSupervisor = _ProductionSupervisor.ProductionSupervisor
  association [0..1] to I_ResponsiblePlannerGroup     as _ResponsiblePlannerGroup      on  $projection.ProductionPlant         = _ResponsiblePlannerGroup.Plant
                                                                                       and $projection.ResponsiblePlannerGroup = _ResponsiblePlannerGroup.ResponsiblePlannerGroup
  association [0..1] to I_WorkCenterType              as _WorkCenterType               on  $projection.WorkCenterTypeCode = _WorkCenterType.WorkCenterTypeCode
  association [0..1] to I_WorkCenter                  as _WorkCenter                   on  $projection.WorkCenterTypeCode   = _WorkCenter.WorkCenterTypeCode
                                                                                       and $projection.WorkCenterInternalID = _WorkCenter.WorkCenterInternalID
  association [0..1] to I_WorkCenterType              as _WorkCenterType_2             on  $projection.WorkCenterTypeCode_2 = _WorkCenterType_2.WorkCenterTypeCode
  association [0..1] to I_WorkCenter                  as _WorkCenter_2                 on  $projection.WorkCenterTypeCode_2 = _WorkCenter_2.WorkCenterTypeCode
                                                                                       and $projection.WorkCenterInternalID = _WorkCenter_2.WorkCenterInternalID
  association [1..1] to I_OperationControlProfile     as _OperationControlProfile      on  $projection.OperationControlProfile = _OperationControlProfile.OperationControlProfile
  association [0..1] to I_BillOfOperationsType        as _BillOfOperationsType         on  $projection.BillOfOperationsType = _BillOfOperationsType.BillOfOperationsType
  association [0..1] to I_BillOfOperationsGroup       as _BillOfOperationsGroup        on  $projection.BillOfOperationsType  = _BillOfOperationsGroup.BillOfOperationsType
                                                                                       and $projection.BillOfOperationsGroup = _BillOfOperationsGroup.BillOfOperationsGroup
  association [0..1] to I_BillOfOperations            as _BillOfOperationsVariant      on  $projection.BillOfOperationsType    = _BillOfOperationsVariant.BillOfOperationsType
                                                                                       and $projection.BillOfOperationsGroup   = _BillOfOperationsVariant.BillOfOperationsGroup
                                                                                       and $projection.BillOfOperationsVariant = _BillOfOperationsVariant.BillOfOperationsVariant
  association [0..1] to I_BillOfOperationsSequence    as _BillOfOperationsSequence     on  $projection.BillOfOperationsType      = _BillOfOperationsSequence.BillOfOperationsType
                                                                                       and $projection.BillOfOperationsGroup     = _BillOfOperationsSequence.BillOfOperationsGroup
                                                                                       and $projection.BillOfOperationsVariant   = _BillOfOperationsSequence.BillOfOperationsVariant
                                                                                       and $projection.BillOfOperationsSequence  = _BillOfOperationsSequence.BillOfOperationsSequence
  association [0..1] to I_BOOOperationInternalID      as _BOOOperationInternalID       on  $projection.BillOfOperationsType   = _BOOOperationInternalID.BillOfOperationsType
                                                                                       and $projection.BillOfOperationsGroup  = _BOOOperationInternalID.BillOfOperationsGroup
                                                                                       and $projection.BOOOperationInternalID = _BOOOperationInternalID.BOOOperationInternalID
  association [0..1] to I_FactoryCalendar             as _FactoryCalendar              on  $projection.FactoryCalendar = _FactoryCalendar.FactoryCalendar
  association [0..1] to I_CapacityRequirement         as _CapacityRequirement          on  $projection.CapacityRequirement = _CapacityRequirement.CapacityRequirement
  association [0..1] to I_CapacityRequirementItem     as _CapacityRequirementItem      on  $projection.CapacityRequirement     = _CapacityRequirementItem.CapacityRequirement
                                                                                       and $projection.CapacityRequirementItem = _CapacityRequirementItem.CapacityRequirementItem
  association [0..1] to I_ControlRecipeDestination    as _ControlRecipeDestination     on  $projection.ProductionPlant          = _ControlRecipeDestination.Plant
                                                                                       and $projection.ControlRecipeDestination = _ControlRecipeDestination.ControlRecipeDestination
  association [0..1] to I_ConfirmationGroup           as _OperationConfirmation        on  $projection.OperationConfirmation = _OperationConfirmation.ConfirmationGroup
  association [0..1] to I_ChangeMaster                as _ChangeNumber                 on  $projection.ChangeNumber = _ChangeNumber.ChangeNumber
  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_PurchaseRequisitionItemAPI01 as _PurchaseRequisitionItem     on  $projection.PurchaseRequisition     = _PurchaseRequisitionItem.PurchaseRequisition
                                                                                       and $projection.PurchaseRequisitionItem = _PurchaseRequisitionItem.PurchaseRequisitionItem
  association [0..1] to I_PurchasingOrganization      as _PurchasingOrganization       on  $projection.PurchasingOrganization = _PurchasingOrganization.PurchasingOrganization
  association [0..1] to I_PurchasingGroup             as _PurchasingGroup              on  $projection.PurchasingGroup = _PurchasingGroup.PurchasingGroup
  association [0..1] to I_PurchasingInfoRecordApi01   as _PurchasingInfoRecord         on  $projection.PurchasingInfoRecord = _PurchasingInfoRecord.PurchasingInfoRecord
  association [0..1] to I_Supplier                    as _Supplier                     on  $projection.Supplier = _Supplier.Supplier
  association [0..1] to I_SupplierCompanyByPlant      as _SupplierCompanyByPlant       on  $projection.ProductionPlant = _SupplierCompanyByPlant.Plant
                                                                                       and $projection.Supplier        = _SupplierCompanyByPlant.Supplier
  association [0..1] to I_EmployeeWageGroup           as _EmployeeWageGroup            on  $projection.ProductionPlant   = _EmployeeWageGroup.Plant
                                                                                       and $projection.EmployeeWageGroup = _EmployeeWageGroup.EmployeeWageGroup
  association [0..1] to I_EmployeeSuitability         as _EmployeeSuitability          on  $projection.ProductionPlant     = _EmployeeSuitability.Plant
                                                                                       and $projection.EmployeeSuitability = _EmployeeSuitability.EmployeeSuitability
--association [0..1] to I_Employment                  as _Employee                     on  $projection.Personnel = _Employee.EmploymentInternalID
  association [0..1] to I_PersonWorkAgreement_1       as _Employee                     on  $projection.Personnel = _Employee.PersonWorkAgreement
  association [0..1] to I_CompanyCode                 as _CompanyCode                  on  $projection.CompanyCode = _CompanyCode.CompanyCode
  association [0..*] to I_ProfitCenter                as _ProfitCenter                 on  $projection.ControllingArea = _ProfitCenter.ControllingArea
                                                                                       and $projection.ProfitCenter    = _ProfitCenter.ProfitCenter
  association [0..*] to I_CostCenter                  as _RequestingCostCenter         on  $projection.ControllingArea      = _RequestingCostCenter.ControllingArea
                                                                                       and $projection.RequestingCostCenter = _RequestingCostCenter.CostCenter
  association [0..1] to I_ControllingArea             as _ControllingArea              on  $projection.ControllingArea = _ControllingArea.ControllingArea
  association [0..1] to I_ControllingObjectClass      as _ControllingObjectClass       on  $projection.ControllingObjectClass = _ControllingObjectClass.ControllingObjectClass
  association [0..1] to I_FunctionalArea              as _FunctionalArea               on  $projection.FunctionalArea = _FunctionalArea.FunctionalArea
  association [0..1] to I_BusinessArea                as _BusinessArea                 on  $projection.BusinessArea = _BusinessArea.BusinessArea
  association [0..1] to I_BusinessProcess             as _BusinessProcess              on  $projection.ControllingArea = _BusinessProcess.ControllingArea
                                                                                       and $projection.BusinessProcess = _BusinessProcess.BusinessProcess
  association [0..1] to I_UnitOfMeasure               as _BusinessProcessEntryUnit     on  $projection.BusinessProcessEntryUnit = _BusinessProcessEntryUnit.UnitOfMeasure
  association [0..1] to I_OperationSetupGroupCategory as _OperationSetupGroupCategory  on  $projection.ProductionPlant             = _OperationSetupGroupCategory.Plant
                                                                                       and $projection.OperationSetupGroupCategory = _OperationSetupGroupCategory.OperationSetupGroupCategory
  association [0..1] to I_OperationSetupGroup         as _OperationSetupGroup          on  $projection.OperationSetupGroup         = _OperationSetupGroup.OperationSetupGroup
                                                                                       and $projection.OperationSetupGroupCategory = _OperationSetupGroup.OperationSetupGroupCategory
                                                                                       and $projection.ProductionPlant             = _OperationSetupGroup.Plant
  association [0..1] to I_OperationSetupType          as _OperationSetupType           on  $projection.OperationSetupType = _OperationSetupType.OperationSetupType
                                                                                       and $projection.ProductionPlant    = _OperationSetupType.Plant
  association [0..1] to I_LeadTimeReductionStrategy   as _LeadTimeReductionStrategy    on  $projection.LeadTimeReductionStrategy = _LeadTimeReductionStrategy.LeadTimeReductionStrategy
                                                                                       and $projection.ProductionPlant           = _LeadTimeReductionStrategy.Plant
  association [0..1] to I_OperationDateOffsetRefCode  as _StartDateOffsetReferenceCode on  $projection.StartDateOffsetReferenceCode = _StartDateOffsetReferenceCode.OperationDateOffsetRefCode
  association [0..1] to I_OperationDateOffsetRefCode  as _EndDateOffsetReferenceCode   on  $projection.EndDateOffsetReferenceCode   = _EndDateOffsetReferenceCode.OperationDateOffsetRefCode
  association [0..1] to I_Language                    as _Language                     on  $projection.Language = _Language.Language
  association [0..1] to I_Currency                    as _OpExternalProcessingCurrency on  $projection.OpExternalProcessingCurrency = _OpExternalProcessingCurrency.Currency
  association [0..1] to I_OpActyNtwkInstance          as _SetupOpActyNtwkInstance      on  $projection.SetupOpActyNtwkInstance    = _SetupOpActyNtwkInstance.OpActyNtwkInstance
  association [0..1] to I_OpActyNtwkInstance          as _ProduceOpActyNtwkInstance    on  $projection.ProduceOpActyNtwkInstance  = _ProduceOpActyNtwkInstance.OpActyNtwkInstance
  association [0..1] to I_OpActyNtwkInstance          as _TeardownOpActyNtwkInstance   on  $projection.TeardownOpActyNtwkInstance = _TeardownOpActyNtwkInstance.OpActyNtwkInstance
{
      // Technical Key

      @ObjectModel.foreignKey.association: '_OrdInternalBillOfOperations'
  key cast(afvg.OrderInternalID          as pph_aufpl           preserving type) as OrderInternalBillOfOperations,
  key cast(afvg.OrderOperationInternalID as operationinternalid preserving type) as OrderIntBillOfOperationsItem,

      // Semantical key

      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderStdVH', element: 'ManufacturingOrder' } } ]
      @ObjectModel.foreignKey.association: '_MfgOrder'
      cast(aufv.ManufacturingOrder as manufacturingorder preserving type) as ManufacturingOrder,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderSequenceStdVH', element: 'ManufacturingOrderSequence' } } ]
      @ObjectModel.foreignKey.association: '_MfgOrderSequence'
      cast(afvg.Sequence as manufacturingordersequence preserving type)   as ManufacturingOrderSequence,
      @ObjectModel.text.element: ['MfgOrderOperationText']
      case
        when afvg.SuperiorOperationInternalID > '00000000' then
          cast(afvc.Operation as manufacturingorderoperation preserving type)  //superior operation ID

        else
          cast(afvg.Operation as manufacturingorderoperation preserving type)
      end                                                                 as ManufacturingOrderOperation,
      @ObjectModel.text.element: ['MfgOrderOperationText']
      case
        when afvg.SuperiorOperationInternalID > '00000000' then
          cast(afvg.Operation as manufacturingordersuboperation preserving type)
        else ''
      end                                                                 as ManufacturingOrderSubOperation,
      afvc.Operation as MfgOrderOperationOrSubOp,

      // Order header data

      @ObjectModel.foreignKey.association: '_MfgOrderCategory'
      cast(aufv.ManufacturingOrderCategory as manufacturingordercategory preserving type) as ManufacturingOrderCategory,
      @ObjectModel.foreignKey.association: '_MfgOrderType'
      cast(aufv.ManufacturingOrderType     as manufacturingordertype preserving type)     as ManufacturingOrderType,
      @ObjectModel.foreignKey.association: '_ProductionSupervisor'
      cast(aufv.ProductionSupervisor       as pph_fevor preserving type)                  as ProductionSupervisor,
      @ObjectModel.foreignKey.association: '_MRPController'
      cast(aufv.MRPController              as pph_dispo preserving type)                  as MRPController,
      @ObjectModel.foreignKey.association: '_ResponsiblePlannerGroup'
      cast(aufv.ResponsiblePlannerGroup    as vagrp preserving type)                      as ResponsiblePlannerGroup,
      cast(aufv.ProductConfiguration       as product_configuration preserving type)      as ProductConfiguration,
      aufv.InspectionLot,
      aufv.ManufacturingOrderImportance,

      // Text

      @Semantics.text: true
      cast(afvg.OperationText as mfgorderoperationtext preserving type) as MfgOrderOperationText,
      @ObjectModel.foreignKey.association: '_Language'
      afvg.Language                                                     as Language,
      @ObjectModel.foreignKey.association: '_OperationStandardTextCode'
      cast(afvg.StandardTextInternalID as pph_ktsch preserving type)    as OperationStandardTextCode,
      // Long text logic

      cast(case afvg.Language
            when '' then ''
            else 'X'
      end as aufltext preserving type)                             as OperationHasLongText,

      // Attributes

      afvg.OperationIsToBeDeleted,
      afvg.MfgOrderOperationIsPhase,
      afvp.Operation as MfgOrderPhaseSuperiorOperation,
      cast(afvg.NumberOfCapacities as pph_anzkap preserving type)  as NumberOfCapacities,
      afvg.NumberOfConfirmationSlips,
      afvg.OperationImportance,

      // Assignments

--    @ObjectModel.foreignKey.association: '_SuperiorOperation'
      afvg.SuperiorOperationInternalID,
      @ObjectModel.foreignKey.association: '_ProductionPlant'
      cast(afvg.Plant as pwwrk preserving type)                                 as ProductionPlant,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_WorkCenterStdVH', element: 'WorkCenterInternalID' } } ]
      @ObjectModel.foreignKey.association: '_WorkCenter_2'
      cast(afvg.WorkCenterInternalID as pph_arbid preserving type)              as WorkCenterInternalID,
      @ObjectModel.foreignKey.association: '_WorkCenterType'
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: 'WorkCenterTypeCode_2'
      afvg.WorkCenterTypeCode                                                   as WorkCenterTypeCode,   // CHAR1

      @ObjectModel.foreignKey.association: '_WorkCenterType_2'
      cast(afvg.WorkCenterTypeCode_2 as vdm_arbty preserving type)              as WorkCenterTypeCode_2, // CHAR2

      @ObjectModel.foreignKey.association: '_OperationControlProfile'
      cast(afvg.OperationControlProfile as pph_steus preserving type)           as OperationControlProfile,
      @ObjectModel.foreignKey.association: '_ControlRecipeDestination'
      afvg.ControlRecipeDestination,
      @ObjectModel.foreignKey.association: '_OperationConfirmation'
      afvg.OperationConfirmation,
      cast(afvg.NumberOfOperationConfirmations as pph_noofconf preserving type) as NumberOfOperationConfirmations,
      @ObjectModel.foreignKey.association: '_FactoryCalendar'
      cast(afvg.FactoryCalendar as cr_wfcid preserving type)                    as FactoryCalendar,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_CapacityRequirementStdVH', element: 'CapacityRequirement' } } ]
      @ObjectModel.foreignKey.association: '_CapacityRequirement'
      afvg.CapacityRequirement,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_CapRqmtItmStdVH', element: 'CapacityRequirementItem' } } ]
      @ObjectModel.foreignKey.association: '_CapacityRequirementItem'
      cast(afvg.CapacityRequirementItem as pph_bedzl preserving type)           as CapacityRequirementItem,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_ChangeMasterStdVH', element: 'ChangeNumber' } } ]
      @ObjectModel.foreignKey.association: '_ChangeNumber'
      afvg.ChangeNumber,
      cast(afvg.ObjectInternalID as pph_objnr preserving type)                  as ManufacturingObject,
      afvg.OperationTrackingNumber,

      // Assignments BOO and BOM

      @ObjectModel.foreignKey.association: '_BillOfOperationsType'
      cast(afvg.BillOfOperationsType as billofoperationstype preserving type)   as BillOfOperationsType,
      @ObjectModel.foreignKey.association: '_BillOfOperationsGroup'
      afvg.BillOfOperationsGroup,
      @ObjectModel.foreignKey.association: '_BillOfOperationsVariant'
      afvg.BillOfOperationsVariant,
      @ObjectModel.foreignKey.association: '_BillOfOperationsSequence'
      afvg.BillOfOperationsSequence,
      @ObjectModel.foreignKey.association: '_BOOOperationInternalID'
      afvg.BOOOperationInternalID,
      afvg.BillOfOperationsVersion,
      cast(afvg.BillOfMaterialCategory as pph_stlty preserving type)            as BillOfMaterialCategory,
      afvg.BillOfMaterialInternalID,
      cast(afvg.BillOfMaterialItemNodeNumber as pph_stlkn preserving type)      as BillOfMaterialItemNodeNumber,
      afvg.BOMItemNodeCount,

      // Assignments Purchasing

      afvg.ExtProcgOperationHasSubcontrg,
      @ObjectModel.foreignKey.association: '_PurchasingOrganization'
      cast(afvg.PurchasingOrganization as pph_ekorg preserving type)             as PurchasingOrganization,
      @ObjectModel.foreignKey.association: '_PurchasingGroup'
      afvg.PurchasingGroup,
--    @ObjectModel.foreignKey.association: '_PurchaseRequisition'
      afvg.PurchaseRequisition,
--    @ObjectModel.foreignKey.association: '_PurchaseRequisitionItem'
      cast(afvg.PurchaseRequisitionItem as pph_bnfpo preserving type)            as PurchaseRequisitionItem,
--    @ObjectModel.foreignKey.association: '_PurchaseOrder'
      cast(afvg.PurchasingDocument     as vdm_purchaseorder     preserving type) as PurchaseOrder,
--    @ObjectModel.foreignKey.association: '_PurchaseOrderItem'
      cast(afvg.PurchasingDocumentItem as vdm_purchaseorderitem preserving type) as PurchaseOrderItem,
--    @ObjectModel.foreignKey.association: '_PurchasingInfoRecord'
      cast(afvg.PurchasingInfoRecord as pph_infnr preserving type)               as PurchasingInfoRecord,
      afvg.PurgInfoRecdDataIsFixed,
      cast(afvg.PurchasingInfoRecordCategory as pph_esokz preserving type)       as PurchasingInfoRecordCategory,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      afvg.OpExternalProcessingPriceUnit,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_Supplier_VH', element: 'Supplier' } } ]
      @ObjectModel.foreignKey.association: '_Supplier'
      afvg.Supplier,
      @Semantics.text: true
      cast(afvg.GoodsRecipientName as pph_wempf preserving type)                 as GoodsRecipientName,
      @Semantics.text: true
      afvg.UnloadingPointName,

      // Amount and Currency

      @Semantics.currencyCode: true
      afvg.Currency as OpExternalProcessingCurrency,
      @DefaultAggregation: #SUM
      @Semantics.amount.currencyCode: 'OpExternalProcessingCurrency'
      afvg.OpExternalProcessingPrice,
      afvg.NumberOfOperationPriceUnits,

      // Assignments FI/CO

      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_CompanyCodeStdVH', element: 'CompanyCode' } } ]
      @ObjectModel.foreignKey.association: '_CompanyCode'
      afvg.CompanyCode,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_BusinessAreaStdVH', element: 'BusinessArea' } } ]
      @ObjectModel.foreignKey.association: '_BusinessArea'
      afvg.BusinessArea,
      @ObjectModel.foreignKey.association: '_ControllingArea'
      aufv.ControllingArea,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProfitCenterStdVH', element: 'ProfitCenter' } } ]
      afvg.ProfitCenter,
      afvg.RequestingCostCenter,
      afvg.CostElement,
      afvg.CostingVariant,
      afvg.CostingSheet,
      afvg.CostEstimate,
      afvg.ControllingObjectCurrency,
      @ObjectModel.foreignKey.association: '_ControllingObjectClass'
      afvg.ControllingObjectClass,
      @ObjectModel.foreignKey.association: '_FunctionalArea'
      afvg.FunctionalArea,
      afvg.TaxJurisdiction,

      // Assignments HR

      cast(afvg.EmployeeWageType    as pph_loart preserving type) as EmployeeWageType,
      @ObjectModel.foreignKey.association: '_EmployeeWageGroup'
      cast(afvg.EmployeeWageGroup   as pph_logrp preserving type) as EmployeeWageGroup,
      @ObjectModel.foreignKey.association: '_EmployeeSuitability'
      cast(afvg.EmployeeSuitability as pph_qualf preserving type) as EmployeeSuitability,
      afvg.NumberOfTimeTickets,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_PersWrkAgrmtSrchHelp', element: 'PersonWorkAgreement' } } ]
      @ObjectModel.foreignKey.association: '_Employee'
      cast(afvg.Personnel           as pph_pernr preserving type) as Personnel,
      cast(afvg.NumberOfEmployees   as pph_anzms preserving type) as NumberOfEmployees,

      // Setup and Overlapping

      @ObjectModel.foreignKey.association: '_OperationSetupGroupCategory'
      cast(afvg.OperationSetupGroupCategory as pph_rfgrp preserving type) as OperationSetupGroupCategory,
      @ObjectModel.foreignKey.association: '_OperationSetupGroup'
      cast(afvg.OperationSetupGroup         as pph_rfsch preserving type) as OperationSetupGroup,
      @ObjectModel.foreignKey.association: '_OperationSetupType'
      cast(afvg.OperationSetupType          as pph_rasch preserving type) as OperationSetupType,
      afvg.OperationOverlappingIsRequired,
      afvg.OperationOverlappingIsPossible,
      afvg.OperationsIsAlwaysOverlapping,
      afvg.OperationSplitIsRequired,
      afvg.MaximumNumberOfSplits,
      @ObjectModel.foreignKey.association: '_LeadTimeReductionStrategy'
      cast(afvg.LeadTimeReductionStrategy as pph_rstra preserving type) as LeadTimeReductionStrategy,
      afvg.OpSchedldReductionLevel,

      // Dates and Times

      @Semantics.calendarItem.dtStart: true
      cast(afvg.OpErlstSchedldExecStrtDte   as pph_fsavd preserving type) as OpErlstSchedldExecStrtDte,
      cast(afvg.OpErlstSchedldExecStrtTme   as pph_fsavz preserving type) as OpErlstSchedldExecStrtTme,
      @Semantics.calendarItem.dtStart: true
      cast(afvg.OpErlstSchedldProcgStrtDte  as pph_fssbd preserving type) as OpErlstSchedldProcgStrtDte,
      cast(afvg.OpErlstSchedldProcgStrtTme  as pph_fssbz preserving type) as OpErlstSchedldProcgStrtTme,
      @Semantics.calendarItem.dtStart: true
      cast(afvg.OpErlstSchedldTrdwnStrtDte  as pph_fssad preserving type) as OpErlstSchedldTrdwnStrtDte,
      cast(afvg.OpErlstSchedldTrdwnStrtTme  as pph_fssaz preserving type) as OpErlstSchedldTrdwnStrtTme,
      @Semantics.calendarItem.dtEnd: true
      cast(afvg.OpErlstSchedldExecEndDte    as pph_fsedd preserving type) as OpErlstSchedldExecEndDte,
      cast(afvg.OpErlstSchedldExecEndTme    as pph_fsedz preserving type) as OpErlstSchedldExecEndTme,
      @Semantics.calendarItem.dtStart: true
      cast(afvg.OpLtstSchedldExecStrtDte    as pph_ssavd preserving type) as OpLtstSchedldExecStrtDte,
      cast(afvg.OpLtstSchedldExecStrtTme    as pph_ssavz preserving type) as OpLtstSchedldExecStrtTme,
      @Semantics.calendarItem.dtStart: true
      cast(afvg.OpLtstSchedldProcgStrtDte   as pph_sssbd preserving type) as OpLtstSchedldProcgStrtDte,
      cast(afvg.OpLtstSchedldProcgStrtTme   as pph_sssbz preserving type) as OpLtstSchedldProcgStrtTme,
      @Semantics.calendarItem.dtStart: true
      cast(afvg.OpLtstSchedldTrdwnStrtDte   as pph_sssad preserving type) as OpLtstSchedldTrdwnStrtDte,
      cast(afvg.OpLtstSchedldTrdwnStrtTme   as pph_sssaz preserving type) as OpLtstSchedldTrdwnStrtTme,
      @Semantics.calendarItem.dtEnd: true
      cast(afvg.OpLtstSchedldExecEndDte     as pph_ssedd preserving type) as OpLtstSchedldExecEndDte,
      cast(afvg.OpLtstSchedldExecEndTme     as pph_ssedz preserving type) as OpLtstSchedldExecEndTme,
      @Semantics.calendarItem.dtStart: true
      cast(afvg.OperationConfirmedStartDate as pph_isavd preserving type) as OperationConfirmedStartDate,
      cast(afvg.OperationConfirmedEndDate   as pph_ieavd preserving type) as OperationConfirmedEndDate,
      @Semantics.calendarItem.dtStart: true
      cast(afvg.OpActualExecutionStartDate  as vdm_isdd preserving type)  as OpActualExecutionStartDate,
      cast(afvg.OpActualExecutionStartTime  as vdm_isdz preserving type)  as OpActualExecutionStartTime,
      @Semantics.calendarItem.dtEnd: true
      cast(afvg.OpActualSetupEndDate        as vdm_ierd preserving type)  as OpActualSetupEndDate,
      cast(afvg.OpActualSetupEndTime        as vdm_ierz preserving type)  as OpActualSetupEndTime,
      @Semantics.calendarItem.dtStart: true
      cast(afvg.OpActualProcessingStartDate as vdm_isbd preserving type)  as OpActualProcessingStartDate,
      cast(afvg.OpActualProcessingStartTime as vdm_isbz preserving type)  as OpActualProcessingStartTime,
      @Semantics.calendarItem.dtEnd: true
      cast(afvg.OpActualProcessingEndDate   as vdm_iebd preserving type)  as OpActualProcessingEndDate,
      cast(afvg.OpActualProcessingEndTime   as vdm_iebz preserving type)  as OpActualProcessingEndTime,
      @Semantics.calendarItem.dtStart: true
      cast(afvg.OpActualTeardownStartDate   as vdm_isad preserving type)  as OpActualTeardownStartDate,
      cast(afvg.OpActualTeardownStartTme    as vdm_isaz preserving type)  as OpActualTeardownStartTme,
      @Semantics.calendarItem.dtEnd: true
      cast(afvg.OpActualExecutionEndDate    as vdm_iedd preserving type)  as OpActualExecutionEndDate,
      cast(afvg.OpActualExecutionEndTime    as vdm_iedz preserving type)  as OpActualExecutionEndTime,
      // Forecast Dates and Times

      @Semantics.calendarItem.dtEnd: true
      cast(afvg.ActualForecastEndDate       as pph_pedd preserving type)  as ActualForecastEndDate,
      cast(afvg.ActualForecastEndTime       as pph_pedz preserving type)  as ActualForecastEndTime,
      @Semantics.calendarItem.dtStart: true
      cast(afvg.SchedldFcstdEarliestStartDate as pph_fpavd preserving type) as SchedldFcstdEarliestStartDate,
      cast(afvg.SchedldFcstdEarliestStartTime as pph_fpavz preserving type) as SchedldFcstdEarliestStartTime,
      @Semantics.calendarItem.dtEnd: true
      cast(afvg.SchedldFcstdEarliestEndDate   as pph_fpedd preserving type) as SchedldFcstdEarliestEndDate,
      cast(afvg.SchedldFcstdEarliestEndTime   as pph_fpedz preserving type) as SchedldFcstdEarliestEndTime,
      @Semantics.calendarItem.dtStart: true
      cast(afvg.LatestSchedldFcstdStartDate   as pph_spavd preserving type) as LatestSchedldFcstdStartDate,
      cast(afvg.SchedldFcstdLatestStartTime   as pph_spavz preserving type) as SchedldFcstdLatestStartTime,
      @Semantics.calendarItem.dtEnd: true
      cast(afvg.LatestSchedldFcstdEndDate     as pph_spedd preserving type) as LatestSchedldFcstdEndDate,
      cast(afvg.SchedldFcstdLatestEndTime     as pph_spedz preserving type) as SchedldFcstdLatestEndTime,
      // Wait Date and Times

      @Semantics.calendarItem.dtStart: true
      afvg.EarliestScheduledWaitStartDate,
      afvg.EarliestScheduledWaitStartTime,
      @Semantics.calendarItem.dtEnd: true
      afvg.EarliestScheduledWaitEndDate,
      afvg.EarliestScheduledWaitEndTime,
      @Semantics.calendarItem.dtStart: true
      afvg.LatestScheduledWaitStartDate,
      afvg.LatestScheduledWaitStartTime,
      @Semantics.calendarItem.dtEnd: true
      afvg.LatestScheduledWaitEndDate,
      afvg.LatestScheduledWaitEndTime,

      // Durations

      afvg.BreakDurationUnit,
      afvg.PlannedBreakDuration,
      afvg.ConfirmedBreakDuration,
      cast(afvg.OverlapMinimumDurationUnit as pph_dzeimu preserving type) as OverlapMinimumDurationUnit,
      afvg.OverlapMinimumDuration,
      afvg.MaximumWaitDurationUnit,
      afvg.MaximumWaitDuration,
      afvg.MinimumWaitDurationUnit,
      afvg.MinimumWaitDuration,
      afvg.StandardMoveDurationUnit,
      afvg.StandardMoveDuration,
      afvg.StandardQueueDurationUnit,
      afvg.StandardQueueDuration,
      afvg.MinimumQueueDurationUnit,
      afvg.MinimumQueueDuration,
      afvg.MinimumMoveDurationUnit,
      afvg.MinimumMoveDuration,
      afvg.OperationStandardDuration,
      afvg.OperationStandardDurationUnit,
      afvg.MinimumDuration,
      afvg.MinimumDurationUnit,
      afvg.MinimumProcessingDuration,
      afvg.MinimumProcessingDurationUnit,
      afvg.ScheduledMoveDuration,
      afvg.ScheduledMoveDurationUnit,
      afvg.ScheduledQueueDuration,
      afvg.ScheduledQueueDurationUnit,
      afvg.ScheduledWaitDuration,
      afvg.ScheduledWaitDurationUnit,
      cast(afvg.PlannedDeliveryDuration     as pph_plifz preserving type) as PlannedDeliveryDuration,
      afvg.OpPlannedSetupDurn,
      afvg.OpPlannedSetupDurnUnit,
      afvg.OpPlannedProcessingDurn,
      cast(afvg.OpPlannedProcessingDurnUnit as pph_beaze preserving type) as OpPlannedProcessingDurnUnit,
      afvg.OpPlannedTeardownDurn,
      afvg.OpPlannedTeardownDurnUnit,
      afvg.ActualForecastDuration,
      afvg.ActualForecastDurationUnit,
      afvg.ForecastProcessingDuration,
      afvg.ForecastProcessingDurationUnit,
      afvg.ForecastedStandardDuration,
      afvg.FcstdStandardDurationUnit,
      afvg.ForecastedMinimumDuration,
      afvg.ForecastedMinimumDurationUnit,

      // Offset

      @ObjectModel.foreignKey.association: '_StartDateOffsetReferenceCode'
      afvg.StartDateOffsetReferenceCode,
      @Semantics.unitOfMeasure: true
      afvg.StartDateOffsetDurationUnit,
      @Semantics.calendarItem.duration: true
      afvg.StartDateOffsetDuration,
      @ObjectModel.foreignKey.association: '_EndDateOffsetReferenceCode'
      afvg.EndDateOffsetReferenceCode,
      @Semantics.unitOfMeasure: true
      afvg.EndDateOffsetDurationUnit,
      @Semantics.calendarItem.duration: true
      afvg.EndDateOffsetDuration,

      // Quantities and UoM

      @Semantics.unitOfMeasure: true
      cast(afvg.OperationUnit as operationunit preserving type) as OperationUnit,
      afvg.OpQtyToBaseQtyDnmntr,
      afvg.OpQtyToBaseQtyNmrtr,
      afvg.OperationScrapPercent,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      @DefaultAggregation: #MAX
      afvg.OperationReferenceQuantity,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      @DefaultAggregation: #SUM
      afvg.OpPlannedTotalQuantity,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      @DefaultAggregation: #SUM
      afvg.OpPlannedScrapQuantity,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      @DefaultAggregation: #SUM
      (afvg.OpPlannedTotalQuantity - afvg.OpPlannedScrapQuantity) as OpPlannedYieldQuantity,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      @DefaultAggregation: #SUM
      afvg.OpTotalConfirmedYieldQty,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      @DefaultAggregation: #SUM
      afvg.OpTotalConfirmedScrapQty,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      @DefaultAggregation: #SUM
      afvg.OperationConfirmedReworkQty,
      @Semantics.unitOfMeasure: true
      cast(aufv.ProductionUnit as productionunit preserving type) as ProductionUnit,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @DefaultAggregation: #SUM
      afvg.OpTotConfdYieldQtyInOrdQtyUnit,

      // Confirmed Work Quantities and UoM

      @Semantics.unitOfMeasure: true
      afvg.OpWorkQuantityUnit1,
      @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit1'
      @DefaultAggregation: #SUM
      afvg.OpConfirmedWorkQuantity1,
      afvg.NoFurtherOpWorkQuantity1IsExpd,
      @Semantics.unitOfMeasure: true
      afvg.OpWorkQuantityUnit2,
      @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit2'
      @DefaultAggregation: #SUM
      afvg.OpConfirmedWorkQuantity2,
      afvg.NoFurtherOpWorkQuantity2IsExpd,
      @Semantics.unitOfMeasure: true
      afvg.OpWorkQuantityUnit3,
      @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit3'
      @DefaultAggregation: #SUM
      afvg.OpConfirmedWorkQuantity3,
      afvg.NoFurtherOpWorkQuantity3IsExpd,
      @Semantics.unitOfMeasure: true
      afvg.OpWorkQuantityUnit4,
      @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit4'
      @DefaultAggregation: #SUM
      afvg.OpConfirmedWorkQuantity4,
      afvg.NoFurtherOpWorkQuantity4IsExpd,
      @Semantics.unitOfMeasure: true
      afvg.OpWorkQuantityUnit5,
      @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit5'
      @DefaultAggregation: #SUM
      afvg.OpConfirmedWorkQuantity5,
      afvg.NoFurtherOpWorkQuantity5IsExpd,
      @Semantics.unitOfMeasure: true
      afvg.OpWorkQuantityUnit6,
      @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit6'
      @DefaultAggregation: #SUM
      afvg.OpConfirmedWorkQuantity6,
      afvg.NoFurtherOpWorkQuantity6IsExpd,

      // Work Quantities and UoM

      @Semantics.unitOfMeasure: true
      cast(afvg.WorkCenterStandardWorkQtyUnit1 as pph_vge01 preserving type) as WorkCenterStandardWorkQtyUnit1,
      @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit1'
      @DefaultAggregation: #SUM
      afvg.WorkCenterStandardWorkQty1,
      afvg.CostCtrActivityType1,
      @Semantics.unitOfMeasure: true
      cast(afvg.WorkCenterStandardWorkQtyUnit2 as pph_vge02 preserving type) as WorkCenterStandardWorkQtyUnit2,
      @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit2'
      @DefaultAggregation: #SUM
      afvg.WorkCenterStandardWorkQty2,
      afvg.CostCtrActivityType2,
      @Semantics.unitOfMeasure: true
      cast(afvg.WorkCenterStandardWorkQtyUnit3 as pph_vge03 preserving type) as WorkCenterStandardWorkQtyUnit3,
      @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit3'
      @DefaultAggregation: #SUM
      afvg.WorkCenterStandardWorkQty3,
      afvg.CostCtrActivityType3,
      @Semantics.unitOfMeasure: true
      cast(afvg.WorkCenterStandardWorkQtyUnit4 as pph_vge04 preserving type) as WorkCenterStandardWorkQtyUnit4,
      @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit4'
      @DefaultAggregation: #SUM
      afvg.WorkCenterStandardWorkQty4,
      afvg.CostCtrActivityType4,
      @Semantics.unitOfMeasure: true
      cast(afvg.WorkCenterStandardWorkQtyUnit5 as pph_vge05 preserving type) as WorkCenterStandardWorkQtyUnit5,
      @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit5'
      @DefaultAggregation: #SUM
      afvg.WorkCenterStandardWorkQty5,
      afvg.CostCtrActivityType5,
      @Semantics.unitOfMeasure: true
      cast(afvg.WorkCenterStandardWorkQtyUnit6 as pph_vge06 preserving type) as WorkCenterStandardWorkQtyUnit6,
      @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit6'
      @DefaultAggregation: #SUM
      afvg.WorkCenterStandardWorkQty6,
      afvg.CostCtrActivityType6,

      // Forecast Work Quantities

      @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit1'
      @DefaultAggregation: #SUM
      afvg.ForecastWorkQuantity1,
      @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit2'
      @DefaultAggregation: #SUM
      afvg.ForecastWorkQuantity2,
      @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit3'
      @DefaultAggregation: #SUM
      afvg.ForecastWorkQuantity3,
      @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit4'
      @DefaultAggregation: #SUM
      afvg.ForecastWorkQuantity4,
      @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit5'
      @DefaultAggregation: #SUM
      afvg.ForecastWorkQuantity5,
      @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit6'
      @DefaultAggregation: #SUM
      afvg.ForecastWorkQuantity6,

      // Business Process

      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_BusinessProcessStdVH', element: 'BusinessProcess' } } ]
      @ObjectModel.foreignKey.association: '_BusinessProcess'
      afvg.BusinessProcess,
      @Semantics.unitOfMeasure: true
      afvg.BusinessProcessEntryUnit,
      @Semantics.quantity.unitOfMeasure: 'BusinessProcessEntryUnit'
      @DefaultAggregation: #SUM
      afvg.BusinessProcessConfirmedQty,
      afvg.NoFurtherBusinessProcQtyIsExpd,
      @Semantics.unitOfMeasure: true
      afvg.BusinessProcRemainingQtyUnit,
      @Semantics.quantity.unitOfMeasure: 'BusinessProcRemainingQtyUnit'
      @DefaultAggregation: #SUM
      cast(afvg.BusinessProcessRemainingQty as pph_oprz1 preserving type) as BusinessProcessRemainingQty,

      // OAN data

--    @ObjectModel.foreignKey.association: '_SetupOpActyNtwkInstance'
      afvg.SetupOpActyNtwkInstance,
--    @ObjectModel.foreignKey.association: '_ProduceOpActyNtwkInstance'
      afvg.ProduceOpActyNtwkInstance,
--    @ObjectModel.foreignKey.association: '_TeardownOpActyNtwkInstance'
      afvg.TeardownOpActyNtwkInstance,

      // Free-defined fields

      afvg.FreeDefinedTableFieldSemantic,
      afvg.FreeDefinedAttribute01,
      afvg.FreeDefinedAttribute02,
      afvg.FreeDefinedAttribute03,
      afvg.FreeDefinedAttribute04,
      @Semantics.unitOfMeasure: true
      afvg.FreeDefinedQuantity1Unit,
      @Semantics.quantity.unitOfMeasure: 'FreeDefinedQuantity1Unit'
      @DefaultAggregation: #SUM
      afvg.FreeDefinedQuantity1,
      @Semantics.unitOfMeasure: true
      afvg.FreeDefinedQuantity2Unit,
      @Semantics.quantity.unitOfMeasure: 'FreeDefinedQuantity2Unit'
      @DefaultAggregation: #SUM
      afvg.FreeDefinedQuantity2,
      @Semantics.currencyCode: true
      afvg.FreeDefinedAmount1Currency,
      @Semantics.amount.currencyCode: 'FreeDefinedAmount1Currency'
      @DefaultAggregation: #SUM
      afvg.FreeDefinedAmount1,
      afvg.FreeDefinedAmount2Currency,
      @Semantics.amount.currencyCode: 'FreeDefinedAmount2Currency'
      @DefaultAggregation: #SUM
      afvg.FreeDefinedAmount2,
      afvg.FreeDefinedDate1,
      afvg.FreeDefinedDate2,
      afvg.FreeDefinedIndicator1,
      afvg.FreeDefinedIndicator2,

      // Associations

      _OrdInternalBillOfOperations,
      _MfgOrder,
      _MfgOrderSequence,
      _MfgOrderCategory,
      _MfgOrderType,
      _SuperiorOperation,
      _OperationStandardTextCode,
      _ProductionPlant,
      _ProductionSupervisor,
      _ProductionUnit,
      _OperationUnit,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_WorkCenter_2'
      _WorkCenter,
      _WorkCenter_2,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_WorkCenterType_2'
      _WorkCenterType,
      _WorkCenterType_2,
      _OperationControlProfile,
      _BillOfOperationsType,
      _BillOfOperationsGroup,
      _BillOfOperationsVariant,
      _BillOfOperationsSequence,
      @Consumption.hidden: true
      _BOOOperationInternalID,
      _MRPController,
      _ResponsiblePlannerGroup,
      _ControlRecipeDestination,
      _OperationConfirmation,
      _FactoryCalendar,
      _CapacityRequirement,
      _CapacityRequirementItem,
      _ChangeNumber,
      _PurchasingOrganization,
      _PurchasingGroup,
      _PurchaseOrder,
      _PurchaseOrderItem,
      _PurchaseRequisition,
      _PurchaseRequisitionItem,
      _PurchasingInfoRecord,
      _Supplier,
      @Consumption.hidden: true
      _SupplierCompanyByPlant,
      _OpExternalProcessingCurrency,
      _EmployeeWageGroup,
      _EmployeeSuitability,
      _Employee,
      _CompanyCode,
      _ProfitCenter,
      _RequestingCostCenter,
      _ControllingArea,
      _ControllingObjectClass,
      _FunctionalArea,
      _BusinessArea,
      _BusinessProcess,
      _BusinessProcessEntryUnit,
      _OperationSetupGroupCategory,
      _OperationSetupGroup,
      _OperationSetupType,
      _LeadTimeReductionStrategy,
      _StartDateOffsetReferenceCode,
      _EndDateOffsetReferenceCode,
      _Language,
      _SetupOpActyNtwkInstance,
      _ProduceOpActyNtwkInstance,
      _TeardownOpActyNtwkInstance,
      afvg._LongText
}
where
     aufv.ManufacturingOrderCategory = '10'
  or aufv.ManufacturingOrderCategory = '40'; //Manufacturing orders only