P_ProcOrderOperationDurn
Process Order Operation Durations
P_ProcOrderOperationDurn is a Composite CDS View that provides data about "Process Order Operation Durations" in SAP S/4HANA. It reads from 2 data sources (I_OrderOperation, P_ProcOrdAORList_2) and exposes 341 fields with key fields MfgOrderInternalID, OrderOperationInternalID. It has 77 associations to related views. Part of development package VDM_PP_PROC_ORD_MNG.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_OrderOperation | afvg | from |
| P_ProcOrdAORList_2 | aufv | inner |
Associations (77)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_OrderInternalID | _OrderInternalID | $projection.MfgOrderInternalID = _OrderInternalID.OrderInternalID |
| [1..1] | I_MfgOrder | _MfgOrder | $projection.ManufacturingOrder = _MfgOrder.ManufacturingOrder |
| [1..1] | I_MfgOrderCategory | _MfgOrderCategory | $projection.ManufacturingOrderCategory = _MfgOrderCategory.ManufacturingOrderCategory |
| [1..1] | I_MfgOrderType | _MfgOrderType | $projection.ManufacturingOrderType = _MfgOrderType.ManufacturingOrderType |
| [0..1] | I_OrderOperationBasic | _SuperiorOperation | $projection.MfgOrderInternalID = _SuperiorOperation.OrderInternalID and $projection.SuperiorOperationInternalID = _SuperiorOperation.OrderOperationInternalID |
| [0..1] | I_OperationStandardText | _OperationStandardTextCode | $projection.OperationStandardTextCode = _OperationStandardTextCode.OperationStandardTextCode |
| [1..1] | I_Plant | _Plant | $projection.Plant = _Plant.Plant |
| [1..1] | I_Plant | _ProductionPlant | $projection.ProductionPlant = _ProductionPlant.Plant |
| [1..1] | I_UnitOfMeasure | _ProductionUnit | $projection.ProductionUnit = _ProductionUnit.UnitOfMeasure |
| [1..1] | I_UnitOfMeasure | _OperationUnit | $projection.OperationUnit = _OperationUnit.UnitOfMeasure |
| [0..1] | I_ProductionSupervisor | _ProductionSupervisor | $projection.Plant = _ProductionSupervisor.Plant and $projection.ProductionSupervisor = _ProductionSupervisor.ProductionSupervisor |
| [0..1] | I_MRPController | _MRPController | $projection.Plant = _MRPController.Plant and $projection.MRPController = _MRPController.MRPController |
| [0..1] | I_ResponsiblePlannerGroup | _ResponsiblePlannerGroup | $projection.Plant = _ResponsiblePlannerGroup.Plant and $projection.ResponsiblePlannerGroup = _ResponsiblePlannerGroup.ResponsiblePlannerGroup |
| [0..1] | I_WorkCenterType | _WorkCenterType | $projection.WorkCenterTypeCode = _WorkCenterType.WorkCenterTypeCode |
| [0..1] | I_WorkCenter | _WorkCenter | $projection.WorkCenterTypeCode = _WorkCenter.WorkCenterTypeCode and $projection.WorkCenterInternalID = _WorkCenter.WorkCenterInternalID and $projection.WorkCenterTypeCode = 'A' |
| [1..1] | I_OperationControlProfile | _OperationControlProfile | $projection.OperationControlProfile = _OperationControlProfile.OperationControlProfile |
| [0..1] | I_BillOfOperationsType | _BillOfOperationsType | $projection.BillOfOperationsType = _BillOfOperationsType.BillOfOperationsType |
| [0..1] | I_BillOfOperationsGroup | _BillOfOperationsGroup | $projection.BillOfOperationsType = _BillOfOperationsGroup.BillOfOperationsType and $projection.BillOfOperationsGroup = _BillOfOperationsGroup.BillOfOperationsGroup |
| [0..1] | I_MfgBillOfOperations | _BillOfOperationsVariant | $projection.BillOfOperationsType = _BillOfOperationsVariant.BillOfOperationsType and $projection.BillOfOperationsGroup = _BillOfOperationsVariant.BillOfOperationsGroup and $projection.BillOfOperationsVariant = _BillOfOperationsVariant.BillOfOperationsVariant |
| [0..1] | I_MfgBillOfOperationsSequence | _BillOfOperationsSequence | $projection.BillOfOperationsType = _BillOfOperationsSequence.BillOfOperationsType and $projection.BillOfOperationsGroup = _BillOfOperationsSequence.BillOfOperationsGroup and $projection.BillOfOperationsVariant = _BillOfOperationsSequence.BillOfOperationsVariant and $projection.BillOfOperationsSequence = _BillOfOperationsSequence.BillOfOperationsSequence |
| [0..1] | I_BOOOperationInternalID | _BOOOperationInternalID | $projection.BillOfOperationsType = _BOOOperationInternalID.BillOfOperationsType and $projection.BillOfOperationsGroup = _BOOOperationInternalID.BillOfOperationsGroup and $projection.BOOOperationInternalID = _BOOOperationInternalID.BOOOperationInternalID |
| [0..1] | I_FactoryCalendar | _FactoryCalendar | $projection.FactoryCalendar = _FactoryCalendar.FactoryCalendar |
| [0..1] | I_CapacityRequirement | _CapacityRequirement | $projection.CapacityRequirement = _CapacityRequirement.CapacityRequirement |
| [0..1] | I_CapacityRequirementItem | _CapacityRequirementItem | $projection.CapacityRequirement = _CapacityRequirementItem.CapacityRequirement and $projection.CapacityRequirementItem = _CapacityRequirementItem.CapacityRequirementItem |
| [0..1] | I_ControlRecipeDestination | _ControlRecipeDestination | $projection.Plant = _ControlRecipeDestination.Plant and $projection.ControlRecipeDestination = _ControlRecipeDestination.ControlRecipeDestination |
| [0..1] | I_ConfirmationGroup | _OperationConfirmation | $projection.OperationConfirmation = _OperationConfirmation.ConfirmationGroup |
| [0..1] | I_ChangeMaster | _ChangeNumber | $projection.ChangeNumber = _ChangeNumber.ChangeNumber |
| [0..1] | I_PurchaseOrderAPI01 | _PurchaseOrder | $projection.PurchaseOrder = _PurchaseOrder.PurchaseOrder |
| [0..1] | I_PurchaseOrderItemAPI01 | _PurchaseOrderItem | $projection.PurchaseOrder = _PurchaseOrderItem.PurchaseOrder and $projection.PurchaseOrderItem = _PurchaseOrderItem.PurchaseOrderItem |
| [0..1] | I_Purchaserequisition | _PurchaseRequisition | $projection.PurchaseRequisition = _PurchaseRequisition.PurchaseRequisition |
| [0..1] | I_PurchaseRequisition_Api01 | _PurchaseRequisitionItem | $projection.PurchaseRequisition = _PurchaseRequisitionItem.PurchaseRequisition and $projection.PurchaseRequisitionItem = _PurchaseRequisitionItem.PurchaseRequisitionItem |
| [0..1] | I_PurchaseRequisitionItemAPI01 | _PurchaseRequisitionItem2 | $projection.PurchaseRequisition = _PurchaseRequisitionItem2.PurchaseRequisition and $projection.PurchaseRequisitionItem = _PurchaseRequisitionItem2.PurchaseRequisitionItem |
| [0..1] | I_PurchasingOrganization | _PurchasingOrganization | $projection.PurchasingOrganization = _PurchasingOrganization.PurchasingOrganization |
| [0..1] | I_PurchasingGroup | _PurchasingGroup | $projection.PurchasingGroup = _PurchasingGroup.PurchasingGroup |
| [0..1] | I_PurchasingInfoRecordApi01 | _PurchasingInfoRecord | $projection.PurchasingInfoRecord = _PurchasingInfoRecord.PurchasingInfoRecord |
| [0..1] | I_Supplier | _Supplier | $projection.Supplier = _Supplier.Supplier |
| [0..1] | I_SupplierCompanyByPlant | _SupplierCompanyByPlant | $projection.Plant = _SupplierCompanyByPlant.Plant and $projection.Supplier = _SupplierCompanyByPlant.Supplier |
| [0..1] | I_EmployeeWageGroup | _EmployeeWageGroup | $projection.Plant = _EmployeeWageGroup.Plant and $projection.EmployeeWageGroup = _EmployeeWageGroup.EmployeeWageGroup |
| [0..1] | I_EmployeeSuitability | _EmployeeSuitability | $projection.Plant = _EmployeeSuitability.Plant and $projection.EmployeeSuitability = _EmployeeSuitability.EmployeeSuitability |
| [0..1] | I_PersonWorkAgreement_1 | _Employee | $projection.Personnel = _Employee.PersonWorkAgreement |
| [0..1] | I_CompanyCode | _CompanyCode | $projection.CompanyCode = _CompanyCode.CompanyCode |
| [0..*] | I_ProfitCenter | _ProfitCenter | $projection.ControllingArea = _ProfitCenter.ControllingArea and $projection.ProfitCenter = _ProfitCenter.ProfitCenter |
| [0..*] | I_CostCenter | _RequestingCostCenter | $projection.ControllingArea = _RequestingCostCenter.ControllingArea and $projection.RequestingCostCenter = _RequestingCostCenter.CostCenter |
| [0..1] | I_CostElement | _CostElement | $projection.ControllingArea = _CostElement.ControllingArea and $projection.CostElement = _CostElement.CostElement |
| [0..1] | I_CostingVariant | _CostingVariant | $projection.CostingVariant = _CostingVariant.CostingVariant |
| [0..1] | I_ControllingArea | _ControllingArea | $projection.ControllingArea = _ControllingArea.ControllingArea |
| [0..1] | I_ControllingObjectClass | _ControllingObjectClass | $projection.ControllingObjectClass = _ControllingObjectClass.ControllingObjectClass |
| [0..1] | I_Currency | _ControllingObjectCurrency | $projection.ControllingObjectCurrency = _ControllingObjectCurrency.Currency |
| [0..1] | I_Currency | _OpExternalProcessingCurrency | $projection.OpExternalProcessingCurrency = _OpExternalProcessingCurrency.Currency |
| [0..1] | I_FunctionalArea | _FunctionalArea | $projection.FunctionalArea = _FunctionalArea.FunctionalArea |
| [0..1] | I_BusinessArea | _BusinessArea | $projection.BusinessArea = _BusinessArea.BusinessArea |
| [0..1] | I_BusinessProcess | _BusinessProcess | $projection.ControllingArea = _BusinessProcess.ControllingArea and $projection.BusinessProcess = _BusinessProcess.BusinessProcess |
| [0..1] | I_UnitOfMeasure | _BusinessProcessEntryUnit | $projection.BusinessProcessEntryUnit = _BusinessProcessEntryUnit.UnitOfMeasure |
| [0..1] | I_OperationSetupGroupCategory | _OperationSetupGroupCategory | $projection.Plant = _OperationSetupGroupCategory.Plant and $projection.OperationSetupGroupCategory = _OperationSetupGroupCategory.OperationSetupGroupCategory |
| [0..1] | I_OperationSetupGroup | _OperationSetupGroup | $projection.OperationSetupGroup = _OperationSetupGroup.OperationSetupGroup and $projection.OperationSetupGroupCategory = _OperationSetupGroup.OperationSetupGroupCategory and $projection.Plant = _OperationSetupGroup.Plant |
| [0..1] | I_OperationSetupType | _OperationSetupType | $projection.OperationSetupType = _OperationSetupType.OperationSetupType and $projection.Plant = _OperationSetupType.Plant |
| [0..1] | I_LeadTimeReductionStrategy | _LeadTimeReductionStrategy | $projection.LeadTimeReductionStrategy = _LeadTimeReductionStrategy.LeadTimeReductionStrategy and $projection.Plant = _LeadTimeReductionStrategy.Plant |
| [0..1] | I_OperationDateOffsetRefCode | _StartDateOffsetReferenceCode | $projection.StartDateOffsetReferenceCode = _StartDateOffsetReferenceCode.OperationDateOffsetRefCode |
| [0..1] | I_OperationDateOffsetRefCode | _EndDateOffsetReferenceCode | $projection.EndDateOffsetReferenceCode = _EndDateOffsetReferenceCode.OperationDateOffsetRefCode |
| [0..1] | I_StandardWorkFmlaParamGroup | _StandardWorkFmlaParamGroup | $projection.StandardWorkFormulaParamGroup = _StandardWorkFmlaParamGroup.StandardWorkFormulaParamGroup |
| [0..1] | I_Language | _Language | $projection.Language = _Language.Language |
| [0..1] | I_OpActyNtwkInstance | _SetupOpActyNtwkInstance | $projection.SetupOpActyNtwkInstance = _SetupOpActyNtwkInstance.OpActyNtwkInstance |
| [0..1] | I_OpActyNtwkInstance | _ProduceOpActyNtwkInstance | $projection.ProduceOpActyNtwkInstance = _ProduceOpActyNtwkInstance.OpActyNtwkInstance |
| [0..1] | I_OpActyNtwkInstance | _TeardownOpActyNtwkInstance | $projection.TeardownOpActyNtwkInstance = _TeardownOpActyNtwkInstance.OpActyNtwkInstance |
| [0..1] | I_UnitOfMeasure | _FreeDefinedQuantity1Unit | $projection.FreeDefinedQuantity1Unit = _FreeDefinedQuantity1Unit.UnitOfMeasure |
| [0..1] | I_UnitOfMeasure | _FreeDefinedQuantity2Unit | $projection.FreeDefinedQuantity2Unit = _FreeDefinedQuantity2Unit.UnitOfMeasure |
| [0..1] | I_Currency | _FreeDefinedAmount1Currency | $projection.FreeDefinedAmount1Currency = _FreeDefinedAmount1Currency.Currency |
| [0..1] | I_Currency | _FreeDefinedAmount2Currency | $projection.FreeDefinedAmount2Currency = _FreeDefinedAmount2Currency.Currency -- to root: Header |
| [1..1] | I_ManufacturingOrder | _ManufacturingOrder | $projection.ManufacturingOrder = _ManufacturingOrder.ManufacturingOrder and _ManufacturingOrder.ManufacturingOrderCategory = '40' -- to parent: Sequence |
| [1..1] | I_MfgOrderSequence | _MfgOrderSequence | $projection.ManufacturingOrder = _MfgOrderSequence.ManufacturingOrder and $projection.ManufacturingOrderSequence = _MfgOrderSequence.ManufacturingOrderSequence and _MfgOrderSequence.ManufacturingOrderCategory = '40' -- to child: Components |
| [0..*] | I_MfgOrderOperationComponent | _MfgOrderOpComponent | $projection.ManufacturingOrder = _MfgOrderOpComponent.ManufacturingOrder and $projection.ManufacturingOrderSequence = _MfgOrderOpComponent.ManufacturingOrderSequence and $projection.ManufacturingOrderOperation = _MfgOrderOpComponent.ManufacturingOrderOperation and _MfgOrderOpComponent.ManufacturingOrderCategory = '40' -- to child: Prodn. resource/tools |
| [0..*] | I_MfgOrderOperationPRT | _MfgOrderOperationPRT | $projection.ManufacturingOrder = _MfgOrderOperationPRT.ManufacturingOrder and $projection.ManufacturingOrderSequence = _MfgOrderOperationPRT.ManufacturingOrderSequence and $projection.ManufacturingOrderOperation = _MfgOrderOperationPRT.ManufacturingOrderOperation and _MfgOrderOperationPRT.ManufacturingOrderCategory = '40' -- to child: Trigger points |
| [0..*] | I_MfgOrderOperationTrggrPoint | _MfgOrderOpTriggerPoint | $projection.ManufacturingOrder = _MfgOrderOpTriggerPoint.ManufacturingOrder and $projection.ManufacturingOrderSequence = _MfgOrderOpTriggerPoint.ManufacturingOrderSequence and $projection.ManufacturingOrderOperation = _MfgOrderOpTriggerPoint.ManufacturingOrderOperation and _MfgOrderOpTriggerPoint.ManufacturingOrderCategory = '40' -- to child: Document links |
| [0..*] | I_MfgOrderOpDocInfoRecdObjLink | _MfgOrderOpDocInfoRecord | $projection.ManufacturingOrder = _MfgOrderOpDocInfoRecord.ManufacturingOrder and $projection.ManufacturingOrderSequence = _MfgOrderOpDocInfoRecord.ManufacturingOrderSequence and $projection.ManufacturingOrderOperation = _MfgOrderOpDocInfoRecord.ManufacturingOrderOperation and _MfgOrderOpDocInfoRecord.ManufacturingOrderCategory = '40' -- to child: Confirmations |
| [0..*] | I_MfgOrderOperationConf | _MfgOrderOperationConf | $projection.ManufacturingOrder = _MfgOrderOperationConf.ManufacturingOrder and $projection.ManufacturingOrderSequence = _MfgOrderOperationConf.ManufacturingOrderSequence and $projection.ManufacturingOrderOperation = _MfgOrderOperationConf.ManufacturingOrderOperation and _MfgOrderOperationConf.ManufacturingOrderCategory = '40' -- to extension |
| [1..1] | E_OrderOperation | _Extension | $projection.MfgOrderInternalID = _Extension.OrderInternalID and $projection.OrderOperationInternalID = _Extension.OrderOperationInternalID |
| [0..1] | I_Material | _Material | $projection.Material = _Material.Material |
Annotations (10)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PPOROPDURN | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #NOT_REQUIRED | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.private | true | view |
Fields (341)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | MfgOrderInternalID | |||
| KEY | OrderOperationInternalID | |||
| ManufacturingOrder | ||||
| ManufacturingOrderSequence | ||||
| MfgOrderOperationOrSubOp | afvc | Operation | ||
| ManufacturingOrderCategory | ||||
| ManufacturingOrderType | ||||
| ManufacturingOrderTypeName | ||||
| ProductionPlant | ||||
| ProductionPlantName | _ProductionPlant | PlantName | ||
| PlantTimeZone | ||||
| ProductionSupervisor | ||||
| ProductionSupervisorName | _ProductionSupervisor | ProductionSupervisorName | ||
| MRPController | ||||
| MRPControllerName | _MRPController | MRPControllerName | ||
| ResponsiblePlannerGroup | ||||
| ProductConfiguration | ||||
| InspectionLot | P_ProcOrdAORList_2 | InspectionLot | ||
| ManufacturingOrderImportance | P_ProcOrdAORList_2 | PriorityCode | ||
| MfgOrderOperationText | ||||
| Language | I_OrderOperation | Language | ||
| OperationStandardTextCode | ||||
| OperationIsToBeDeleted | I_OrderOperation | OperationIsToBeDeleted | ||
| MfgOrderOperationIsPhase | I_OrderOperation | MfgOrderOperationIsPhase | ||
| MfgOrderPhaseSuperiorOperation | ||||
| SuperiorOperationText | afvp | OperationText | ||
| NumberOfCapacities | ||||
| NumberOfConfirmationSlips | I_OrderOperation | NumberOfConfirmationSlips | ||
| OperationImportance | I_OrderOperation | OperationImportance | ||
| SuperiorOperationInternalID | I_OrderOperation | SuperiorOperationInternalID | ||
| Plant | I_OrderOperation | Plant | ||
| WorkCenterInternalID | ||||
| WorkCenterTypeCode | ||||
| OperationControlProfile | ||||
| OperationControlProfileName | ||||
| ControlRecipeDestination | I_OrderOperation | ControlRecipeDestination | ||
| OperationConfirmation | I_OrderOperation | OperationConfirmation | ||
| NumberOfOperationConfirmations | ||||
| FactoryCalendar | ||||
| CapacityRequirement | I_OrderOperation | CapacityRequirement | ||
| CapacityRequirementItem | ||||
| ChangeNumber | I_OrderOperation | ChangeNumber | ||
| ObjectInternalID | ||||
| OperationTrackingNumber | I_OrderOperation | OperationTrackingNumber | ||
| BillOfOperationsType | ||||
| BillOfOperationsGroup | I_OrderOperation | BillOfOperationsGroup | ||
| BillOfOperationsVariant | I_OrderOperation | BillOfOperationsVariant | ||
| BillOfOperationsSequence | ||||
| BOOOperationInternalID | I_OrderOperation | BOOOperationInternalID | ||
| BillOfOperationsVersion | I_OrderOperation | BillOfOperationsVersion | ||
| BillOfMaterialCategory | ||||
| BillOfMaterialInternalID | I_OrderOperation | BillOfMaterialInternalID | ||
| BillOfMaterialItemNodeNumber | ||||
| BOMItemNodeCount | I_OrderOperation | BOMItemNodeCount | ||
| ExtProcgOperationHasSubcontrg | I_OrderOperation | ExtProcgOperationHasSubcontrg | ||
| PurchasingOrganization | ||||
| PurchasingGroup | I_OrderOperation | PurchasingGroup | ||
| PurchaseRequisition | ||||
| PurgInfoRecdDataIsFixed | ||||
| PurchasingInfoRecordCategory | ||||
| Supplier | I_OrderOperation | Supplier | ||
| GoodsRecipientName | ||||
| UnloadingPointName | I_OrderOperation | UnloadingPointName | ||
| OpExternalProcessingCurrency | I_OrderOperation | Currency | ||
| OpExternalProcessingPrice | I_OrderOperation | OpExternalProcessingPrice | ||
| NumberOfOperationPriceUnits | I_OrderOperation | NumberOfOperationPriceUnits | ||
| CompanyCode | I_OrderOperation | CompanyCode | ||
| BusinessArea | I_OrderOperation | BusinessArea | ||
| ControllingArea | P_ProcOrdAORList_2 | ControllingArea | ||
| ProfitCenter | ||||
| RequestingCostCenter | ||||
| CostElement | I_OrderOperation | CostElement | ||
| CostingVariant | I_OrderOperation | CostingVariant | ||
| CostingSheet | I_OrderOperation | CostingSheet | ||
| CostEstimate | I_OrderOperation | CostEstimate | ||
| ControllingObjectCurrency | I_OrderOperation | ControllingObjectCurrency | ||
| ControllingObjectClass | ||||
| FunctionalArea | I_OrderOperation | FunctionalArea | ||
| TaxJurisdiction | I_OrderOperation | TaxJurisdiction | ||
| EmployeeWageType | ||||
| EmployeeWageGroup | ||||
| EmployeeSuitability | ||||
| NumberOfTimeTickets | I_OrderOperation | NumberOfTimeTickets | ||
| Personnel | ||||
| NumberOfEmployees | ||||
| OperationSetupGroupCategory | ||||
| OperationSetupGroup | ||||
| OperationSetupType | ||||
| OperationOverlappingIsRequired | I_OrderOperation | OperationOverlappingIsRequired | ||
| OperationOverlappingIsPossible | I_OrderOperation | OperationOverlappingIsPossible | ||
| OperationsIsAlwaysOverlapping | I_OrderOperation | OperationsIsAlwaysOverlapping | ||
| OperationSplitIsRequired | I_OrderOperation | OperationSplitIsRequired | ||
| MaximumNumberOfSplits | I_OrderOperation | MaximumNumberOfSplits | ||
| LeadTimeReductionStrategy | ||||
| OpSchedldReductionLevel | I_OrderOperation | OpSchedldReductionLevel | ||
| OpErlstSchedldExecStrtDte | ||||
| OpErlstSchedldExecStrtTme | ||||
| OpErlstSchedldProcgStrtDte | ||||
| OpErlstSchedldProcgStrtTme | ||||
| OpErlstSchedldTrdwnStrtDte | ||||
| OpErlstSchedldTrdwnStrtTme | ||||
| OpErlstSchedldExecEndDte | ||||
| OpErlstSchedldExecEndTme | ||||
| OpLtstSchedldExecStrtDte | ||||
| OpLtstSchedldExecStrtTme | ||||
| OpLtstSchedldProcgStrtDte | ||||
| OpLtstSchedldProcgStrtTme | ||||
| OpLtstSchedldTrdwnStrtDte | ||||
| OpLtstSchedldTrdwnStrtTme | ||||
| OpLtstSchedldExecEndDte | ||||
| OpLtstSchedldExecEndTme | ||||
| SchedldFcstdEarliestStartDate | ||||
| SchedldFcstdEarliestStartTime | ||||
| SchedldFcstdEarliestEndDate | ||||
| SchedldFcstdEarliestEndTime | ||||
| LatestSchedldFcstdStartDate | ||||
| SchedldFcstdLatestStartTime | ||||
| LatestSchedldFcstdEndDate | ||||
| SchedldFcstdLatestEndTime | ||||
| OperationConfirmedStartDate | ||||
| OperationConfirmedEndDate | ||||
| OpActualExecutionStartDate | I_OrderOperation | OpActualExecutionStartDate | ||
| OpActualExecutionStartTime | I_OrderOperation | OpActualExecutionStartTime | ||
| OpActualSetupEndDate | I_OrderOperation | OpActualSetupEndDate | ||
| OpActualSetupEndTime | I_OrderOperation | OpActualSetupEndTime | ||
| OpActualProcessingStartDate | I_OrderOperation | OpActualProcessingStartDate | ||
| OpActualProcessingStartTime | I_OrderOperation | OpActualProcessingStartTime | ||
| OpActualProcessingEndDate | I_OrderOperation | OpActualProcessingEndDate | ||
| OpActualProcessingEndTime | I_OrderOperation | OpActualProcessingEndTime | ||
| OpActualTeardownStartDate | I_OrderOperation | OpActualTeardownStartDate | ||
| OpActualTeardownStartTme | I_OrderOperation | OpActualTeardownStartTme | ||
| OpActualExecutionEndDate | I_OrderOperation | OpActualExecutionEndDate | ||
| OpActualExecutionEndTime | I_OrderOperation | OpActualExecutionEndTime | ||
| EarliestScheduledWaitStartDate | I_OrderOperation | EarliestScheduledWaitStartDate | ||
| EarliestScheduledWaitStartTime | I_OrderOperation | EarliestScheduledWaitStartTime | ||
| EarliestScheduledWaitEndDate | I_OrderOperation | EarliestScheduledWaitEndDate | ||
| EarliestScheduledWaitEndTime | I_OrderOperation | EarliestScheduledWaitEndTime | ||
| LatestScheduledWaitStartDate | I_OrderOperation | LatestScheduledWaitStartDate | ||
| LatestScheduledWaitStartTime | I_OrderOperation | LatestScheduledWaitStartTime | ||
| LatestScheduledWaitEndDate | I_OrderOperation | LatestScheduledWaitEndDate | ||
| LatestScheduledWaitEndTime | I_OrderOperation | LatestScheduledWaitEndTime | ||
| BreakDurationUnit | I_OrderOperation | BreakDurationUnit | ||
| PlannedBreakDuration | I_OrderOperation | PlannedBreakDuration | ||
| ConfirmedBreakDuration | I_OrderOperation | ConfirmedBreakDuration | ||
| OverlapMinimumDurationUnit | ||||
| OverlapMinimumDuration | I_OrderOperation | OverlapMinimumDuration | ||
| MaximumWaitDurationUnit | I_OrderOperation | MaximumWaitDurationUnit | ||
| MaximumWaitDuration | I_OrderOperation | MaximumWaitDuration | ||
| MinimumWaitDurationUnit | I_OrderOperation | MinimumWaitDurationUnit | ||
| MinimumWaitDuration | I_OrderOperation | MinimumWaitDuration | ||
| StandardMoveDurationUnit | I_OrderOperation | StandardMoveDurationUnit | ||
| StandardMoveDuration | I_OrderOperation | StandardMoveDuration | ||
| StandardQueueDurationUnit | I_OrderOperation | StandardQueueDurationUnit | ||
| StandardQueueDuration | I_OrderOperation | StandardQueueDuration | ||
| MinimumQueueDurationUnit | I_OrderOperation | MinimumQueueDurationUnit | ||
| MinimumQueueDuration | I_OrderOperation | MinimumQueueDuration | ||
| MinimumMoveDurationUnit | I_OrderOperation | MinimumMoveDurationUnit | ||
| MinimumMoveDuration | I_OrderOperation | MinimumMoveDuration | ||
| OperationStandardDuration | I_OrderOperation | OperationStandardDuration | ||
| OperationStandardDurationUnit | I_OrderOperation | OperationStandardDurationUnit | ||
| MinimumDuration | ||||
| MinimumDurationUnit | ||||
| ScheduledMoveDuration | I_OrderOperation | ScheduledMoveDuration | ||
| ScheduledMoveDurationUnit | I_OrderOperation | ScheduledMoveDurationUnit | ||
| ScheduledQueueDuration | I_OrderOperation | ScheduledQueueDuration | ||
| ScheduledQueueDurationUnit | I_OrderOperation | ScheduledQueueDurationUnit | ||
| ScheduledWaitDuration | I_OrderOperation | ScheduledWaitDuration | ||
| ScheduledWaitDurationUnit | I_OrderOperation | ScheduledWaitDurationUnit | ||
| PlannedDeliveryDuration | ||||
| OpPlannedSetupDurn | I_OrderOperation | OpPlannedSetupDurn | ||
| OpPlannedSetupDurnUnit | I_OrderOperation | OpPlannedSetupDurnUnit | ||
| OpPlannedProcessingDurn | I_OrderOperation | OpPlannedProcessingDurn | ||
| OpPlannedProcessingDurnUnit | ||||
| OpPlannedTeardownDurn | I_OrderOperation | OpPlannedTeardownDurn | ||
| OpPlannedTeardownDurnUnit | I_OrderOperation | OpPlannedTeardownDurnUnit | ||
| StartDateOffsetReferenceCode | ||||
| StartDateOffsetDurationUnit | I_OrderOperation | StartDateOffsetDurationUnit | ||
| StartDateOffsetDuration | I_OrderOperation | StartDateOffsetDuration | ||
| EndDateOffsetReferenceCode | ||||
| EndDateOffsetDurationUnit | I_OrderOperation | EndDateOffsetDurationUnit | ||
| EndDateOffsetDuration | I_OrderOperation | EndDateOffsetDuration | ||
| StandardWorkFormulaParamGroup | I_OrderOperation | StandardWorkFormulaParamGroup | ||
| OperationUnit | ||||
| OpQtyToBaseQtyDnmntr | I_OrderOperation | OpQtyToBaseQtyDnmntr | ||
| OpQtyToBaseQtyNmrtr | I_OrderOperation | OpQtyToBaseQtyNmrtr | ||
| OperationScrapPercent | I_OrderOperation | OperationScrapPercent | ||
| OperationReferenceQuantity | I_OrderOperation | OperationReferenceQuantity | ||
| OpPlannedTotalQuantity | I_OrderOperation | OpPlannedTotalQuantity | ||
| OpPlannedScrapQuantity | I_OrderOperation | OpPlannedScrapQuantity | ||
| OpPlannedYieldQuantity | ||||
| OpTotalConfirmedYieldQty | I_OrderOperation | OpTotalConfirmedYieldQty | ||
| OpTotalConfirmedScrapQty | I_OrderOperation | OpTotalConfirmedScrapQty | ||
| OperationConfirmedReworkQty | I_OrderOperation | OperationConfirmedReworkQty | ||
| ProductionUnit | ||||
| OpTotConfdYieldQtyInOrdQtyUnit | I_OrderOperation | OpTotConfdYieldQtyInOrdQtyUnit | ||
| OpWorkQuantityUnit1 | ||||
| OpConfirmedWorkQuantity1 | ||||
| NoFurtherOpWorkQuantity1IsExpd | I_OrderOperation | NoFurtherOpWorkQuantity1IsExpd | ||
| OpWorkQuantityUnit2 | ||||
| OpConfirmedWorkQuantity2 | ||||
| NoFurtherOpWorkQuantity2IsExpd | I_OrderOperation | NoFurtherOpWorkQuantity2IsExpd | ||
| OpWorkQuantityUnit3 | ||||
| OpConfirmedWorkQuantity3 | ||||
| NoFurtherOpWorkQuantity3IsExpd | I_OrderOperation | NoFurtherOpWorkQuantity3IsExpd | ||
| OpWorkQuantityUnit4 | ||||
| OpConfirmedWorkQuantity4 | ||||
| NoFurtherOpWorkQuantity4IsExpd | I_OrderOperation | NoFurtherOpWorkQuantity4IsExpd | ||
| OpWorkQuantityUnit5 | ||||
| OpConfirmedWorkQuantity5 | ||||
| NoFurtherOpWorkQuantity5IsExpd | I_OrderOperation | NoFurtherOpWorkQuantity5IsExpd | ||
| OpWorkQuantityUnit6 | ||||
| OpConfirmedWorkQuantity6 | ||||
| NoFurtherOpWorkQuantity6IsExpd | I_OrderOperation | NoFurtherOpWorkQuantity6IsExpd | ||
| WorkCenterStandardWorkQtyUnit1 | ||||
| WorkCenterStandardWorkQty1 | ||||
| CostCtrActivityType1 | ||||
| WorkCenterStandardWorkQtyUnit2 | ||||
| WorkCenterStandardWorkQty2 | ||||
| CostCtrActivityType2 | ||||
| WorkCenterStandardWorkQtyUnit3 | ||||
| WorkCenterStandardWorkQty3 | ||||
| CostCtrActivityType3 | ||||
| WorkCenterStandardWorkQtyUnit4 | ||||
| WorkCenterStandardWorkQty4 | ||||
| CostCtrActivityType4 | ||||
| WorkCenterStandardWorkQtyUnit5 | ||||
| WorkCenterStandardWorkQty5 | ||||
| CostCtrActivityType5 | ||||
| WorkCenterStandardWorkQtyUnit6 | ||||
| WorkCenterStandardWorkQty6 | ||||
| CostCtrActivityType6 | ||||
| BusinessProcess | ||||
| BusinessProcessEntryUnit | I_OrderOperation | BusinessProcessEntryUnit | ||
| BusinessProcessConfirmedQty | I_OrderOperation | BusinessProcessConfirmedQty | ||
| NoFurtherBusinessProcQtyIsExpd | I_OrderOperation | NoFurtherBusinessProcQtyIsExpd | ||
| BusinessProcRemainingQtyUnit | I_OrderOperation | BusinessProcRemainingQtyUnit | ||
| BusinessProcessRemainingQty | ||||
| FreeDefinedTableFieldSemantic | I_OrderOperation | FreeDefinedTableFieldSemantic | ||
| FreeDefinedAttribute01 | I_OrderOperation | FreeDefinedAttribute01 | ||
| FreeDefinedAttribute02 | I_OrderOperation | FreeDefinedAttribute02 | ||
| FreeDefinedAttribute03 | I_OrderOperation | FreeDefinedAttribute03 | ||
| FreeDefinedAttribute04 | I_OrderOperation | FreeDefinedAttribute04 | ||
| FreeDefinedQuantity1Unit | I_OrderOperation | FreeDefinedQuantity1Unit | ||
| FreeDefinedQuantity1 | I_OrderOperation | FreeDefinedQuantity1 | ||
| FreeDefinedQuantity2Unit | I_OrderOperation | FreeDefinedQuantity2Unit | ||
| FreeDefinedQuantity2 | I_OrderOperation | FreeDefinedQuantity2 | ||
| FreeDefinedAmount1Currency | I_OrderOperation | FreeDefinedAmount1Currency | ||
| FreeDefinedAmount1 | I_OrderOperation | FreeDefinedAmount1 | ||
| FreeDefinedAmount2Currency | I_OrderOperation | FreeDefinedAmount2Currency | ||
| FreeDefinedAmount2 | I_OrderOperation | FreeDefinedAmount2 | ||
| FreeDefinedDate1 | I_OrderOperation | FreeDefinedDate1 | ||
| FreeDefinedDate2 | I_OrderOperation | FreeDefinedDate2 | ||
| FreeDefinedIndicator1 | I_OrderOperation | FreeDefinedIndicator1 | ||
| FreeDefinedIndicator2 | I_OrderOperation | FreeDefinedIndicator2 | ||
| ConfirmationIsNotPossible | _OperationControlProfile | ConfirmationIsNotPossible | ||
| ConfirmationGroup | _OperationConfirmation | ConfirmationGroup | ||
| OrderIntBillOfOpItemOfPhase | I_OrderOperation | OrderIntBillOfOpItemOfPhase | ||
| Material | _ManufacturingOrder | Material | ||
| OrdObjectInternalID | P_ProcOrdAORList_2 | ObjectInternalID | ||
| WorkCenter | ||||
| WorkCenterText | ||||
| CapacityInternalID | _WorkCenter | CapacityInternalID | ||
| ScheduledBasicStartDate | P_ProcOrdAORList_2 | ScheduledBasicStartDate | ||
| ScheduledBasicEndDate | P_ProcOrdAORList_2 | ScheduledBasicEndDate | ||
| _OrderInternalID | _OrderInternalID | |||
| _ManufacturingOrder | _ManufacturingOrder | |||
| _MfgOrder | _MfgOrder | |||
| _MfgOrderSequence | _MfgOrderSequence | |||
| _MfgOrderOpComponent | _MfgOrderOpComponent | |||
| _MfgOrderOperationPRT | _MfgOrderOperationPRT | |||
| _MfgOrderOpTriggerPoint | _MfgOrderOpTriggerPoint | |||
| _MfgOrderOpDocInfoRecord | _MfgOrderOpDocInfoRecord | |||
| _MfgOrderOperationConf | _MfgOrderOperationConf | |||
| _MfgOrderCategory | _MfgOrderCategory | |||
| _MfgOrderType | _MfgOrderType | |||
| _SuperiorOperation | _SuperiorOperation | |||
| _OperationStandardTextCode | _OperationStandardTextCode | |||
| _Plant | _Plant | |||
| _MRPController | _MRPController | |||
| _ResponsiblePlannerGroup | _ResponsiblePlannerGroup | |||
| _ProductionSupervisor | _ProductionSupervisor | |||
| _ProductionUnit | _ProductionUnit | |||
| _OperationUnit | _OperationUnit | |||
| _WorkCenter | _WorkCenter | |||
| _WorkCenterType | _WorkCenterType | |||
| _OperationControlProfile | _OperationControlProfile | |||
| _BillOfOperationsType | _BillOfOperationsType | |||
| _BillOfOperationsGroup | _BillOfOperationsGroup | |||
| _BillOfOperationsVariant | _BillOfOperationsVariant | |||
| _BillOfOperationsSequence | _BillOfOperationsSequence | |||
| _BOOOperationInternalID | _BOOOperationInternalID | |||
| _OperationConfirmation | _OperationConfirmation | |||
| _FactoryCalendar | _FactoryCalendar | |||
| _CapacityRequirement | _CapacityRequirement | |||
| _CapacityRequirementItem | _CapacityRequirementItem | |||
| _ControlRecipeDestination | _ControlRecipeDestination | |||
| _ChangeNumber | _ChangeNumber | |||
| _PurchasingOrganization | _PurchasingOrganization | |||
| _PurchasingGroup | _PurchasingGroup | |||
| _PurchaseOrder | _PurchaseOrder | |||
| _PurchaseOrderItem | _PurchaseOrderItem | |||
| _PurchaseRequisition | _PurchaseRequisition | |||
| _PurchaseRequisitionItem | _PurchaseRequisitionItem | |||
| _PurchaseRequisitionItem2 | _PurchaseRequisitionItem2 | |||
| _PurchasingInfoRecord | _PurchasingInfoRecord | |||
| _Supplier | _Supplier | |||
| _SupplierCompanyByPlant | _SupplierCompanyByPlant | |||
| _OpExternalProcessingCurrency | _OpExternalProcessingCurrency | |||
| _EmployeeWageGroup | _EmployeeWageGroup | |||
| _EmployeeSuitability | _EmployeeSuitability | |||
| _Employee | _Employee | |||
| _CompanyCode | _CompanyCode | |||
| _ProfitCenter | _ProfitCenter | |||
| _RequestingCostCenter | _RequestingCostCenter | |||
| _ControllingArea | _ControllingArea | |||
| _ControllingObjectClass | _ControllingObjectClass | |||
| _ControllingObjectCurrency | _ControllingObjectCurrency | |||
| _CostElement | _CostElement | |||
| _CostingVariant | _CostingVariant | |||
| _FunctionalArea | _FunctionalArea | |||
| _BusinessArea | _BusinessArea | |||
| _BusinessProcess | _BusinessProcess | |||
| _BusinessProcessEntryUnit | _BusinessProcessEntryUnit | |||
| _OperationSetupGroupCategory | _OperationSetupGroupCategory | |||
| _OperationSetupGroup | _OperationSetupGroup | |||
| _OperationSetupType | _OperationSetupType | |||
| _LeadTimeReductionStrategy | _LeadTimeReductionStrategy | |||
| _StartDateOffsetReferenceCode | _StartDateOffsetReferenceCode | |||
| _EndDateOffsetReferenceCode | _EndDateOffsetReferenceCode | |||
| _StandardWorkFmlaParamGroup | _StandardWorkFmlaParamGroup | |||
| _Language | _Language | |||
| _SetupOpActyNtwkInstance | _SetupOpActyNtwkInstance | |||
| _ProduceOpActyNtwkInstance | _ProduceOpActyNtwkInstance | |||
| _TeardownOpActyNtwkInstance | _TeardownOpActyNtwkInstance | |||
| _LongText | _LongText | |||
| _FreeDefinedQuantity1Unit | _FreeDefinedQuantity1Unit | |||
| _FreeDefinedQuantity2Unit | _FreeDefinedQuantity2Unit | |||
| _FreeDefinedAmount1Currency | _FreeDefinedAmount1Currency | |||
| _FreeDefinedAmount2Currency | _FreeDefinedAmount2Currency | |||
| _ProductionPlant | _ProductionPlant | |||
| _Material | _Material |
@AbapCatalog.sqlViewName: 'PPOROPDURN'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType: {serviceQuality: #D, sizeCategory: #XL, dataClass: #TRANSACTIONAL}
@VDM.viewType: #COMPOSITE
@VDM.private: true
//@EndUserText.label: 'Process Order Operation'
define view P_ProcOrderOperationDurn
as select from I_OrderOperation as afvg
//Change selection for P_ProcOrdAORList_2 that is more optimized
inner join P_ProcOrdAORList_2 as aufv on afvg.OrderInternalID = aufv.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_OrderInternalID as _OrderInternalID on $projection.MfgOrderInternalID = _OrderInternalID.OrderInternalID
association [1..1] to I_MfgOrder as _MfgOrder on $projection.ManufacturingOrder = _MfgOrder.ManufacturingOrder
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.MfgOrderInternalID = _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 _Plant on $projection.Plant = _Plant.Plant
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_ProductionSupervisor as _ProductionSupervisor on $projection.Plant = _ProductionSupervisor.Plant
and $projection.ProductionSupervisor = _ProductionSupervisor.ProductionSupervisor
association [0..1] to I_MRPController as _MRPController on $projection.Plant = _MRPController.Plant
and $projection.MRPController = _MRPController.MRPController
association [0..1] to I_ResponsiblePlannerGroup as _ResponsiblePlannerGroup on $projection.Plant = _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
and $projection.WorkCenterTypeCode = 'A'
// association [0..1] to I_WorkCenterAllCapacity as _AllCapacity on $projection.WorkCenterInternalID = _AllCapacity.WorkCenterInternalID
// and $projection.WorkCenterTypeCode = _AllCapacity.WorkCenterTypeCode
// and $projection.CapacityInternalId = _AllCapacity.CapacityInternalID
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_MfgBillOfOperations as _BillOfOperationsVariant on $projection.BillOfOperationsType = _BillOfOperationsVariant.BillOfOperationsType
and $projection.BillOfOperationsGroup = _BillOfOperationsVariant.BillOfOperationsGroup
and $projection.BillOfOperationsVariant = _BillOfOperationsVariant.BillOfOperationsVariant
association [0..1] to I_MfgBillOfOperationsSequence 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.Plant = _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_PurchaseRequisition_Api01 as _PurchaseRequisitionItem on $projection.PurchaseRequisition = _PurchaseRequisitionItem.PurchaseRequisition
and $projection.PurchaseRequisitionItem = _PurchaseRequisitionItem.PurchaseRequisitionItem
association [0..1] to I_PurchaseRequisitionItemAPI01 as _PurchaseRequisitionItem2 on $projection.PurchaseRequisition = _PurchaseRequisitionItem2.PurchaseRequisition
and $projection.PurchaseRequisitionItem = _PurchaseRequisitionItem2.PurchaseRequisitionItem
association [0..1] to I_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.Plant = _SupplierCompanyByPlant.Plant
and $projection.Supplier = _SupplierCompanyByPlant.Supplier
association [0..1] to I_EmployeeWageGroup as _EmployeeWageGroup on $projection.Plant = _EmployeeWageGroup.Plant
and $projection.EmployeeWageGroup = _EmployeeWageGroup.EmployeeWageGroup
association [0..1] to I_EmployeeSuitability as _EmployeeSuitability on $projection.Plant = _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_CostElement as _CostElement on $projection.ControllingArea = _CostElement.ControllingArea
and $projection.CostElement = _CostElement.CostElement
association [0..1] to I_CostingVariant as _CostingVariant on $projection.CostingVariant = _CostingVariant.CostingVariant
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_Currency as _ControllingObjectCurrency on $projection.ControllingObjectCurrency = _ControllingObjectCurrency.Currency
association [0..1] to I_Currency as _OpExternalProcessingCurrency on $projection.OpExternalProcessingCurrency = _OpExternalProcessingCurrency.Currency
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.Plant = _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.Plant = _OperationSetupGroup.Plant
association [0..1] to I_OperationSetupType as _OperationSetupType on $projection.OperationSetupType = _OperationSetupType.OperationSetupType
and $projection.Plant = _OperationSetupType.Plant
association [0..1] to I_LeadTimeReductionStrategy as _LeadTimeReductionStrategy on $projection.LeadTimeReductionStrategy = _LeadTimeReductionStrategy.LeadTimeReductionStrategy
and $projection.Plant = _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_StandardWorkFmlaParamGroup as _StandardWorkFmlaParamGroup on $projection.StandardWorkFormulaParamGroup = _StandardWorkFmlaParamGroup.StandardWorkFormulaParamGroup
association [0..1] to I_Language as _Language on $projection.Language = _Language.Language
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
association [0..1] to I_UnitOfMeasure as _FreeDefinedQuantity1Unit on $projection.FreeDefinedQuantity1Unit = _FreeDefinedQuantity1Unit.UnitOfMeasure
association [0..1] to I_UnitOfMeasure as _FreeDefinedQuantity2Unit on $projection.FreeDefinedQuantity2Unit = _FreeDefinedQuantity2Unit.UnitOfMeasure
association [0..1] to I_Currency as _FreeDefinedAmount1Currency on $projection.FreeDefinedAmount1Currency = _FreeDefinedAmount1Currency.Currency
association [0..1] to I_Currency as _FreeDefinedAmount2Currency on $projection.FreeDefinedAmount2Currency = _FreeDefinedAmount2Currency.Currency
-- to root: Header
association [1..1] to I_ManufacturingOrder as _ManufacturingOrder on $projection.ManufacturingOrder = _ManufacturingOrder.ManufacturingOrder
and _ManufacturingOrder.ManufacturingOrderCategory = '40'
-- to parent: Sequence
association [1..1] to I_MfgOrderSequence as _MfgOrderSequence on $projection.ManufacturingOrder = _MfgOrderSequence.ManufacturingOrder
and $projection.ManufacturingOrderSequence = _MfgOrderSequence.ManufacturingOrderSequence
and _MfgOrderSequence.ManufacturingOrderCategory = '40'
-- to child: Components
association [0..*] to I_MfgOrderOperationComponent as _MfgOrderOpComponent on $projection.ManufacturingOrder = _MfgOrderOpComponent.ManufacturingOrder
and $projection.ManufacturingOrderSequence = _MfgOrderOpComponent.ManufacturingOrderSequence
and $projection.ManufacturingOrderOperation = _MfgOrderOpComponent.ManufacturingOrderOperation
and _MfgOrderOpComponent.ManufacturingOrderCategory = '40'
-- to child: Prodn. resource/tools
association [0..*] to I_MfgOrderOperationPRT as _MfgOrderOperationPRT on $projection.ManufacturingOrder = _MfgOrderOperationPRT.ManufacturingOrder
and $projection.ManufacturingOrderSequence = _MfgOrderOperationPRT.ManufacturingOrderSequence
and $projection.ManufacturingOrderOperation = _MfgOrderOperationPRT.ManufacturingOrderOperation
and _MfgOrderOperationPRT.ManufacturingOrderCategory = '40'
-- to child: Trigger points
association [0..*] to I_MfgOrderOperationTrggrPoint as _MfgOrderOpTriggerPoint on $projection.ManufacturingOrder = _MfgOrderOpTriggerPoint.ManufacturingOrder
and $projection.ManufacturingOrderSequence = _MfgOrderOpTriggerPoint.ManufacturingOrderSequence
and $projection.ManufacturingOrderOperation = _MfgOrderOpTriggerPoint.ManufacturingOrderOperation
and _MfgOrderOpTriggerPoint.ManufacturingOrderCategory = '40'
-- to child: Document links
association [0..*] to I_MfgOrderOpDocInfoRecdObjLink as _MfgOrderOpDocInfoRecord on $projection.ManufacturingOrder = _MfgOrderOpDocInfoRecord.ManufacturingOrder
and $projection.ManufacturingOrderSequence = _MfgOrderOpDocInfoRecord.ManufacturingOrderSequence
and $projection.ManufacturingOrderOperation = _MfgOrderOpDocInfoRecord.ManufacturingOrderOperation
and _MfgOrderOpDocInfoRecord.ManufacturingOrderCategory = '40'
-- to child: Confirmations
association [0..*] to I_MfgOrderOperationConf as _MfgOrderOperationConf on $projection.ManufacturingOrder = _MfgOrderOperationConf.ManufacturingOrder
and $projection.ManufacturingOrderSequence = _MfgOrderOperationConf.ManufacturingOrderSequence
and $projection.ManufacturingOrderOperation = _MfgOrderOperationConf.ManufacturingOrderOperation
and _MfgOrderOperationConf.ManufacturingOrderCategory = '40'
-- to extension
association [1..1] to E_OrderOperation as _Extension on $projection.MfgOrderInternalID = _Extension.OrderInternalID
and $projection.OrderOperationInternalID = _Extension.OrderOperationInternalID
association [0..1] to I_Material as _Material on $projection.Material = _Material.Material
{
// Technical Key
@ObjectModel.foreignKey.association: '_OrderInternalID'
key cast(afvg.OrderInternalID as pph_aufpl preserving type) as MfgOrderInternalID,
key cast(afvg.OrderOperationInternalID as operationinternalid preserving type) as OrderOperationInternalID,
// Semantical key
@ObjectModel.foreignKey.association: '_MfgOrder'
// cast(aufv.OrderID as manufacturingorder preserving type) as ManufacturingOrder,
//cast(aufv.ManufacturingOrder as manufacturingorder preserving type) as ManufacturingOrder,
//Change the field name to the correct one
cast(aufv.OrderID as manufacturingorder preserving type) as ManufacturingOrder,
@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,
//Change the field name to the correct one
cast(aufv.OrderCategory as manufacturingordercategory preserving type) as ManufacturingOrderCategory,
@ObjectModel.foreignKey.association: '_MfgOrderType'
//cast(aufv.ManufacturingOrderType as manufacturingordertype preserving type) as ManufacturingOrderType,
//Change the field name to the correct one
cast(aufv.OrderType as manufacturingordertype preserving type) as ManufacturingOrderType,
_MfgOrderType._Text[1: Language=$session.system_language].ManufacturingOrderTypeName,
@ObjectModel.foreignKey.association: '_ProductionPlant'
//cast(aufv.ProductionPlant as pwwrk preserving type) as ProductionPlant,
//Change the field name to the correct one
cast(aufv.Plant as pwwrk preserving type) as ProductionPlant,
_ProductionPlant.PlantName as ProductionPlantName,
cast( _ProductionPlant._StandardOrganizationAddress.AddressTimeZone as co_plant_timezone ) as PlantTimeZone,
@ObjectModel.foreignKey.association: '_ProductionSupervisor'
cast(aufv.ProductionSupervisor as pph_fevor preserving type) as ProductionSupervisor,
_ProductionSupervisor.ProductionSupervisorName,
@ObjectModel.foreignKey.association: '_MRPController'
cast(aufv.MRPController as pph_dispo preserving type) as MRPController,
_MRPController.MRPControllerName,
@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,
//Change the field name to the correct one
aufv.PriorityCode as 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,
cast(afvp.Operation as vdm_supop preserving type) as MfgOrderPhaseSuperiorOperation,
afvp.OperationText as SuperiorOperationText,
cast(afvg.NumberOfCapacities as pph_anzkap preserving type) as NumberOfCapacities,
afvg.NumberOfConfirmationSlips,
afvg.OperationImportance,
// Assignments
@ObjectModel.foreignKey.association: '_SuperiorOperation'
afvg.SuperiorOperationInternalID,
@ObjectModel.foreignKey.association: '_Plant'
afvg.Plant,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_WorkCenterStdVH', element: 'WorkCenterInternalID' } } ]
@ObjectModel.foreignKey.association: '_WorkCenter'
cast(afvg.WorkCenterInternalID as pph_arbid preserving type) as WorkCenterInternalID,
@ObjectModel.foreignKey.association: '_WorkCenterType'
cast(afvg.WorkCenterTypeCode as pph_arbty preserving type) as WorkCenterTypeCode,
@ObjectModel.foreignKey.association: '_OperationControlProfile'
cast(afvg.OperationControlProfile as pph_steus preserving type) as OperationControlProfile,
_OperationControlProfile._Text[1: Language=$session.system_language].OperationControlProfileName,
@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 ObjectInternalID,
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'
cast(afvg.BillOfOperationsSequence as boosequence preserving type) as 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,
cast(afvg.PurgInfoRecdDataIsFixed as vdm_kzfix preserving type) as PurgInfoRecdDataIsFixed,
cast(afvg.PurchasingInfoRecordCategory as pph_esokz preserving type) as PurchasingInfoRecordCategory,
@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' } } ]
-- @ObjectModel.foreignKey.association: '_ProfitCenter'
afvg.ProfitCenter,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_CostCenterStdVH', element: 'CostCenter' } } ]
-- @ObjectModel.foreignKey.association: '_RequestingCostCenter'
afvg.RequestingCostCenter,
@ObjectModel.foreignKey.association: '_CostElement'
afvg.CostElement,
@ObjectModel.foreignKey.association: '_CostingVariant'
afvg.CostingVariant,
afvg.CostingSheet,
afvg.CostEstimate,
@Semantics.currencyCode: true
afvg.ControllingObjectCurrency,
@ObjectModel.foreignKey.association: '_ControllingObjectClass'
cast(afvg.ControllingObjectClass as pph_scope preserving type) as 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,
// Scheduled Dates and Times
cast(afvg.OpErlstSchedldExecStrtDte as pph_fsavd preserving type) as OpErlstSchedldExecStrtDte,
cast(afvg.OpErlstSchedldExecStrtTme as pph_fsavz preserving type) as OpErlstSchedldExecStrtTme,
cast(afvg.OpErlstSchedldProcgStrtDte as pph_fssbd preserving type) as OpErlstSchedldProcgStrtDte,
cast(afvg.OpErlstSchedldProcgStrtTme as pph_fssbz preserving type) as OpErlstSchedldProcgStrtTme,
cast(afvg.OpErlstSchedldTrdwnStrtDte as pph_fssad preserving type) as OpErlstSchedldTrdwnStrtDte,
cast(afvg.OpErlstSchedldTrdwnStrtTme as pph_fssaz preserving type) as OpErlstSchedldTrdwnStrtTme,
cast(afvg.OpErlstSchedldExecEndDte as pph_fsedd preserving type) as OpErlstSchedldExecEndDte,
cast(afvg.OpErlstSchedldExecEndTme as pph_fsedz preserving type) as OpErlstSchedldExecEndTme,
cast(afvg.OpLtstSchedldExecStrtDte as pph_ssavd preserving type) as OpLtstSchedldExecStrtDte,
cast(afvg.OpLtstSchedldExecStrtTme as pph_ssavz preserving type) as OpLtstSchedldExecStrtTme,
cast(afvg.OpLtstSchedldProcgStrtDte as pph_sssbd preserving type) as OpLtstSchedldProcgStrtDte,
cast(afvg.OpLtstSchedldProcgStrtTme as pph_sssbz preserving type) as OpLtstSchedldProcgStrtTme,
cast(afvg.OpLtstSchedldTrdwnStrtDte as pph_sssad preserving type) as OpLtstSchedldTrdwnStrtDte,
cast(afvg.OpLtstSchedldTrdwnStrtTme as pph_sssaz preserving type) as OpLtstSchedldTrdwnStrtTme,
cast(afvg.OpLtstSchedldExecEndDte as pph_ssedd preserving type) as OpLtstSchedldExecEndDte,
cast(afvg.OpLtstSchedldExecEndTme as pph_ssedz preserving type) as OpLtstSchedldExecEndTme,
cast(afvg.SchedldFcstdEarliestStartDate as pph_fpavd preserving type) as SchedldFcstdEarliestStartDate,
cast(afvg.SchedldFcstdEarliestStartTime as pph_fpavz preserving type) as SchedldFcstdEarliestStartTime,
cast(afvg.SchedldFcstdEarliestEndDate as pph_fpedd preserving type) as SchedldFcstdEarliestEndDate,
cast(afvg.SchedldFcstdEarliestEndTime as pph_fpedz preserving type) as SchedldFcstdEarliestEndTime,
cast(afvg.LatestSchedldFcstdStartDate as pph_spavd preserving type) as LatestSchedldFcstdStartDate,
cast(afvg.SchedldFcstdLatestStartTime as pph_spavz preserving type) as SchedldFcstdLatestStartTime,
cast(afvg.LatestSchedldFcstdEndDate as pph_spedd preserving type) as LatestSchedldFcstdEndDate,
cast(afvg.SchedldFcstdLatestEndTime as pph_spedz preserving type) as SchedldFcstdLatestEndTime,
// Actual Dates and Times
cast(afvg.OperationConfirmedStartDate as pph_isavd preserving type) as OperationConfirmedStartDate,
cast(afvg.OperationConfirmedEndDate as pph_ieavd preserving type) as OperationConfirmedEndDate,
afvg.OpActualExecutionStartDate,
afvg.OpActualExecutionStartTime,
afvg.OpActualSetupEndDate,
afvg.OpActualSetupEndTime,
afvg.OpActualProcessingStartDate,
afvg.OpActualProcessingStartTime,
afvg.OpActualProcessingEndDate,
afvg.OpActualProcessingEndTime,
afvg.OpActualTeardownStartDate,
afvg.OpActualTeardownStartTme,
afvg.OpActualExecutionEndDate,
afvg.OpActualExecutionEndTime,
cast(afvg.ActualForecastEndDate as pph_pedd preserving type) as ActualForecastEndDate,
cast(afvg.ActualForecastEndTime as pph_pedz preserving type) as ActualForecastEndTime,
// Wait Dates and Times
afvg.EarliestScheduledWaitStartDate,
afvg.EarliestScheduledWaitStartTime,
afvg.EarliestScheduledWaitEndDate,
afvg.EarliestScheduledWaitEndTime,
afvg.LatestScheduledWaitStartDate,
afvg.LatestScheduledWaitStartTime,
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,
cast(afvg.MinimumDuration as vdm_daumin preserving type) as MinimumDuration,
cast(afvg.MinimumDurationUnit as vdm_daumine preserving type) as MinimumDurationUnit,
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,
cast(afvg.ActualForecastDuration as pph_pdau preserving type) as ActualForecastDuration,
cast(afvg.ActualForecastDurationUnit as pph_pdae preserving type) as ActualForecastDurationUnit,
// Offset
-- Start
@ObjectModel.foreignKey.association: '_StartDateOffsetReferenceCode'
afvg.StartDateOffsetReferenceCode,
@Semantics.unitOfMeasure: true
afvg.StartDateOffsetDurationUnit,
afvg.StartDateOffsetDuration,
-- End
@ObjectModel.foreignKey.association: '_EndDateOffsetReferenceCode'
afvg.EndDateOffsetReferenceCode,
@Semantics.unitOfMeasure: true
afvg.EndDateOffsetDurationUnit,
afvg.EndDateOffsetDuration,
// Standard Value Key
@ObjectModel.foreignKey.association: '_StandardWorkFmlaParamGroup'
afvg.StandardWorkFormulaParamGroup,
// 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
cast((afvg.OpPlannedTotalQuantity - afvg.OpPlannedScrapQuantity) as vdm_gmeng) 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,
//Change the field name to the correct one
cast(aufv.BaseUnit as productionunit preserving type) as ProductionUnit,
@Semantics.quantity.unitOfMeasure: 'ProductionUnit'
@DefaultAggregation: #SUM
afvg.OpTotConfdYieldQtyInOrdQtyUnit,
// Confirmed Work Quantities and UoM
@Semantics.unitOfMeasure: true
cast(afvg.OpWorkQuantityUnit1 as vdm_ile01 preserving type) as OpWorkQuantityUnit1,
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit1'
@DefaultAggregation: #SUM
cast(afvg.OpConfirmedWorkQuantity1 as vdm_ism01 preserving type) as OpConfirmedWorkQuantity1,
afvg.NoFurtherOpWorkQuantity1IsExpd,
@Semantics.unitOfMeasure: true
cast(afvg.OpWorkQuantityUnit2 as vdm_ile02 preserving type) as OpWorkQuantityUnit2,
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit2'
@DefaultAggregation: #SUM
cast(afvg.OpConfirmedWorkQuantity2 as vdm_ism02 preserving type) as OpConfirmedWorkQuantity2,
afvg.NoFurtherOpWorkQuantity2IsExpd,
@Semantics.unitOfMeasure: true
cast(afvg.OpWorkQuantityUnit3 as vdm_ile03 preserving type) as OpWorkQuantityUnit3,
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit3'
@DefaultAggregation: #SUM
cast(afvg.OpConfirmedWorkQuantity3 as vdm_ism03 preserving type) as OpConfirmedWorkQuantity3,
afvg.NoFurtherOpWorkQuantity3IsExpd,
@Semantics.unitOfMeasure: true
cast(afvg.OpWorkQuantityUnit4 as vdm_ile04 preserving type) as OpWorkQuantityUnit4,
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit4'
@DefaultAggregation: #SUM
cast(afvg.OpConfirmedWorkQuantity4 as vdm_ism04 preserving type) as OpConfirmedWorkQuantity4,
afvg.NoFurtherOpWorkQuantity4IsExpd,
@Semantics.unitOfMeasure: true
cast(afvg.OpWorkQuantityUnit5 as vdm_ile05 preserving type) as OpWorkQuantityUnit5,
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit5'
@DefaultAggregation: #SUM
cast(afvg.OpConfirmedWorkQuantity5 as vdm_ism05 preserving type) as OpConfirmedWorkQuantity5,
afvg.NoFurtherOpWorkQuantity5IsExpd,
@Semantics.unitOfMeasure: true
cast(afvg.OpWorkQuantityUnit6 as vdm_ile06 preserving type) as OpWorkQuantityUnit6,
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit6'
@DefaultAggregation: #SUM
cast(afvg.OpConfirmedWorkQuantity6 as vdm_ism06 preserving type) as 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
cast(afvg.WorkCenterStandardWorkQty1 as vdm_vgw01 preserving type) as WorkCenterStandardWorkQty1,
cast(afvg.CostCtrActivityType1 as vdm_lar01 preserving type) as CostCtrActivityType1,
@Semantics.unitOfMeasure: true
cast(afvg.WorkCenterStandardWorkQtyUnit2 as pph_vge02 preserving type) as WorkCenterStandardWorkQtyUnit2,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit2'
@DefaultAggregation: #SUM
cast(afvg.WorkCenterStandardWorkQty2 as vdm_vgw02 preserving type) as WorkCenterStandardWorkQty2,
cast(afvg.CostCtrActivityType2 as vdm_lar02 preserving type) as CostCtrActivityType2,
@Semantics.unitOfMeasure: true
cast(afvg.WorkCenterStandardWorkQtyUnit3 as pph_vge03 preserving type) as WorkCenterStandardWorkQtyUnit3,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit3'
@DefaultAggregation: #SUM
cast(afvg.WorkCenterStandardWorkQty3 as vdm_vgw03 preserving type) as WorkCenterStandardWorkQty3,
cast(afvg.CostCtrActivityType3 as vdm_lar03 preserving type) as CostCtrActivityType3,
@Semantics.unitOfMeasure: true
cast(afvg.WorkCenterStandardWorkQtyUnit4 as pph_vge04 preserving type) as WorkCenterStandardWorkQtyUnit4,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit4'
@DefaultAggregation: #SUM
cast(afvg.WorkCenterStandardWorkQty4 as vdm_vgw04 preserving type) as WorkCenterStandardWorkQty4,
cast(afvg.CostCtrActivityType4 as vdm_lar04 preserving type) as CostCtrActivityType4,
@Semantics.unitOfMeasure: true
cast(afvg.WorkCenterStandardWorkQtyUnit5 as pph_vge05 preserving type) as WorkCenterStandardWorkQtyUnit5,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit5'
@DefaultAggregation: #SUM
cast(afvg.WorkCenterStandardWorkQty5 as vdm_vgw05 preserving type) as WorkCenterStandardWorkQty5,
cast(afvg.CostCtrActivityType5 as vdm_lar05 preserving type) as CostCtrActivityType5,
@Semantics.unitOfMeasure: true
cast(afvg.WorkCenterStandardWorkQtyUnit6 as pph_vge06 preserving type) as WorkCenterStandardWorkQtyUnit6,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit6'
@DefaultAggregation: #SUM
cast(afvg.WorkCenterStandardWorkQty6 as vdm_vgw06 preserving type) as WorkCenterStandardWorkQty6,
cast(afvg.CostCtrActivityType6 as vdm_lar06 preserving type) as CostCtrActivityType6,
// Forecast Work Quantities
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit1'
@DefaultAggregation: #SUM
cast(afvg.ForecastWorkQuantity1 as vdm_ofm01 preserving type) as ForecastWorkQuantity1,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit2'
@DefaultAggregation: #SUM
cast(afvg.ForecastWorkQuantity2 as vdm_ofm02 preserving type) as ForecastWorkQuantity2,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit3'
@DefaultAggregation: #SUM
cast(afvg.ForecastWorkQuantity3 as vdm_ofm03 preserving type) as ForecastWorkQuantity3,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit4'
@DefaultAggregation: #SUM
cast(afvg.ForecastWorkQuantity4 as vdm_ofm04 preserving type) as ForecastWorkQuantity4,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit5'
@DefaultAggregation: #SUM
cast(afvg.ForecastWorkQuantity5 as vdm_ofm05 preserving type) as ForecastWorkQuantity5,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit6'
@DefaultAggregation: #SUM
cast(afvg.ForecastWorkQuantity6 as vdm_ofm06 preserving type) as 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'
cast(afvg.SetupOpActyNtwkInstance as vdm_setup_instance preserving type) as SetupOpActyNtwkInstance,
-- @ObjectModel.foreignKey.association: '_ProduceOpActyNtwkInstance'
cast(afvg.ProduceOpActyNtwkInstance as vdm_produce_instance preserving type) as ProduceOpActyNtwkInstance,
-- @ObjectModel.foreignKey.association: '_TeardownOpActyNtwkInstance'
cast(afvg.TeardownOpActyNtwkInstance as vdm_teardown_instance preserving type) as 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,
@Semantics.currencyCode: true
afvg.FreeDefinedAmount2Currency,
@Semantics.amount.currencyCode: 'FreeDefinedAmount2Currency'
@DefaultAggregation: #SUM
afvg.FreeDefinedAmount2,
afvg.FreeDefinedDate1,
afvg.FreeDefinedDate2,
afvg.FreeDefinedIndicator1,
afvg.FreeDefinedIndicator2,
_OperationControlProfile.ConfirmationIsNotPossible,
_OperationConfirmation.ConfirmationGroup,
//pvzkn - parent operations item number
afvg.OrderIntBillOfOpItemOfPhase,
_ManufacturingOrder.Material as Material,
//aufv.BillOfOperationsMaterial as Material,
//_ManufacturingOrder.ObjectInternalID as OrdObjectInternalID,
aufv.ObjectInternalID as OrdObjectInternalID,
// Has no long text indicator
cast(case afvg.Language
when '' then 'X'
else ''
end as processorderhasnolongtext preserving type) as ProcessOrderHasNoLongText, //replace with ProcOrdOpHasNoLongText
cast(_WorkCenter.WorkCenter as pph_arbpl preserving type) as WorkCenter,
_WorkCenter._Text[1: Language=$session.system_language].WorkCenterText,
_WorkCenter.CapacityInternalID,
// _AllCapacity.CapacityCategoryAllocation,
//'' as CapacityCategoryAllocation,
//Segmentation details
//_MfgOrder.StockSegment as StockSegment,
//Expose Start and End dates to push-down filters to associations
aufv.ScheduledBasicStartDate,
aufv.ScheduledBasicEndDate,
// Associations
@Consumption.hidden: true
_OrderInternalID,
_ManufacturingOrder,
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: '_ManufacturingOrder'
_MfgOrder,
_MfgOrderSequence,
_MfgOrderOpComponent,
_MfgOrderOperationPRT,
_MfgOrderOpTriggerPoint,
_MfgOrderOpDocInfoRecord,
_MfgOrderOperationConf,
_MfgOrderCategory,
_MfgOrderType,
_SuperiorOperation,
_OperationStandardTextCode,
_Plant,
_MRPController,
_ResponsiblePlannerGroup,
_ProductionSupervisor,
_ProductionUnit,
_OperationUnit,
_WorkCenter,
@Consumption.hidden: true
_WorkCenterType,
_OperationControlProfile,
_BillOfOperationsType,
_BillOfOperationsGroup,
_BillOfOperationsVariant,
_BillOfOperationsSequence,
@Consumption.hidden: true
_BOOOperationInternalID,
_OperationConfirmation,
_FactoryCalendar,
_CapacityRequirement,
_CapacityRequirementItem,
_ControlRecipeDestination,
_ChangeNumber,
_PurchasingOrganization,
_PurchasingGroup,
_PurchaseOrder,
_PurchaseOrderItem,
_PurchaseRequisition,
@VDM.lifecycle.status: #DEPRECATED
@VDM.lifecycle.successor: '_PurchaseRequisitionItem2'
@API.element.releaseState: #DEPRECATED
@API.element.successor: '_PurchaseRequisitionItem2'
_PurchaseRequisitionItem,
_PurchaseRequisitionItem2,
_PurchasingInfoRecord,
_Supplier,
@Consumption.hidden: true
_SupplierCompanyByPlant,
_OpExternalProcessingCurrency,
_EmployeeWageGroup,
_EmployeeSuitability,
_Employee,
_CompanyCode,
_ProfitCenter,
_RequestingCostCenter,
_ControllingArea,
_ControllingObjectClass,
_ControllingObjectCurrency,
_CostElement,
_CostingVariant,
_FunctionalArea,
_BusinessArea,
_BusinessProcess,
_BusinessProcessEntryUnit,
_OperationSetupGroupCategory,
_OperationSetupGroup,
_OperationSetupType,
_LeadTimeReductionStrategy,
_StartDateOffsetReferenceCode,
_EndDateOffsetReferenceCode,
_StandardWorkFmlaParamGroup,
_Language,
_SetupOpActyNtwkInstance,
_ProduceOpActyNtwkInstance,
_TeardownOpActyNtwkInstance,
_LongText,
_FreeDefinedQuantity1Unit,
_FreeDefinedQuantity2Unit,
_FreeDefinedAmount1Currency,
_FreeDefinedAmount2Currency,
_ProductionPlant,
_Material
}
where
//aufv.ManufacturingOrderCategory = '40';
//Change the field name to the correct one
aufv.OrderCategory = '40';
// and afvg.BillOfOperationsType = '2'; //process orders only
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA