@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@EndUserText.label: 'Production Order Operation - TP'
//@Metadata.allowExtensions: true
@Metadata.ignorePropagatedAnnotations: true //check
@ObjectModel.modelingPattern: #TRANSACTIONAL_PROJECTED_ENTITY
@ObjectModel.supportedCapabilities: [#TRANSACTIONAL_PROVIDER]
//@ObjectModel.representativeKey: 'OrderOperationInternalID' //check
//@ObjectModel.semanticKey: 'ProductionOrderOperation' //check
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #XL, dataClass: #TRANSACTIONAL} //check
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API //check
@VDM.viewType: #TRANSACTIONAL //check
//
// ************************ DO NOT USE ************************
// * This RAP BO is for testing purpose only *
// **************************************************************
define view entity R_ProductionOrderOperationTP
as select from I_ManufacturingOrderOperation as Operation
// BO relation
association to parent R_ProductionOrderSequenceTP as _Sequence on $projection.ProductionOrder = _Sequence.ProductionOrder
and $projection.ProductionOrderSequence = _Sequence.ProductionOrderSequence
association [1..1] to R_ProductionOrderTP as _ProductionOrder on $projection.ProductionOrder = _ProductionOrder.ProductionOrder
association [0..*] to R_ProductionOrderOpComponentTP as _OperationComponent on $projection.Reservation = _OperationComponent.Reservation
and $projection.OrderOperationInternalID = _OperationComponent.OrderOperationInternalID
// extension association
association [1..1] to E_ProductionOrderOperation as _Extension on $projection.OrderInternalID = _Extension.OrderInternalID
and $projection.OrderOperationInternalID = _Extension.OrderOperationInternalID
{
// Technical Key
key MfgOrderInternalID as OrderInternalID,
key OrderOperationInternalID,
cast(ManufacturingOrder as vdm_manufacturingorder preserving type) as ProductionOrder,
cast( ManufacturingOrderSequence as plnfolge preserving type ) as ProductionOrderSequence,
cast( ManufacturingOrderOperation as vdm_vornr preserving type ) as ProductionOrderOperation,
cast( ManufacturingOrderSubOperation as vdm_uvorn preserving type ) as ProductionOrderSubOperation,
// MfgOrderOperationOrSubOp, //conv exit NUMCV - replace DE cast check
// ManufacturingOrderCategory,
// ProductionOrderType,
// ProductionSupervisor,
// MRPController,
// ResponsiblePlannerGroup,
// ProductConfiguration,
// InspectionLotType,
// ManufacturingOrderImportance,
// MfgOrderOperationText as OperationText, "AS
cast( MfgOrderOperationText as ltxa1 preserving type ) as OperationText,
// Language,
OperationStandardTextCode,
// OperationHasLongText,
// OperationIsToBeDeleted,
// MfgOrderOperationIsPhase,
// MfgOrderPhaseSuperiorOperation, //conv exit NUMCV - replace DE cast check
// NumberOfCapacities,
// OperationImportance,
// SuperiorOperationInternalID,
Plant,
_WorkCenter.WorkCenter as WorkCenter,
//@Consumption.hidden: true
WorkCenterInternalID,
//@Consumption.hidden: true
// WorkCenterTypeCode,
OperationControlProfile,
// ControlRecipeDestination,
OperationConfirmation,
// NumberOfOperationConfirmations,
// FactoryCalendar,
// CapacityRequirement,
// CapacityRequirementItem,
ChangeNumber,
ObjectInternalID,
_ProductionOrder.Reservation as Reservation,
NumberOfConfirmationSlips,
cast(CostElement as kstar preserving type ) as CostElement,
EmployeeWageType,
EmployeeWageGroup,
EmployeeSuitability,
NumberOfTimeTickets,
NumberOfEmployees,
OperationSetupGroupCategory,
OperationSetupGroup,
OperationSetupType,
OperationSplitIsRequired,
MaximumNumberOfSplits,
LeadTimeReductionStrategy,
OpSchedldReductionLevel,
// OperationTrackingNumber,
// BillOfOperationsType,
// BillOfOperationsGroup,
// BillOfOperationsVariant,
// BillOfOperationsSequence,
// BOOOperationInternalID,
// BillOfOperationsVersion,
// BillOfMaterialCategory,
// BillOfMaterialInternalID, //conv exit NUMCV - replace DE cast check
// BillOfMaterialItemNodeNumber,
// BOMItemNodeCount,
@Semantics.booleanIndicator
ExtProcgOperationHasSubcontrg,
PurchasingOrganization,
PurchasingGroup,
// PurchaseRequisition,
// PurchaseRequisitionItem,
// PurchaseOrder,
// PurchaseOrderItem,
PurchasingInfoRecord,
// PurgInfoRecdDataIsFixed,
// PurchasingInfoRecordCategory,
Supplier,
GoodsRecipientName,
UnloadingPointName,
MaterialGroup,
OpExternalProcessingCurrency,
@Semantics.amount.currencyCode: 'OpExternalProcessingCurrency'
OpExternalProcessingPrice,
NumberOfOperationPriceUnits,
// CompanyCode,
// BusinessArea,
// ControllingArea,
// ProfitCenter,
// RequestingCostCenter,
// CostingVariant,
// CostingSheet,
// CostEstimate,
// ControllingObjectCurrency,
// ControllingObjectClass,
// FunctionalArea,
// TaxJurisdiction,
// Personnel,
// OperationSetupGroupCategory,
// OperationSetupGroup,
// OperationSetupType,
// OperationSplitIsRequired,
// MaximumNumberOfSplits,
// LeadTimeReductionStrategy,
// OpSchedldReductionLevel,
// OperationOverlappingIsRequired,
// OperationOverlappingIsPossible,
// OperationsIsAlwaysOverlapping,
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,
OpActualExecutionStartTime,
OpActualSetupEndDate,
OpActualSetupEndTime,
OpActualProcessingStartDate,
OpActualProcessingStartTime,
OpActualProcessingEndDate,
OpActualProcessingEndTime,
OpActualTeardownStartDate,
OpActualTeardownStartTme,
OpActualExecutionEndDate,
OpActualExecutionEndTime,
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: 'OperationStandardDurationUnit'
// PlannedDeliveryDuration,
@Semantics.quantity.unitOfMeasure: 'OpPlannedSetupDurnUnit'
OpPlannedSetupDurn,
OpPlannedSetupDurnUnit,
@Semantics.quantity.unitOfMeasure: 'OpPlannedProcessingDurnUnit'
OpPlannedProcessingDurn,
OpPlannedProcessingDurnUnit,
@Semantics.quantity.unitOfMeasure: 'OpPlannedTeardownDurnUnit'
OpPlannedTeardownDurn,
OpPlannedTeardownDurnUnit,
// @Semantics.quantity.unitOfMeasure: 'ActualForecastDurationUnit'
// ActualForecastDuration,
// ActualForecastDurationUnit,
StartDateOffsetReferenceCode,
StartDateOffsetDurationUnit,
@Semantics.quantity.unitOfMeasure: 'StartDateOffsetDurationUnit'
StartDateOffsetDuration,
EndDateOffsetReferenceCode,
EndDateOffsetDurationUnit,
@Semantics.quantity.unitOfMeasure: 'EndDateOffsetDurationUnit'
EndDateOffsetDuration,
// StandardWorkFormulaParamGroup,
OperationUnit,
OpQtyToBaseQtyDnmntr,
OpQtyToBaseQtyNmrtr,
OperationScrapPercent,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
OperationReferenceQuantity,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
OpPlannedTotalQuantity,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
OpPlannedScrapQuantity,
// @Semantics.quantity.unitOfMeasure: 'OperationUnit'
// OpPlannedYieldQuantity,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
OpTotalConfirmedYieldQty,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
OpTotalConfirmedScrapQty,
@Semantics.quantity.unitOfMeasure: 'OperationUnit'
OperationConfirmedReworkQty,
// ProductionUnit,
// @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
// OpTotConfdYieldQtyInOrdQtyUnit,
OpWorkQuantityUnit1,
// @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit1'
// OpConfirmedWorkQuantity1,
// NoFurtherOpWorkQuantity1IsExpd,
OpWorkQuantityUnit2,
// @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit2'
// OpConfirmedWorkQuantity2,
// NoFurtherOpWorkQuantity2IsExpd,
OpWorkQuantityUnit3,
// @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit3'
// OpConfirmedWorkQuantity3,
// NoFurtherOpWorkQuantity3IsExpd,
OpWorkQuantityUnit4,
// @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit4'
// OpConfirmedWorkQuantity4,
// NoFurtherOpWorkQuantity4IsExpd,
OpWorkQuantityUnit5,
// @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit5'
// OpConfirmedWorkQuantity5,
// NoFurtherOpWorkQuantity5IsExpd,
OpWorkQuantityUnit6,
// @Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit6'
// OpConfirmedWorkQuantity6,
// NoFurtherOpWorkQuantity6IsExpd,
WorkCenterStandardWorkQtyUnit1,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit1'
WorkCenterStandardWorkQty1,
CostCtrActivityType1,
WorkCenterStandardWorkQtyUnit2,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit2'
WorkCenterStandardWorkQty2,
CostCtrActivityType2,
WorkCenterStandardWorkQtyUnit3,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit3'
WorkCenterStandardWorkQty3,
CostCtrActivityType3,
WorkCenterStandardWorkQtyUnit4,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit4'
WorkCenterStandardWorkQty4,
CostCtrActivityType4,
WorkCenterStandardWorkQtyUnit5,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit5'
WorkCenterStandardWorkQty5,
CostCtrActivityType5,
WorkCenterStandardWorkQtyUnit6,
@Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit6'
WorkCenterStandardWorkQty6,
CostCtrActivityType6,
// @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit1'
// ForecastWorkQuantity1,
// @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit2'
// ForecastWorkQuantity2,
// @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit3'
// ForecastWorkQuantity3,
// @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit4'
// ForecastWorkQuantity4,
// @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit5'
// ForecastWorkQuantity5,
// @Semantics.quantity.unitOfMeasure: 'WorkCenterStandardWorkQtyUnit6'
// ForecastWorkQuantity6,
cast(BusinessProcess as co_prznr preserving type ) as BusinessProcess,
BusinessProcessEntryUnit,
@Semantics.quantity.unitOfMeasure: 'BusinessProcessEntryUnit'
BusinessProcessConfirmedQty,
NoFurtherBusinessProcQtyIsExpd,
// BusinessProcRemainingQtyUnit,
// @Semantics.quantity.unitOfMeasure: 'BusinessProcRemainingQtyUnit'
// BusinessProcessRemainingQty,
// SetupOpActyNtwkInstance,
// ProduceOpActyNtwkInstance,
// TeardownOpActyNtwkInstance,
// FreeDefinedTableFieldSemantic,
// FreeDefinedAttribute01,
// FreeDefinedAttribute02,
// FreeDefinedAttribute03,
// FreeDefinedAttribute04,
// FreeDefinedQuantity1Unit,
// @Semantics.quantity.unitOfMeasure: 'FreeDefinedQuantity1Unit'
// FreeDefinedQuantity1,
// FreeDefinedQuantity2Unit,
// @Semantics.quantity.unitOfMeasure: 'FreeDefinedQuantity2Unit'
// FreeDefinedQuantity2,
// FreeDefinedAmount1Currency,
// @Semantics.amount.currencyCode: 'FreeDefinedAmount1Currency'
// FreeDefinedAmount1,
// FreeDefinedAmount2Currency,
// @Semantics.amount.currencyCode: 'FreeDefinedAmount2Currency'
// FreeDefinedAmount2,
// FreeDefinedDate1,
// FreeDefinedDate2,
// FreeDefinedIndicator1,
// FreeDefinedIndicator2,
/* Associations */
_Supplier, // for DCLS
_SupplierCompanyByPlant, // for DCLS
_ProductionOrder,
_OperationComponent,
_Sequence
}
where
ManufacturingOrderCategory = '10'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_MANUFACTURINGORDEROPERATION",
"I_WORKCENTER",
"R_PRODUCTIONORDERTP"
],
"ASSOCIATED":
[
"I_SUPPLIER",
"I_SUPPLIERCOMPANYBYPLANT",
"R_PRODUCTIONORDEROPCOMPONENTTP",
"R_PRODUCTIONORDERSEQUENCETP",
"R_PRODUCTIONORDERTP"
],
"BASE":
[
"I_MANUFACTURINGORDEROPERATION"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/