A_ProductionOrderOperation

DDL: A_PRODUCTIONORDEROPERATION Type: view_entity COMPOSITE

API Production Order Operations

A_ProductionOrderOperation is a Composite CDS View that provides data about "API Production Order Operations" in SAP S/4HANA. It reads from 1 data source (I_MfgOrderOperationDurn) and exposes 28 fields with key fields OrderInternalBillOfOperations, OrderIntBillOfOperationsItem. It has 1 association to related views.

Data Sources (1)

SourceAliasJoin Type
I_MfgOrderOperationDurn I_MfgOrderOperationDurn from

Associations (1)

CardinalityTargetAliasCondition
[1..1] I_MfgOrderSequence _OrderSequence $projection.ManufacturingOrder = _OrderSequence.ManufacturingOrder and $projection.ManufacturingOrderSequence = _OrderSequence.ManufacturingOrderSequence and $projection.OrderInternalBillOfOperations = _OrderSequence.OrderInternalID

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
EndUserText.label API Production Order Operations view
VDM.viewType #COMPOSITE view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
VDM.lifecycle.contract.type #PUBLIC_REMOTE_API view

Fields (28)

KeyFieldSource TableSource FieldDescription
KEY OrderInternalBillOfOperations OrderInternalBillOfOperations
KEY OrderIntBillOfOperationsItem OrderIntBillOfOperationsItem
ManufacturingOrder ManufacturingOrder
ManufacturingOrderOperation ManufacturingOrderOperation
MfgOrderOperationIsPhase MfgOrderOperationIsPhase
ManufacturingOrderSequence ManufacturingOrderSequence
MfgOrderSequenceText
MfgOrderOperationText MfgOrderOperationText
ManufacturingOrderType ManufacturingOrderType
BusinessProcessEntryUnit BusinessProcessEntryUnit
ManufacturingOrderCategory ManufacturingOrderCategory
WorkCenterTypeCode WorkCenterTypeCode Work Center Type Code
WorkCenter WorkCenter
OpErlstSchedldExecStrtDte OpErlstSchedldExecStrtDte Earliest Execution Start Date
OpErlstSchedldExecStrtTme OpErlstSchedldExecStrtTme Earliest Execution Start Time
OpErlstSchedldExecEndDte OpErlstSchedldExecEndDte Earliest Execution End Date
OpErlstSchedldExecEndTme OpErlstSchedldExecEndTme Earliest Execution End Time
OpActualExecutionStartDate OpActualExecutionStartDate Actual Execution Start Date
OpActualExecutionStartTime OpActualExecutionStartTime Actual Execution Start Time
OpActualExecutionEndDate OpActualExecutionEndDate Actual Execution End Date
OpActualExecutionEndTime OpActualExecutionEndTime Actual Execution End Time
OperationUnit OperationUnit
OpPlannedTotalQuantity OpPlannedTotalQuantity
ErlstSchedldExecDurnInWorkdays ErlstSchedldExecDurnInWorkdays Scheduled Execution Duration
OpActualExecutionDays OpActualExecutionDays Actual Execution Duration
OpTotalConfirmedYieldQty OpTotalConfirmedYieldQty
WorkCenterInternalID WorkCenterInternalID
LastChangeTimeendasLastChangeDateTime
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'API Production Order Operations'
@VDM.viewType: #COMPOSITE
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #XL, dataClass: #MIXED}
@VDM.lifecycle.contract.type: #PUBLIC_REMOTE_API

define view entity A_ProductionOrderOperation
  as select from I_MfgOrderOperationDurn
  association [1..1] to I_MfgOrderSequence      as _OrderSequence             on  $projection.ManufacturingOrder            = _OrderSequence.ManufacturingOrder
                                                                              and $projection.ManufacturingOrderSequence    = _OrderSequence.ManufacturingOrderSequence
                                                                              and $projection.OrderInternalBillOfOperations = _OrderSequence.OrderInternalID
{
      // Technical Key

  key OrderInternalBillOfOperations,
  key OrderIntBillOfOperationsItem,
      ManufacturingOrder,             // Manufacturing Order

      @ObjectModel.text.element: ['MfgOrderOperationText']
      ManufacturingOrderOperation,    // Operation Number

      MfgOrderOperationIsPhase,
      ManufacturingOrderSequence,     // Sequence,

      cast(_OrderSequence.MfgOrderSequenceText  as mfgordersequencetext preserving type)       as MfgOrderSequenceText,      
      MfgOrderOperationText,          // OperationShortText

      ManufacturingOrderType,   // Order Type

      BusinessProcessEntryUnit, // BusinessProcessEntryUnit

      // Order header data

      ManufacturingOrderCategory, // Category

      @EndUserText.label: 'Work Center Type Code ' // Material

      WorkCenterTypeCode,
      WorkCenter, // WorkCenter,

      @EndUserText.label:'Earliest Execution Start Date'
      OpErlstSchedldExecStrtDte,      // PlannedStartDate

      @EndUserText.label:'Earliest Execution Start Time'
      OpErlstSchedldExecStrtTme,      // PlannedStartTime

      @EndUserText.label:'Earliest Execution End Date'
      OpErlstSchedldExecEndDte,       // P  lannedEndDate

      @EndUserText.label:'Earliest Execution End Time'
      OpErlstSchedldExecEndTme,       // PlannedEndTime

      @EndUserText.label:'Actual Execution Start Date'
      OpActualExecutionStartDate,     // StartDate,

      @EndUserText.label:'Actual Execution Start Time'
      OpActualExecutionStartTime,     // StartTime,

      @EndUserText.label:'Actual Execution End Date'
      OpActualExecutionEndDate,       // EndDate,

      @EndUserText.label:'Actual Execution End Time'
      OpActualExecutionEndTime,       // EndTime,

      OperationUnit,                  // OperationUnit,

      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      OpPlannedTotalQuantity,         // OperationQuantity,

      @EndUserText.label:'Scheduled Execution Duration'
      ErlstSchedldExecDurnInWorkdays, // PlannedDuration,

      @EndUserText.label:'Actual Execution Duration'
      OpActualExecutionDays, // ActualDuration,

      @Semantics.quantity.unitOfMeasure: 'OperationUnit'
      OpTotalConfirmedYieldQty, // Confirmed Quantity

      WorkCenterInternalID,
      
      /* enhanced to support Etag using Last change date time to schedule operations */
      case I_MfgOrderOperationDurn._MfgOrder.LastChangeDate
        when '00000000' then  // not changed yet, use create

          concat(I_MfgOrderOperationDurn._MfgOrder.MfgOrderCreationDate , I_MfgOrderOperationDurn._MfgOrder.MfgOrderCreationTime)
        else
          concat(I_MfgOrderOperationDurn._MfgOrder.LastChangeDate,I_MfgOrderOperationDurn._MfgOrder.LastChangeTime)
      end as LastChangeDateTime
}
where
  ManufacturingOrderCategory = '10';