@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.modelingPattern: #NONE
@ObjectModel.supportedCapabilities: [#TRANSACTIONAL_PROVIDER]
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #XL, dataClass: #TRANSACTIONAL}
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@VDM.viewType: #TRANSACTIONAL
@EndUserText.label: 'Process Order Operation - TP'
// ************************ DO NOT USE ************************
// * This RAP BO is for testing purpose only *
// **************************************************************
define view entity R_ProcessOrderOperationTP
as select from I_ManufacturingOrderOperation as Operation
association to parent R_ProcessOrderTP as _Order on _Order.ProcessOrder = $projection.ProcessOrder
// BO relation
composition [0..*] of R_ProcessOrderPhaseTP as _Phase
association [0..*] to R_ProcessOrderComponentTP as _Component on _Component.ProcessOrder = $projection.ProcessOrder
and _Component.OrderOperationInternalID = $projection.OrderOperationInternalID
// Extension
association [1..1] to E_ProcessOrderOperation as _Extension on _Extension.OrderInternalID = $projection.OrderInternalID
and _Extension.OrderOperationInternalID = $projection.OrderOperationInternalID
{
// Technical Key
key MfgOrderInternalID as OrderInternalID,
key OrderOperationInternalID,
// Semantic Key
cast(ManufacturingOrder as co_bord preserving type) as ProcessOrder,
@Consumption.hidden: true
cast(ManufacturingOrderSequence as plnfolge preserving type) as ProcessOrderSequence,
cast(ManufacturingOrderOperation_2 as vdm_vornr preserving type) as ProcessOrderOperation,
// cast(ManufacturingOrdSubOperation_2 as vdm_uvorn preserving type) as SecondaryResource,
// Text
cast(MfgOrderOperationText as ltxa1 preserving type) as OperationText,
OperationStandardTextCode,
OperationHasLongText,
Language as LongTextLanguage,
// Attributes
OperationIsToBeDeleted,
// OperationImportance, // not relevant for PP orders - only for PS
// Assignments
Plant,
cast(_WorkCenter.WorkCenter as cr_resourc preserving type) as ProductionResource,
@Consumption.hidden: true
WorkCenterInternalID as ProductionResourceInternalID,
// @Consumption.hidden: true
// WorkCenterTypeCode_2 as ProductionResourceType,
OperationControlProfile,
FactoryCalendar,
OperationConfirmation as ConfirmationGroup,
NumberOfOperationConfirmations,
NumberOfCapacities,
// CapacityRequirement,
// CapacityRequirementItem,
ChangeNumber,
ObjectInternalID,
_Order.Reservation as Reservation,
NumberOfConfirmationSlips,
cast(CostElement as kstar preserving type) as CostElement,
EmployeeWageType,
EmployeeWageGroup,
EmployeeSuitability,
NumberOfTimeTickets,
NumberOfEmployees,
OperationSetupGroupCategory,
OperationSetupGroup,
OperationSetupType,
// OperationSplitIsRequired,
// MaximumNumberOfSplits,
// Assignment Master Recipe
@Consumption.hidden: true
BillOfOperationsType,
BillOfOperationsGroup as MasterRecipeGroup,
BillOfOperationsVariant as MasterRecipe,
// @Consumption.hidden: true
// BillOfOperationsSequence,
BOOOperationInternalID as MasterRecipeOperationIntID,
// External processing
@Semantics.booleanIndicator
ExtProcgOperationHasSubcontrg,
PurchasingOrganization,
PurchasingGroup,
PurchaseRequisition,
PurchaseRequisitionItem,
PurchaseOrder,
PurchaseOrderItem,
PurchasingInfoRecord,
PurgInfoRecdDataIsFixed,
PurchasingInfoRecordCategory,
Supplier,
GoodsRecipientName,
UnloadingPointName,
MaterialGroup,
OpExternalProcessingCurrency,
@Semantics.amount.currencyCode: 'OpExternalProcessingCurrency'
OpExternalProcessingPrice,
NumberOfOperationPriceUnits,
// Assignments CO
CompanyCode,
BusinessArea,
// ControllingArea,
ProfitCenter,
RequestingCostCenter,
CostingVariant,
CostingSheet,
FunctionalArea,
// Dates and times
OpErlstSchedldExecStrtDte as ErlstSchedldExecStrtDte,
OpErlstSchedldExecStrtTme as ErlstSchedldExecStrtTime,
// OpErlstSchedldProcgStrtDte, //
// OpErlstSchedldProcgStrtTme,
// OpErlstSchedldTrdwnStrtDte,
// OpErlstSchedldTrdwnStrtTme,
OpErlstSchedldExecEndDte as ErlstSchedldExecEndDte,
OpErlstSchedldExecEndTme as ErlstSchedldExecEndTime,
OpLtstSchedldExecStrtDte as LtstSchedldExecStrtDte,
OpLtstSchedldExecStrtTme as LtstSchedldExecStrtTime,
// OpLtstSchedldProcgStrtDte,
// OpLtstSchedldProcgStrtTme,
// OpLtstSchedldTrdwnStrtDte,
// OpLtstSchedldTrdwnStrtTme,
OpLtstSchedldExecEndDte as LtstSchedldExecEndDte,
OpLtstSchedldExecEndTme as LtstSchedldExecEndTime,
// SchedldFcstdEarliestStartDate,
// SchedldFcstdEarliestStartTime,
// SchedldFcstdEarliestEndDate,
// SchedldFcstdEarliestEndTime,
// LatestSchedldFcstdStartDate,
// SchedldFcstdLatestStartTime,
// LatestSchedldFcstdEndDate,
// SchedldFcstdLatestEndTime,
// OperationConfirmedStartDate,
// OperationConfirmedEndDate,
OpActualExecutionStartDate as ActualExecutionStartDate,
OpActualExecutionStartTime as ActualExecutionStartTime,
// OpActualSetupEndDate,
// OpActualSetupEndTime,
OpActualProcessingStartDate as ActualProcessingStartDate,
OpActualProcessingStartTime as ActualProcessingStartTime,
OpActualProcessingEndDate as ActualProcessingEndDate,
OpActualProcessingEndTime as ActualProcessingEndTime,
// OpActualTeardownStartDate,
// OpActualTeardownStartTme,
OpActualExecutionEndDate as ActualExecutionEndDate,
OpActualExecutionEndTime as ActualExecutionEndTime,
// ActualForecastEndDate,
// ActualForecastEndTime,
// EarliestScheduledWaitStartDate,
// EarliestScheduledWaitStartTime,
// EarliestScheduledWaitEndDate,
// EarliestScheduledWaitEndTime,
// LatestScheduledWaitStartDate,
// LatestScheduledWaitStartTime,
// LatestScheduledWaitEndDate,
// LatestScheduledWaitEndTime,
// BreakDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'BreakDurationUnit'
// PlannedBreakDuration,
// @Semantics.quantity.unitOfMeasure: 'BreakDurationUnit'
// ConfirmedBreakDuration,
// OverlapMinimumDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'OverlapMinimumDurationUnit'
// OverlapMinimumDuration,
// MaximumWaitDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'MinimumWaitDurationUnit'
// MaximumWaitDuration,
// MinimumWaitDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'StandardMoveDurationUnit'
// MinimumWaitDuration,
// StandardMoveDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'StandardQueueDurationUnit'
// StandardMoveDuration,
// StandardQueueDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'MinimumQueueDurationUnit'
// StandardQueueDuration,
// MinimumQueueDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'MinimumMoveDurationUnit'
// MinimumQueueDuration,
// MinimumMoveDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'MinimumMoveDurationUnit'
// MinimumMoveDuration,
// @Semantics.quantity.unitOfMeasure: 'OperationStandardDurationUnit'
// OperationStandardDuration,
// OperationStandardDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'MinimumDurationUnit'
// MinimumDuration,
// MinimumDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'ScheduledMoveDurationUnit'
// ScheduledMoveDuration,
// ScheduledMoveDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'ScheduledQueueDurationUnit'
// ScheduledQueueDuration,
// ScheduledQueueDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'ScheduledWaitDurationUnit'
// ScheduledWaitDuration,
// ScheduledWaitDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'OpPlannedSetupDurnUnit'
// OpPlannedSetupDurn,
// OpPlannedSetupDurnUnit,
// @Semantics.quantity.unitOfMeasure: 'OpPlannedProcessingDurnUnit'
// OpPlannedProcessingDurn,
// OpPlannedProcessingDurnUnit,
// @Semantics.quantity.unitOfMeasure: 'OpPlannedTeardownDurnUnit'
// OpPlannedTeardownDurn,
// OpPlannedTeardownDurnUnit,
// StartDateOffsetReferenceCode,
// StartDateOffsetDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'StartDateOffsetDurationUnit'
// StartDateOffsetDuration,
// EndDateOffsetReferenceCode,
// EndDateOffsetDurationUnit,
// @Semantics.quantity.unitOfMeasure: 'EndDateOffsetDurationUnit'
// EndDateOffsetDuration,
-- Standard Values and activities / required on PI operation level? --
WorkCenterStandardWorkQtyUnit1 as StandardWorkQuantityUnit1,
@Semantics.quantity.unitOfMeasure: 'StandardWorkQuantityUnit1' //'WorkCenterStandardWorkQtyUnit1'
WorkCenterStandardWorkQty1 as StandardWorkQuantity1,
CostCtrActivityType1,
WorkCenterStandardWorkQtyUnit2 as StandardWorkQuantityUnit2,
@Semantics.quantity.unitOfMeasure: 'StandardWorkQuantityUnit2' //'WorkCenterStandardWorkQtyUnit2'
WorkCenterStandardWorkQty2 as StandardWorkQuantity2,
CostCtrActivityType2,
WorkCenterStandardWorkQtyUnit3 as StandardWorkQuantityUnit3,
@Semantics.quantity.unitOfMeasure: 'StandardWorkQuantityUnit3' //'WorkCenterStandardWorkQtyUnit3'
WorkCenterStandardWorkQty3 as StandardWorkQuantity3,
CostCtrActivityType3,
WorkCenterStandardWorkQtyUnit4 as StandardWorkQuantityUnit4,
@Semantics.quantity.unitOfMeasure: 'StandardWorkQuantityUnit4' //'WorkCenterStandardWorkQtyUnit4'
WorkCenterStandardWorkQty4 as StandardWorkQuantity4,
CostCtrActivityType4,
WorkCenterStandardWorkQtyUnit5 as StandardWorkQuantityUnit5,
@Semantics.quantity.unitOfMeasure: 'StandardWorkQuantityUnit5' //'WorkCenterStandardWorkQtyUnit5'
WorkCenterStandardWorkQty5 as StandardWorkQuantity5,
CostCtrActivityType5,
WorkCenterStandardWorkQtyUnit6 as StandardWorkQuantityUnit6,
@Semantics.quantity.unitOfMeasure: 'StandardWorkQuantityUnit6' //'WorkCenterStandardWorkQtyUnit6'
WorkCenterStandardWorkQty6 as StandardWorkQuantity6,
CostCtrActivityType6,
// Quantities and UoM
OperationUnit,
OpQtyToBaseQtyDnmntr,
OpQtyToBaseQtyNmrtr,
// phase scrap only per MQC
// OperationScrapPercent,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
OperationReferenceQuantity,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
OpPlannedTotalQuantity,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
OpPlannedScrapQuantity,
-- Confirmed Work Quantities --
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
OpTotalConfirmedYieldQty,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
OpTotalConfirmedScrapQty,
OpWorkQuantityUnit1 as WorkQuantityUnit1,
@Semantics.quantity.unitOfMeasure: 'WorkQuantityUnit1' //'OpWorkQuantityUnit1'
OpConfirmedWorkQuantity1 as ConfirmedWorkQuantity1,
NoFurtherOpWorkQuantity1IsExpd as NoFurtherWorkQuantity1IsExpd,
OpWorkQuantityUnit2 as WorkQuantityUnit2,
@Semantics.quantity.unitOfMeasure: 'WorkQuantityUnit2' //'OpWorkQuantityUnit2'
OpConfirmedWorkQuantity2 as ConfirmedWorkQuantity2,
NoFurtherOpWorkQuantity2IsExpd as NoFurtherWorkQuantity2IsExpd,
OpWorkQuantityUnit3 as WorkQuantityUnit3,
@Semantics.quantity.unitOfMeasure: 'WorkQuantityUnit3' //'OpWorkQuantityUnit3'
OpConfirmedWorkQuantity3 as ConfirmedWorkQuantity3,
NoFurtherOpWorkQuantity3IsExpd as NoFurtherWorkQuantity3IsExpd,
OpWorkQuantityUnit4 as WorkQuantityUnit4,
@Semantics.quantity.unitOfMeasure: 'WorkQuantityUnit4' //'OpWorkQuantityUnit4'
OpConfirmedWorkQuantity4 as ConfirmedWorkQuantity4,
NoFurtherOpWorkQuantity4IsExpd as NoFurtherWorkQuantity4IsExpd,
OpWorkQuantityUnit5 as WorkQuantityUnit5,
@Semantics.quantity.unitOfMeasure: 'WorkQuantityUnit5' //'OpWorkQuantityUnit5'
OpConfirmedWorkQuantity5 as ConfirmedWorkQuantity5,
NoFurtherOpWorkQuantity5IsExpd as NoFurtherWorkQuantity5IsExpd,
OpWorkQuantityUnit6 as WorkQuantityUnit6,
@Semantics.quantity.unitOfMeasure: 'WorkQuantityUnit6' //'OpWorkQuantityUnit6'
OpConfirmedWorkQuantity6 as ConfirmedWorkQuantity6,
NoFurtherOpWorkQuantity6IsExpd as NoFurtherWorkQuantity6IsExpd,
// Business process
cast(BusinessProcess as co_prznr preserving type) as BusinessProcess,
BusinessProcessEntryUnit,
@Semantics.quantity.unitOfMeasure: 'BusinessProcessEntryUnit'
BusinessProcessConfirmedQty,
NoFurtherBusinessProcQtyIsExpd,
BusinessProcRemainingQtyUnit,
@Semantics.quantity.unitOfMeasure: 'BusinessProcRemainingQtyUnit'
BusinessProcessRemainingQty,
// relations
_Phase, // composition
_Order, // to-parent association
_Component,
@Consumption.hidden: true
_Supplier, // for DCLS
@Consumption.hidden: true
_SupplierCompanyByPlant // for DCLS
}
where
ManufacturingOrderCategory = '40'
and MfgOrderOperationIsPhase is initial // no phases
and ManufacturingOrdSubOperation_2 is initial // no secondary resources
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_MANUFACTURINGORDEROPERATION",
"I_WORKCENTER",
"R_PROCESSORDERTP"
],
"ASSOCIATED":
[
"I_SUPPLIER",
"I_SUPPLIERCOMPANYBYPLANT",
"R_PROCESSORDERCOMPONENTTP",
"R_PROCESSORDERPHASETP",
"R_PROCESSORDERTP"
],
"BASE":
[
"I_MANUFACTURINGORDEROPERATION"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/