@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #REQUIRED
@EndUserText.label: 'Production Order Confirmation'
@ObjectModel.usageType: {serviceQuality: #D, sizeCategory: #XL, dataClass: #MIXED}
@VDM.viewType: #TRANSACTIONAL
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.sapObjectNodeType.name: 'ProductionOrderConfirmation'
define root view entity R_ProductionOrdConfirmationTP
as select from I_MfgOrderConfirmation as afru
left outer to one join I_OrderOperationBasic as afvc on afvc.OrderInternalID = afru.OrderInternalID //sub-operation handling
and afvc.OrderOperationInternalID = afru.SuperiorOperationInternalID
composition [0..*] of R_ProdnOrdConfMatlDocItemTP as _ProdnOrdConfMatlDocItm
association [1..1] to E_OrderConfirmation as _Extension // Extensibility CE2102
on $projection.ConfirmationGroup = _Extension.ConfirmationGroup
and $projection.ConfirmationCount = _Extension.ConfirmationCount
{
// Key
key afru.MfgOrderConfirmationGroup as ConfirmationGroup,
key afru.MfgOrderConfirmation as ConfirmationCount,
// Order and Operation Data
afru.ManufacturingOrder as OrderID,
afru.ManufacturingOrderSequence as Sequence,
case
when afru.SuperiorOperationInternalID > '00000000' then
cast(afvc.Operation as vdm_vornr preserving type) //superior operation ID
else
cast(afru.ManufacturingOrderOperation as vdm_vornr preserving type)
end as OrderOperation,
case
when afru.SuperiorOperationInternalID > '00000000' then
cast(afru.ManufacturingOrderOperation as vdm_vornr preserving type)
else ''
end as OrderSuboperation,
afru.ManufacturingOrderType as OrderType,
afru.OrderOperationInternalID, // New field in CE1905!
afru.ConfirmationText,
afru.Language,
afru._MfgOrder.Material,
@Semantics.quantity.unitOfMeasure: 'ProductionUnit'
afru._MfgOrder.MfgOrderPlannedTotalQty as OrderPlannedTotalQty,
afru._MfgOrder.ProductionUnit,
// Attributes
afru.FinalConfirmationType, // New field in CE1905!
//afru.IsFinalConfirmation, // obsolete since CE1905!
afru.OpenReservationsIsCleared,
afru.IsReversed, // Document was cancelled in earlier times
afru.IsReversal, // Document is cancelled right now, it is triggered from outside
afru.APIConfHasNoGoodsMovements, // Control flag for "No Goods Movement via API", is triggered from outside
afru.OrderConfirmationRecordType, // New field in CE2005!
// Adminitstration
afru.MfgOrderConfirmationEntryDate as ConfirmationEntryDate,
afru.MfgOrderConfirmationEntryTime as ConfirmationEntryTime,
afru.EnteredByUser,
afru.LastChangeDate,
afru.LastChangedByUser,
afru.ConfirmationExternalEntryDate,
afru.ConfirmationExternalEntryTime,
afru.EnteredByExternalUser,
afru.ExternalSystemConfirmation,
// General Assignments
afru.Plant,
afru.WorkCenterTypeCode,
afru._WorkCenter.WorkCenter,
afru._Capacity.CapacityCategoryCode, // New field in CE2005!
afru.CapacityRequirementSplit,
// HR Assignments
afru.Personnel,
afru.TimeRecording,
afru.EmployeeWageType,
afru.EmployeeWageGroup,
// Durations
afru.BreakDurationUnit,
afru._BreakDurationUnit.UnitOfMeasureISOCode as BreakDurationUnitISOCode,
afru._BreakDurationUnit.UnitOfMeasureSAPCode as BreakDurationUnitSAPCode, // CE2102
@Semantics.quantity.unitOfMeasure: 'BreakDurationUnit'
@Semantics.quantity.unitOfMeasureIsoCode: 'BreakDurationUnitISOCode'
@Semantics.quantity.unitOfMeasureSapCode: 'BreakDurationUnitSAPCode'
afru.ConfirmedBreakDuration,
afru.EmployeeSuitability,
afru.NumberOfEmployees,
// Dates
afru.PostingDate,
// Time Events
afru.ConfirmedExecutionStartDate,
afru.ConfirmedExecutionStartTime,
afru.ConfirmedSetupEndDate,
afru.ConfirmedSetupEndTime,
afru.ConfirmedProcessingStartDate,
afru.ConfirmedProcessingStartTime,
afru.ConfirmedProcessingEndDate,
afru.ConfirmedProcessingEndTime,
afru.ConfirmedTeardownStartDate,
afru.ConfirmedTeardownStartTime,
afru.ConfirmedExecutionEndDate,
afru.ConfirmedExecutionEndTime,
//Quantities and UoM
afru.ConfirmationUnit,
afru._ConfirmationUnit.UnitOfMeasureISOCode as ConfirmationUnitISOCode,
afru._ConfirmationUnit.UnitOfMeasureSAPCode as ConfirmationUnitSAPCode, // CE2102
@Semantics.quantity.unitOfMeasure: 'ConfirmationUnit'
@Semantics.quantity.unitOfMeasureIsoCode: 'ConfirmationUnitISOCode'
@Semantics.quantity.unitOfMeasureSapCode: 'ConfirmationUnitSAPCode'
afru.ConfirmationYieldQuantity,
@Semantics.quantity.unitOfMeasure: 'ConfirmationUnit'
@Semantics.quantity.unitOfMeasureIsoCode: 'ConfirmationUnitISOCode'
@Semantics.quantity.unitOfMeasureSapCode: 'ConfirmationUnitSAPCode'
afru.ConfirmationScrapQuantity,
@Semantics.quantity.unitOfMeasure: 'ConfirmationUnit'
@Semantics.quantity.unitOfMeasureIsoCode: 'ConfirmationUnitISOCode'
@Semantics.quantity.unitOfMeasureSapCode: 'ConfirmationUnitSAPCode'
afru.ConfirmationReworkQuantity,
afru.VarianceReasonCode,
//Work Quantities and UoM
afru.OpWorkQuantityUnit1,
afru._WorkQuantityUnit1.UnitOfMeasureISOCode as WorkQuantityUnit1ISOCode,
afru._WorkQuantityUnit1.UnitOfMeasureSAPCode as WorkQuantityUnit1SAPCode, // CE2102
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit1'
@Semantics.quantity.unitOfMeasureIsoCode: 'WorkQuantityUnit1ISOCode'
@Semantics.quantity.unitOfMeasureSapCode: 'WorkQuantityUnit1SAPCode'
afru.OpConfirmedWorkQuantity1,
afru.NoFurtherOpWorkQuantity1IsExpd,
afru.OpWorkQuantityUnit2,
afru._WorkQuantityUnit2.UnitOfMeasureISOCode as WorkQuantityUnit2ISOCode,
afru._WorkQuantityUnit2.UnitOfMeasureSAPCode as WorkQuantityUnit2SAPCode, // CE2102
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit2'
@Semantics.quantity.unitOfMeasureIsoCode: 'WorkQuantityUnit2ISOCode'
@Semantics.quantity.unitOfMeasureSapCode: 'WorkQuantityUnit2SAPCode'
afru.OpConfirmedWorkQuantity2,
afru.NoFurtherOpWorkQuantity2IsExpd,
afru.OpWorkQuantityUnit3,
afru._WorkQuantityUnit3.UnitOfMeasureISOCode as WorkQuantityUnit3ISOCode,
afru._WorkQuantityUnit3.UnitOfMeasureSAPCode as WorkQuantityUnit3SAPCode, // CE2102
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit3'
@Semantics.quantity.unitOfMeasureIsoCode: 'WorkQuantityUnit3ISOCode'
@Semantics.quantity.unitOfMeasureSapCode: 'WorkQuantityUnit3SAPCode'
afru.OpConfirmedWorkQuantity3,
afru.NoFurtherOpWorkQuantity3IsExpd,
afru.OpWorkQuantityUnit4,
afru._WorkQuantityUnit4.UnitOfMeasureISOCode as WorkQuantityUnit4ISOCode,
afru._WorkQuantityUnit4.UnitOfMeasureSAPCode as WorkQuantityUnit4SAPCode, // CE2102
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit4'
@Semantics.quantity.unitOfMeasureIsoCode: 'WorkQuantityUnit4ISOCode'
@Semantics.quantity.unitOfMeasureSapCode: 'WorkQuantityUnit4SAPCode'
afru.OpConfirmedWorkQuantity4,
afru.NoFurtherOpWorkQuantity4IsExpd,
afru.OpWorkQuantityUnit5,
afru._WorkQuantityUnit5.UnitOfMeasureISOCode as WorkQuantityUnit5ISOCode,
afru._WorkQuantityUnit5.UnitOfMeasureSAPCode as WorkQuantityUnit5SAPCode, // CE2102
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit5'
@Semantics.quantity.unitOfMeasureIsoCode: 'WorkQuantityUnit5ISOCode'
@Semantics.quantity.unitOfMeasureSapCode: 'WorkQuantityUnit5SAPCode'
afru.OpConfirmedWorkQuantity5,
afru.NoFurtherOpWorkQuantity5IsExpd,
afru.OpWorkQuantityUnit6,
afru._WorkQuantityUnit6.UnitOfMeasureISOCode as WorkQuantityUnit6ISOCode,
afru._WorkQuantityUnit6.UnitOfMeasureSAPCode as WorkQuantityUnit6SAPCode,
@Semantics.quantity.unitOfMeasure: 'OpWorkQuantityUnit6'
@Semantics.quantity.unitOfMeasureIsoCode: 'WorkQuantityUnit6ISOCode'
@Semantics.quantity.unitOfMeasureSapCode: 'WorkQuantityUnit6SAPCode'
afru.OpConfirmedWorkQuantity6,
afru.NoFurtherOpWorkQuantity6IsExpd,
//Business Process
afru.BusinessProcessEntryUnit,
afru._BusinessProcessUnit.UnitOfMeasureISOCode as BusProcessEntrUnitISOCode,
afru._BusinessProcessUnit.UnitOfMeasureSAPCode as BusProcessEntryUnitSAPCode, // CE2102
@Semantics.quantity.unitOfMeasure: 'BusinessProcessEntryUnit'
@Semantics.quantity.unitOfMeasureIsoCode: 'BusProcessEntrUnitISOCode'
@Semantics.quantity.unitOfMeasureSapCode: 'BusProcessEntryUnitSAPCode'
afru.BusinessProcessConfirmedQty,
afru.NoFurtherBusinessProcQtyIsExpd,
// Shift Fields
afru.ShiftGrouping,
afru.ShiftDefinition,
// Associations
_ProdnOrdConfMatlDocItm
}
where afru.ManufacturingOrderCategory = '10'
and afru.IsReversal <> 'X'; //only activ confirmations and cancelled confirmations are relevant
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CAPACITY",
"I_MANUFACTURINGORDER",
"I_MFGORDERCONFIRMATION",
"I_ORDEROPERATIONBASIC",
"I_UNITOFMEASURE",
"I_WORKCENTER"
],
"ASSOCIATED":
[
"R_PRODNORDCONFMATLDOCITEMTP"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/