I_MfgOrderOperationConfOper

DDL: I_MFGORDEROPERATIONCONFOPER SQL: IPPMFGORDOPCONFO Type: view COMPOSITE Package: PPH_ANALYTICS

Mfg Order Operation Confirmation with Operation Details

I_MfgOrderOperationConfOper is a Composite CDS View (Cube) that provides data about "Mfg Order Operation Confirmation with Operation Details" in SAP S/4HANA. It reads from 4 data sources (I_MfgOrderOperationConf, P_PPH_ReportingDate3, I_OrderItem, I_OrderOperation) and exposes 147 fields with key fields MfgOrderConfirmation, MfgOrderConfirmationCount. It has 7 associations to related views. Part of development package PPH_ANALYTICS.

Data Sources (4)

SourceAliasJoin Type
I_MfgOrderOperationConf conf from
P_PPH_ReportingDate3 date inner
I_OrderItem item inner
I_OrderOperation oper inner

Associations (7)

CardinalityTargetAliasCondition
[0..1] I_WorkCenterBySemanticKey _WorkCenterBySemanticKey $projection.WorkCenter = _WorkCenterBySemanticKey.WorkCenter and $projection.ProductionPlant = _WorkCenterBySemanticKey.Plant
[1..1] I_CalendarDate _PostingDate $projection.PostingDate = _PostingDate.CalendarDate
[1..1] I_CalendarDate _EntryDate $projection.MfgOrderConfirmationEntryDate = _EntryDate.CalendarDate
[0..1] I_CalendarDate _LastChangeDate $projection.LastChangeDate = _LastChangeDate.CalendarDate
[0..1] I_WeekDay _EntryDateWeekDay $projection.EntryDateWeekDay = _EntryDateWeekDay.WeekDay
[0..1] I_CalendarMonth _EntryDateMonth $projection.EntryDateMonth = _EntryDateMonth.CalendarMonth
[1..1] I_ReportingPeriod _ReportingPeriod $projection.ReportingPeriod = _ReportingPeriod.ReportingPeriod

Annotations (14)

NameValueLevelField
AbapCatalog.sqlViewName IPPMFGORDOPCONFO view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED view
Analytics.dataCategory #CUBE view
ClientHandling.algorithm #SESSION_VARIABLE view
ClientHandling.type #CLIENT_DEPENDENT view
Metadata.allowExtensions true view
ObjectModel.modelingPattern #ANALYTICAL_CUBE view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #COMPOSITE view
EndUserText.label Mfg Order Operation Confirmation with Operation Details view

Fields (147)

KeyFieldSource TableSource FieldDescription
KEY MfgOrderConfirmation I_MfgOrderOperationConf MfgOrderConfirmation
KEY MfgOrderConfirmationCount I_MfgOrderOperationConf MfgOrderConfirmationCount
ConfirmationText I_MfgOrderOperationConf ConfirmationText
Language I_MfgOrderOperationConf Language
Material I_OrderItem Material
Plant I_MfgOrderOperationConf Plant
WorkCenter
WorkCenterTypeCode I_MfgOrderOperationConf WorkCenterTypeCode
WorkCenterInternalID I_MfgOrderOperationConf WorkCenterInternalID
CapacityInternalID I_MfgOrderOperationConf CapacityInternalID
CapacityRequirementSplit I_MfgOrderOperationConf CapacityRequirementSplit
IsFinalConfirmation I_MfgOrderOperationConf IsFinalConfirmation
OpenReservationsIsCleared I_MfgOrderOperationConf OpenReservationsIsCleared
IsReversed I_MfgOrderOperationConf IsReversed
IsReversal I_MfgOrderOperationConf IsReversal
CancldMfgOrderOpConfCount I_MfgOrderOperationConf CancldMfgOrderOpConfCount
IsConfirmedByMilestoneConf I_MfgOrderOperationConf IsConfirmedByMilestoneConf
MilestoneIsConfirmed I_MfgOrderOperationConf MilestoneIsConfirmed
MilestoneConfirmationType I_MfgOrderOperationConf MilestoneConfirmationType
EnteredByUser I_MfgOrderOperationConf EnteredByUser
MfgOrderConfirmationEntryDate I_MfgOrderOperationConf MfgOrderConfirmationEntryDate
MfgOrderConfirmationEntryTime I_MfgOrderOperationConf MfgOrderConfirmationEntryTime
MfgOrderConfirmationEntryHour
EntryDateWeekDay P_PPH_ReportingDate3 ReportingDateWeekDay
EntryDateWeek P_PPH_ReportingDate3 ReportingDateWeek
EntryDateMonth P_PPH_ReportingDate3 ReportingDateMonth
EntryDateYear P_PPH_ReportingDate3 ReportingDateYear
EntryDateYearMonth
ReportingPeriod
LastChangeDate I_MfgOrderOperationConf LastChangeDate
LastChangedByUser I_MfgOrderOperationConf LastChangedByUser
ConfirmationExternalEntryDate I_MfgOrderOperationConf ConfirmationExternalEntryDate
ConfirmationExternalEntryTime I_MfgOrderOperationConf ConfirmationExternalEntryTime
EnteredByExternalUser I_MfgOrderOperationConf EnteredByExternalUser
ManufacturingOrder I_MfgOrderOperationConf ManufacturingOrder
ManufacturingOrderSequence I_MfgOrderOperationConf ManufacturingOrderSequence
ManufacturingOrderOperation I_MfgOrderOperationConf ManufacturingOrderOperation
ManufacturingOrderOperation_2 I_MfgOrderOperationConf ManufacturingOrderOperation_2
ManufacturingOrderCategory I_MfgOrderOperationConf ManufacturingOrderCategory
ManufacturingOrderType I_MfgOrderOperationConf ManufacturingOrderType
ProductionPlant I_MfgOrderOperationConf ProductionPlant
ProductionSupervisor I_MfgOrderOperationConf ProductionSupervisor
MRPController I_MfgOrderOperationConf MRPController
MRPPlant I_OrderItem MRPPlant
MRPArea I_OrderItem MRPArea
OrderInternalBillOfOperations I_MfgOrderOperationConf OrderInternalBillOfOperations
OrderIntBillOfOperationsItem I_MfgOrderOperationConf OrderIntBillOfOperationsItem
BusinessArea I_MfgOrderOperationConf BusinessArea
CompanyCode I_MfgOrderOperationConf CompanyCode
ControllingArea I_MfgOrderOperationConf ControllingArea
ProfitCenter
ProductCostCollector I_MfgOrderOperationConf ProductCostCollector
Personnel
TimeRecording I_MfgOrderOperationConf TimeRecording
EmployeeWageType I_MfgOrderOperationConf EmployeeWageType
EmployeeWageGroup I_MfgOrderOperationConf EmployeeWageGroup
EmployeeSuitability I_MfgOrderOperationConf EmployeeSuitability
NumberOfEmployees I_MfgOrderOperationConf NumberOfEmployees
ConfirmedExecutionStartDate I_MfgOrderOperationConf ConfirmedExecutionStartDate
ConfirmedExecutionEndDate I_MfgOrderOperationConf ConfirmedExecutionEndDate
PostingDate I_MfgOrderOperationConf PostingDate
VarianceReasonCode I_MfgOrderOperationConf VarianceReasonCode
ConfirmationUnit I_MfgOrderOperationConf ConfirmationUnit
ConfirmationYieldQuantity I_MfgOrderOperationConf ConfirmationYieldQuantity
ConfirmationScrapQuantity I_MfgOrderOperationConf ConfirmationScrapQuantity
ConfirmationReworkQuantity I_MfgOrderOperationConf ConfirmationReworkQuantity
ConfirmationTotalQuantity I_MfgOrderOperationConf ConfirmationTotalQuantity
OperationPlannedScrapPercent
ProductionUnit I_OrderItem ProductionUnit
MfgOrderItemPlannedTotalQty
MfgOrderItemPlannedScrapQty
MfgOrderItemIsFinallyDelivered I_OrderItem IsCompletelyDelivered
MfgOrderConfirmedYieldQty I_MfgOrderOperationConf MfgOrderConfirmedYieldQty
MfgOrderConfirmedScrapQty I_MfgOrderOperationConf MfgOrderConfirmedScrapQty
MfgOrderConfirmedReworkQty I_MfgOrderOperationConf MfgOrderConfirmedReworkQty
MfgOrderConfirmedTotalQty I_MfgOrderOperationConf MfgOrderConfirmedTotalQty
MfgOrderConfdScrapReworkQty
OperationUnit
OpPlannedTotalQuantity I_OrderOperation OpPlannedTotalQuantity
OpPlannedScrapQuantity I_OrderOperation OpPlannedScrapQuantity
OpTotalConfirmedScrapQty I_OrderOperation OpTotalConfirmedScrapQty
OpTotalConfirmedYieldQty I_OrderOperation OpTotalConfirmedYieldQty
OperationConfirmedReworkQty I_OrderOperation OperationConfirmedReworkQty
OpWorkQuantityUnit1 I_MfgOrderOperationConf OpWorkQuantityUnit1
OpConfirmedWorkQuantity1 I_MfgOrderOperationConf OpConfirmedWorkQuantity1
NoFurtherOpWorkQuantity1IsExpd I_MfgOrderOperationConf NoFurtherOpWorkQuantity1IsExpd
OpWorkQuantityUnit2 I_MfgOrderOperationConf OpWorkQuantityUnit2
OpConfirmedWorkQuantity2 I_MfgOrderOperationConf OpConfirmedWorkQuantity2
NoFurtherOpWorkQuantity2IsExpd I_MfgOrderOperationConf NoFurtherOpWorkQuantity2IsExpd
OpWorkQuantityUnit3 I_MfgOrderOperationConf OpWorkQuantityUnit3
OpConfirmedWorkQuantity3 I_MfgOrderOperationConf OpConfirmedWorkQuantity3
NoFurtherOpWorkQuantity3IsExpd I_MfgOrderOperationConf NoFurtherOpWorkQuantity3IsExpd
OpWorkQuantityUnit4 I_MfgOrderOperationConf OpWorkQuantityUnit4
OpConfirmedWorkQuantity4 I_MfgOrderOperationConf OpConfirmedWorkQuantity4
NoFurtherOpWorkQuantity4IsExpd I_MfgOrderOperationConf NoFurtherOpWorkQuantity4IsExpd
OpWorkQuantityUnit5 I_MfgOrderOperationConf OpWorkQuantityUnit5
OpConfirmedWorkQuantity5 I_MfgOrderOperationConf OpConfirmedWorkQuantity5
NoFurtherOpWorkQuantity5IsExpd I_MfgOrderOperationConf NoFurtherOpWorkQuantity5IsExpd
OpWorkQuantityUnit6 I_MfgOrderOperationConf OpWorkQuantityUnit6
OpConfirmedWorkQuantity6 I_MfgOrderOperationConf OpConfirmedWorkQuantity6
NoFurtherOpWorkQuantity6IsExpd I_MfgOrderOperationConf NoFurtherOpWorkQuantity6IsExpd
BusinessProcess I_MfgOrderOperationConf BusinessProcess
BusinessProcessEntryUnit I_MfgOrderOperationConf BusinessProcessEntryUnit
BusinessProcessConfirmedQty I_MfgOrderOperationConf BusinessProcessConfirmedQty
NoFurtherBusinessProcQtyIsExpd I_MfgOrderOperationConf NoFurtherBusinessProcQtyIsExpd
BusinessProcRemainingQtyUnit I_MfgOrderOperationConf BusinessProcRemainingQtyUnit
BusinessProcessRemainingQty I_MfgOrderOperationConf BusinessProcessRemainingQty
_ConfirmationGroup I_MfgOrderOperationConf _ConfirmationGroup
_ManufacturingOrder I_MfgOrderOperationConf _ManufacturingOrder
_MfgOrder I_MfgOrderOperationConf _MfgOrder
_MfgOrderSequence I_MfgOrderOperationConf _MfgOrderSequence
_MfgOrderOperation I_MfgOrderOperationConf _MfgOrderOperation
_MfgOrderCategory I_MfgOrderOperationConf _MfgOrderCategory
_MfgOrderType I_MfgOrderOperationConf _MfgOrderType
_OrdInternalBillOfOperations I_MfgOrderOperationConf _OrdInternalBillOfOperations
_OrderInternalID I_MfgOrderOperationConf _OrderInternalID
_ConfirmationUnit I_MfgOrderOperationConf _ConfirmationUnit
_ProductionUnit I_OrderItem _ProductionUnit
_User I_MfgOrderOperationConf _User
_Language I_MfgOrderOperationConf _Language
_WorkCenterType I_MfgOrderOperationConf _WorkCenterType
_WorkCenter I_MfgOrderOperationConf _WorkCenter
_WorkCenterBySemanticKey _WorkCenterBySemanticKey
_Plant I_MfgOrderOperationConf _Plant
_Material I_OrderItem _Material
_ProductionPlant I_MfgOrderOperationConf _ProductionPlant
_ProductionSupervisor I_MfgOrderOperationConf _ProductionSupervisor
_MRPController I_MfgOrderOperationConf _MRPController
_MRPPlant I_OrderItem _MRPPlant
_MRPArea I_OrderItem _MRPArea
_Capacity I_MfgOrderOperationConf _Capacity
_BusinessArea I_MfgOrderOperationConf _BusinessArea
_CompanyCode I_MfgOrderOperationConf _CompanyCode
_ControllingArea I_MfgOrderOperationConf _ControllingArea
_ProfitCenter I_MfgOrderOperationConf _ProfitCenter
_BusinessProcess I_MfgOrderOperationConf _BusinessProcess
_ProductCostCollector I_MfgOrderOperationConf _ProductCostCollector
_VarianceReason I_MfgOrderOperationConf _VarianceReason
_Employee I_MfgOrderOperationConf _Employee
_EmployeeWageGroup I_MfgOrderOperationConf _EmployeeWageGroup
_EmployeeSuitability I_MfgOrderOperationConf _EmployeeSuitability
_EntryDate _EntryDate
_LastChangeDate _LastChangeDate
_PostingDate _PostingDate
_EntryDateWeekDay _EntryDateWeekDay
_EntryDateMonth _EntryDateMonth
_ReportingPeriod _ReportingPeriod
@AbapCatalog.sqlViewName: 'IPPMFGORDOPCONFO'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #NOT_REQUIRED
@AccessControl.privilegedAssociations: ['_MRPController', '_ProductionSupervisor', '_User']
@Analytics.dataCategory: #CUBE
@ClientHandling.algorithm: #SESSION_VARIABLE
@ClientHandling.type: #CLIENT_DEPENDENT
@Metadata.allowExtensions: true
@ObjectModel.modelingPattern: #ANALYTICAL_CUBE
@ObjectModel.supportedCapabilities: [#ANALYTICAL_PROVIDER]
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #XL, dataClass: #MIXED}
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Mfg Order Operation Confirmation with Operation Details'

define view I_MfgOrderOperationConfOper
  as select from I_MfgOrderOperationConf as conf
    inner join   I_OrderItem             as item on  item.OrderID   = conf.ManufacturingOrder
                                                 and item.OrderItem = '0001'
    inner join   I_OrderOperation        as oper on  oper.OrderInternalID          = conf.OrderInternalBillOfOperations
                                                 and oper.OrderOperationInternalID = conf.OrderIntBillOfOperationsItem
    inner join   P_PPH_ReportingDate3    as date on  conf.ConfirmedExecutionEndDate = date.ReportingDate                                         

  association [0..1] to I_WorkCenterBySemanticKey as _WorkCenterBySemanticKey on  $projection.WorkCenter      = _WorkCenterBySemanticKey.WorkCenter
                                                                              and $projection.ProductionPlant = _WorkCenterBySemanticKey.Plant
  association [1..1] to I_CalendarDate            as _PostingDate             on  $projection.PostingDate = _PostingDate.CalendarDate
  association [1..1] to I_CalendarDate            as _EntryDate               on  $projection.MfgOrderConfirmationEntryDate = _EntryDate.CalendarDate
  association [0..1] to I_CalendarDate            as _LastChangeDate          on  $projection.LastChangeDate = _LastChangeDate.CalendarDate
  association [0..1] to I_WeekDay                 as _EntryDateWeekDay        on  $projection.EntryDateWeekDay = _EntryDateWeekDay.WeekDay
  association [0..1] to I_CalendarMonth           as _EntryDateMonth          on  $projection.EntryDateMonth = _EntryDateMonth.CalendarMonth
  association [1..1] to I_ReportingPeriod         as _ReportingPeriod         on  $projection.ReportingPeriod = _ReportingPeriod.ReportingPeriod
{
      // Key

      @ObjectModel.foreignKey.association: '_ConfirmationGroup'
  key conf.MfgOrderConfirmation,
      @ObjectModel.text.element: ['ConfirmationText']
  key conf.MfgOrderConfirmationCount,

      // Short Text

      @Semantics.text: true
      conf.ConfirmationText,
      @ObjectModel.foreignKey.association: '_Language'
      conf.Language,

      // Assignments

      @ObjectModel.foreignKey.association: '_Material'
      item.Material,
      @ObjectModel.foreignKey.association: '_Plant'
      conf.Plant,
      @ObjectModel.foreignKey.association: '_WorkCenterBySemanticKey'
      cast(conf._WorkCenter.WorkCenter as pph_arbpl preserving type) as WorkCenter,
      @ObjectModel.foreignKey.association: '_WorkCenterType'
      conf.WorkCenterTypeCode,
      @ObjectModel.foreignKey.association: '_WorkCenter'
      conf.WorkCenterInternalID,
      @ObjectModel.foreignKey.association: '_Capacity'
      conf.CapacityInternalID,
      conf.CapacityRequirementSplit,

      // Attributes

      conf.IsFinalConfirmation,
      conf.OpenReservationsIsCleared,
      conf.IsReversed,
      conf.IsReversal,
      conf.CancldMfgOrderOpConfCount,
      conf.IsConfirmedByMilestoneConf,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: 'MilestoneConfirmationType'      
      conf.MilestoneIsConfirmed,            // wrong data type for indicators

      conf.MilestoneConfirmationType,

      // Admin

      @Semantics.user.createdBy: true
      conf.EnteredByUser,
      @Semantics.systemDate.createdAt: true
      conf.MfgOrderConfirmationEntryDate,
      @Semantics.systemTime.createdAt: true
      conf.MfgOrderConfirmationEntryTime,
      cast(left(conf.MfgOrderConfirmationEntryTime,2) as pph_entryhour)              as MfgOrderConfirmationEntryHour,
      @ObjectModel.foreignKey.association: '_EntryDateWeekDay'
      date.ReportingDateWeekDay                                                      as EntryDateWeekDay,
      @Semantics.calendar.week: true
      date.ReportingDateWeek                                                         as EntryDateWeek,
      @ObjectModel.foreignKey.association: '_EntryDateMonth'
      //@Semantics.calendar.month: true

      date.ReportingDateMonth                                                        as EntryDateMonth,
      @Semantics.calendar.year: true
      date.ReportingDateYear                                                         as EntryDateYear,
      cast(concat(date.ReportingDateYear, date.ReportingDateMonth) as vdm_yearmonth) as EntryDateYearMonth,
      @ObjectModel.foreignKey.association: '_ReportingPeriod'
      cast(date.ReportingPeriod as pph_reportingperiod preserving type)              as ReportingPeriod,

      @Semantics.systemDate.lastChangedAt: true
      conf.LastChangeDate,
      @Semantics.user.lastChangedBy: true
      conf.LastChangedByUser,
      @Semantics.systemDate.createdAt: true
      conf.ConfirmationExternalEntryDate,
      @Semantics.systemTime.createdAt: true
      conf.ConfirmationExternalEntryTime,
      conf.EnteredByExternalUser,

      // Order and operation data

      @ObjectModel.foreignKey.association: '_MfgOrder'
      conf.ManufacturingOrder,
      @ObjectModel.foreignKey.association: '_MfgOrderSequence'
      conf.ManufacturingOrderSequence,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: 'ManufacturingOrderOperation_2'
      conf.ManufacturingOrderOperation,        // with conv. exit NUMCV

      conf.ManufacturingOrderOperation_2,      // w/o conversion exit

      @ObjectModel.foreignKey.association: '_MfgOrderCategory'
      conf.ManufacturingOrderCategory,
      @ObjectModel.foreignKey.association: '_MfgOrderType'
      conf.ManufacturingOrderType,
      @ObjectModel.foreignKey.association: '_ProductionPlant'
      conf.ProductionPlant,
      @ObjectModel.foreignKey.association: '_ProductionSupervisor'
      conf.ProductionSupervisor,
      @ObjectModel.foreignKey.association: '_MRPController'
      conf.MRPController,
      @ObjectModel.foreignKey.association: '_MRPPlant'
      item.MRPPlant,
      @ObjectModel.foreignKey.association: '_MRPArea'
      item.MRPArea,
      @ObjectModel.foreignKey.association: '_OrdInternalBillOfOperations'
      conf.OrderInternalBillOfOperations,
      @ObjectModel.foreignKey.association: '_MfgOrderOperation'
      conf.OrderIntBillOfOperationsItem,

      // Assignments FI/CO

      @ObjectModel.foreignKey.association: '_BusinessArea'
      conf.BusinessArea,
      @ObjectModel.foreignKey.association: '_CompanyCode'
      conf.CompanyCode,
      @ObjectModel.foreignKey.association: '_ControllingArea'
      conf.ControllingArea,
--    @ObjectModel.foreignKey.association: '_ProfitCenter'
      conf.ProfitCenter,
      @ObjectModel.foreignKey.association: '_ProductCostCollector'
      conf.ProductCostCollector,

      // Assignments HR

--    @ObjectModel.foreignKey.association: '_Employee'
      conf.Personnel,
      conf.TimeRecording,
      conf.EmployeeWageType,
      @ObjectModel.foreignKey.association: '_EmployeeWageGroup'
      conf.EmployeeWageGroup,
      @ObjectModel.foreignKey.association: '_EmployeeSuitability'
      conf.EmployeeSuitability,
      conf.NumberOfEmployees,

      // Dates

      conf.ConfirmedExecutionStartDate,
      conf.ConfirmedExecutionEndDate,
      @ObjectModel.foreignKey.association: '_PostingDate'
      @Semantics.businessDate.at: true
      conf.PostingDate,

      // Quantities and UoM

      @ObjectModel.foreignKey.association: '_VarianceReason'
      conf.VarianceReasonCode,
      @Semantics.unitOfMeasure: true
      conf.ConfirmationUnit,
      @Semantics.quantity.unitOfMeasure: 'ConfirmationUnit'
      @DefaultAggregation: #SUM
      conf.ConfirmationYieldQuantity,
      @Semantics.quantity.unitOfMeasure: 'ConfirmationUnit'
      @DefaultAggregation: #SUM
      conf.ConfirmationScrapQuantity,
      @Semantics.quantity.unitOfMeasure: 'ConfirmationUnit'
      @DefaultAggregation: #SUM
      conf.ConfirmationReworkQuantity,
      @Semantics.quantity.unitOfMeasure: 'ConfirmationUnit'
      @DefaultAggregation: #SUM
      conf.ConfirmationTotalQuantity,
      // In Percent

      @DefaultAggregation: #MAX
      case
        when conf.ConfirmationTotalQuantity > 0 then
          division(conf.ConfirmationScrapQuantity * 100, conf.ConfirmationTotalQuantity, 5)
        else 0
      end                                                           as ConfirmationScrapPercent,
      @DefaultAggregation: #MAX
      case
        when conf.ConfirmationTotalQuantity > 0 then
          division(conf.ConfirmationReworkQuantity * 100, conf.ConfirmationTotalQuantity, 5)
        else 0
      end                                                           as ConfirmationReworkPercent,
      @DefaultAggregation: #MAX
      case
        when conf.ConfirmationTotalQuantity > 0 then
          division(conf.ConfirmationYieldQuantity * 100, conf.ConfirmationTotalQuantity, 5)
        else 0
      end                                                           as ConfirmationYieldPercent,
      case
        when conf.ConfirmationTotalQuantity > 0 then
          division(conf.ConfirmationScrapQuantity * 100, conf.ConfirmationTotalQuantity, 5) +
          division(conf.ConfirmationReworkQuantity * 100, conf.ConfirmationTotalQuantity, 5)
        else 0
      end                                                           as ConfirmationScrapReworkPercent,
      @DefaultAggregation: #MAX
      cast(oper.OperationScrapPercent as pph_aufak preserving type) as OperationPlannedScrapPercent,

      // Item quantities and UoM

      @Semantics.unitOfMeasure: true
      item.ProductionUnit,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @DefaultAggregation: #SUM
      cast(item.ItemQuantity as co_psmng preserving type)                as MfgOrderItemPlannedTotalQty,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @DefaultAggregation: #SUM
      cast(item.MfgOrderItemPlannedScrapQty as co_psamg preserving type) as MfgOrderItemPlannedScrapQty,
      @DefaultAggregation: #MAX
      case
        when item.ItemQuantity > 0 then
          division(item.MfgOrderItemPlannedScrapQty * 100, item.ItemQuantity, 5)
        else 0
      end                                                                as MfgOrderItemPlannedScrapPct,
      item.IsCompletelyDelivered                                         as MfgOrderItemIsFinallyDelivered,

      // Header Quantities

      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @DefaultAggregation: #SUM
      conf.MfgOrderConfirmedYieldQty,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @DefaultAggregation: #SUM
      conf.MfgOrderConfirmedScrapQty,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @DefaultAggregation: #SUM
      conf.MfgOrderConfirmedReworkQty,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @DefaultAggregation: #SUM
      conf.MfgOrderConfirmedTotalQty,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @DefaultAggregation: #SUM
      (conf.MfgOrderConfirmedScrapQty + conf.MfgOrderConfirmedReworkQty) as MfgOrderConfdScrapReworkQty,
      @DefaultAggregation: #MAX
      case
        when conf.MfgOrderConfirmedTotalQty > 0 then
          division((conf.MfgOrderConfirmedScrapQty + conf.MfgOrderConfirmedReworkQty) * 100, conf.MfgOrderConfirmedTotalQty, 2)
        else 0
      end                                                                as MfgOrderConfdScrapReworkPct,

      // Operation Quantities

      @Semantics.unitOfMeasure: true
      cast(oper.OperationUnit as operationunit preserving type)          as OperationUnit,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      @DefaultAggregation: #SUM
      oper.OpPlannedTotalQuantity,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      @DefaultAggregation: #SUM
      oper.OpPlannedScrapQuantity,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      @DefaultAggregation: #SUM
      oper.OpTotalConfirmedScrapQty,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      @DefaultAggregation: #SUM
      oper.OpTotalConfirmedYieldQty,
      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      @DefaultAggregation: #SUM
      oper.OperationConfirmedReworkQty,

      // Work Quantities and UoM

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

      // Business Process

      @ObjectModel.foreignKey.association: '_BusinessProcess'
      conf.BusinessProcess,
      @Semantics.unitOfMeasure: true
      conf.BusinessProcessEntryUnit,
      @Semantics.quantity.unitOfMeasure: 'BusinessProcessEntryUnit'
      @DefaultAggregation: #SUM
      conf.BusinessProcessConfirmedQty,
      conf.NoFurtherBusinessProcQtyIsExpd,
      @Semantics.unitOfMeasure: true
      conf.BusinessProcRemainingQtyUnit,
      @Semantics.quantity.unitOfMeasure: 'BusinessProcRemainingQtyUnit'
      @DefaultAggregation: #SUM
      conf.BusinessProcessRemainingQty,

      // Associations

      conf._ConfirmationGroup,
      conf._ManufacturingOrder,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_ManufacturingOrder'
      conf._MfgOrder,
      conf._MfgOrderSequence,
      conf._MfgOrderOperation,
      conf._MfgOrderCategory,
      conf._MfgOrderType,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_OrderInternalID'
      conf._OrdInternalBillOfOperations,
      conf._OrderInternalID,
      conf._ConfirmationUnit,
      item._ProductionUnit,
      conf._User,
      conf._Language,
      conf._WorkCenterType,
      conf._WorkCenter,
      _WorkCenterBySemanticKey,
      conf._Plant,
      item._Material,
      conf._ProductionPlant,
      conf._ProductionSupervisor,
      conf._MRPController,
      item._MRPPlant,
      item._MRPArea,
      conf._Capacity,
      conf._BusinessArea,
      conf._CompanyCode,
      conf._ControllingArea,
      conf._ProfitCenter,
      conf._BusinessProcess,
      conf._ProductCostCollector,
      conf._VarianceReason,
      conf._Employee,
      conf._EmployeeWageGroup,
      conf._EmployeeSuitability,
      _EntryDate,
      _LastChangeDate,
      _PostingDate,
      _EntryDateWeekDay,
      _EntryDateMonth,
      _ReportingPeriod
};