I_MFGORDERDURATION

CDS View

Manufacturing Order Duration

I_MFGORDERDURATION is a CDS View in S/4HANA. Manufacturing Order Duration. It contains 2 fields. 3 CDS views read from this table.

CDS Views using this table (3)

ViewTypeJoinVDMDescription
A_ProductionOrder view_entity from COMPOSITE API Production Order
A_ProductionOrder_2 view_entity from COMPOSITE Production Order
I_ManageOrdersTP view from TRANSACTIONAL Production Orders Transactional BOPF

Fields (2)

KeyField CDS FieldsUsed in Views
MasterProductionOrder MasterProductionOrder 1
Product Product 1
@AbapCatalog.sqlViewName: 'IMFGORDERDURN'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #NOT_REQUIRED
@AccessControl.privilegedAssociations: ['_MRPController', '_ProductionSupervisor', '_CreatedByUser', '_LastChangedByUser', '_LongText']
@Analytics.dataCategory: #DIMENSION
@ClientHandling.algorithm: #SESSION_VARIABLE
@ClientHandling.type: #CLIENT_DEPENDENT
@Consumption.ranked: true
@Metadata.allowExtensions: true
@ObjectModel.modelingPattern: #NONE
@ObjectModel.supportedCapabilities: [#CDS_MODELING_DATA_SOURCE, #SQL_DATA_SOURCE, #SEARCHABLE_ENTITY]
@ObjectModel.representativeKey: 'ManufacturingOrder'
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #XL, dataClass: #MIXED}
@Search.searchable: true
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Manufacturing Order Duration'

define view I_MfgOrderDuration
  as select from I_ManufacturingOrder as ord
//    inner join   P_OrderStatusBasicAggrgn as stat on stat.ObjectInternalID = ord.ObjectInternalID  // Status -> inefficient access without StatusObject (OBJNR)

  left outer to one join I_StatusObjectStatusBasic as _isCreated      on _isCreated.StatusObject      = ord.ObjectInternalID and _isCreated.StatusCode      = 'I0001' and _isCreated.StatusIsInactive      = '' //and _isCreated.StatusObject        like 'OR%'// OrderIscreated

  left outer to one join I_StatusObjectStatusBasic as _isReleased     on _isReleased.StatusObject     = ord.ObjectInternalID and _isReleased.StatusCode     = 'I0002' and _isReleased.StatusIsInactive     = '' //and _isReleased.StatusObject       like 'OR%'// OrderIsReleased

  left outer to one join I_StatusObjectStatusBasic as _isPrinted      on _isPrinted.StatusObject      = ord.ObjectInternalID and _isPrinted.StatusCode      = 'I0007' and _isPrinted.StatusIsInactive      = '' //and _isPrinted.StatusObject        like 'OR%'// OrderIsPrinted

  left outer to one join I_StatusObjectStatusBasic as _isConfirmed    on _isConfirmed.StatusObject    = ord.ObjectInternalID and _isConfirmed.StatusCode    = 'I0009' and _isConfirmed.StatusIsInactive    = '' //and _isConfirmed.StatusObject      like 'OR%'// OrderIsConfirmed

  left outer to one join I_StatusObjectStatusBasic as _isPartConf     on _isPartConf.StatusObject     = ord.ObjectInternalID and _isPartConf.StatusCode     = 'I0010' and _isPartConf.StatusIsInactive     = '' //and _isPartConf.StatusObject       like 'OR%'// OrderIsPartiallyConfirmed

  left outer to one join I_StatusObjectStatusBasic as _isDelivered    on _isDelivered.StatusObject    = ord.ObjectInternalID and _isDelivered.StatusCode    = 'I0012' and _isDelivered.StatusIsInactive    = '' //and _isDelivered.StatusObject      like 'OR%'// OrderIsDelivered

  left outer to one join I_StatusObjectStatusBasic as _isDeleted      on _isDeleted.StatusObject      = ord.ObjectInternalID and _isDeleted.StatusCode      = 'I0013' and _isDeleted.StatusIsInactive      = '' //and _isDeleted.StatusObject        like 'OR%'// OrderIsDeleted

  left outer to one join I_StatusObjectStatusBasic as _isPreCosted    on _isPreCosted.StatusObject    = ord.ObjectInternalID and _isPreCosted.StatusCode    = 'I0016' and _isPreCosted.StatusIsInactive    = '' //and _isPreCosted.StatusObject      like 'OR%'// OrderIsPreCosted

  left outer to one join I_StatusObjectStatusBasic as _SRuleIsCreated on _SRuleIsCreated.StatusObject = ord.ObjectInternalID and _SRuleIsCreated.StatusCode = 'I0028' and _SRuleIsCreated.StatusIsInactive = '' //and _SRuleIsCreated.StatusObject   like 'OR%'// SettlementRuleIsCreated

  left outer to one join I_StatusObjectStatusBasic as _isPartRel      on _isPartRel.StatusObject      = ord.ObjectInternalID and _isPartRel.StatusCode      = 'I0042' and _isPartRel.StatusIsInactive      = '' //and _isPartRel.StatusObject        like 'OR%'// OrderIsPartiallyReleased

  left outer to one join I_StatusObjectStatusBasic as _isLocked       on _isLocked.StatusObject       = ord.ObjectInternalID and _isLocked.StatusCode       = 'I0043' and _isLocked.StatusIsInactive       = '' //and _isLocked.StatusObject         like 'OR%'// OrderIsLocked

  left outer to one join I_StatusObjectStatusBasic as _isTechCompl    on _isTechCompl.StatusObject    = ord.ObjectInternalID and _isTechCompl.StatusCode    = 'I0045' and _isTechCompl.StatusIsInactive    = '' //and _isTechCompl.StatusObject      like 'OR%'// OrderIsTechnicallyCompleted

  left outer to one join I_StatusObjectStatusBasic as _isClosed       on _isClosed.StatusObject       = ord.ObjectInternalID and _isClosed.StatusCode       = 'I0046' and _isClosed.StatusIsInactive       = '' //and _isClosed.StatusObject         like 'OR%'// OrderIsClosed

  left outer to one join I_StatusObjectStatusBasic as _isPartDeliv    on _isPartDeliv.StatusObject    = ord.ObjectInternalID and _isPartDeliv.StatusCode    = 'I0074' and _isPartDeliv.StatusIsInactive    = '' //and _isPartDeliv.StatusObject      like 'OR%'// OrderIsPartiallyDelivered

  left outer to one join I_StatusObjectStatusBasic as _isMarkedDel    on _isMarkedDel.StatusObject    = ord.ObjectInternalID and _isMarkedDel.StatusCode    = 'I0076' and _isMarkedDel.StatusIsInactive    = '' //and _isMarkedDel.StatusObject      like 'OR%'// OrderIsMarkedForDeletion

  left outer to one join I_StatusObjectStatusBasic as _isSRuleManual  on _isSRuleManual.StatusObject  = ord.ObjectInternalID and _isSRuleManual.StatusCode  = 'I0102' and _isSRuleManual.StatusIsInactive  = '' //and _isSRuleManual.StatusObject    like 'OR%'// SettlementRuleIsCrtedManually

  left outer to one join I_StatusObjectStatusBasic as _isScheduled    on _isScheduled.StatusObject    = ord.ObjectInternalID and _isScheduled.StatusCode    = 'I0117' and _isScheduled.StatusIsInactive    = '' //and _isScheduled.StatusObject      like 'OR%'// OrderIsScheduled

  left outer to one join I_StatusObjectStatusBasic as _hasGenerOper   on _hasGenerOper.StatusObject   = ord.ObjectInternalID and _hasGenerOper.StatusCode   = 'I0328' and _hasGenerOper.StatusIsInactive   = '' //and _hasGenerOper.StatusObject     like 'OR%'// OrderHasGeneratedOperations

  left outer to one join I_StatusObjectStatusBasic as _inBatches      on _inBatches.StatusObject      = ord.ObjectInternalID and _inBatches.StatusCode      = 'I0369' and _inBatches.StatusIsInactive      = '' //and _inBatches.StatusObject        like 'OR%'// OrderIsToBeHandledInBatches

  left outer to one join I_StatusObjectStatusBasic as _AvNotChecked   on _AvNotChecked.StatusObject   = ord.ObjectInternalID and _AvNotChecked.StatusCode   = 'I0420' and _AvNotChecked.StatusIsInactive   = '' //and _AvNotChecked.StatusObject     like 'OR%'// MaterialAvailyIsNotChecked

  left outer to one join I_StatusObjectStatusBasic as _isShopFloor    on _isShopFloor.StatusObject    = ord.ObjectInternalID and _isShopFloor.StatusCode    = 'I0665' and _isShopFloor.StatusIsInactive    = '' //and _isShopFloor.StatusObject      like 'OR%'// OrderIsShopFloorOrder

  left outer to one join I_StatusObjectStatusBasic as _isPartCollRel  on _isPartCollRel.StatusObject  = ord.ObjectInternalID and _isPartCollRel.StatusCode  = 'I0394' and _isPartCollRel.StatusIsInactive  = '' //and _isPartCollRel.StatusObject    like 'OR%'// OrderInCollvOrdersIsReleased


  association [0..1] to I_ProductionVersion           as _ProductionVersion           on  $projection.Material          = _ProductionVersion.Material
                                                                                      and $projection.ProductionPlant   = _ProductionVersion.Plant
                                                                                      and $projection.ProductionVersion = _ProductionVersion.ProductionVersion
  association [1..1] to I_CalendarDate                as _PlannedStartDate            on  $projection.MfgOrderPlannedStartDate = _PlannedStartDate.CalendarDate
  association [1..1] to I_CalendarDate                as _PlannedEndDate              on  $projection.MfgOrderPlannedEndDate = _PlannedEndDate.CalendarDate
{
      // Key

      @ObjectModel.text.element: ['ManufacturingOrderText']
      @Search: {defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8}
  key ord.ManufacturingOrder,

      // Category and Type

      @ObjectModel.foreignKey.association: '_MfgOrderCategory'
      ord.ManufacturingOrderCategory,
      @ObjectModel.foreignKey.association: '_MfgOrderType'
      ord.ManufacturingOrderType,

      // Text

      @Semantics.text: true
      ord.ManufacturingOrderText,
      ord.ManufacturingOrderHasLongText,
      @ObjectModel.foreignKey.association: '_LongTextLanguage'
      ord.LongTextLanguageCode,

      // Attributes

      @ObjectModel.foreignKey.association: '_MfgOrderImportance'
      ord.ManufacturingOrderImportance,
      ord.IsMarkedForDeletion as MfgOrderIsToBeDeleted,
      ord.MfgOrderHasMultipleItems,
      ord.MfgOrderIsPartOfCollvOrder,
      ord.ProdnProcgIsFlexible,

      // System Status

      case when _isCreated.StatusCode      is null then '' else 'X' end as OrderIsCreated,
      case when _isReleased.StatusCode     is null then '' else 'X' end as OrderIsReleased,
      case when _isPrinted.StatusCode      is null then '' else 'X' end as OrderIsPrinted,
      case when _isConfirmed.StatusCode    is null then '' else 'X' end as OrderIsConfirmed,
      case when _isPartConf.StatusCode     is null then '' else 'X' end as OrderIsPartiallyConfirmed,
      case when _isDelivered.StatusCode    is null then '' else 'X' end as OrderIsDelivered,
      case when _isDeleted.StatusCode      is null then '' else 'X' end as OrderIsDeleted,
      case when _isPreCosted.StatusCode    is null then '' else 'X' end as OrderIsPreCosted,
      case when _SRuleIsCreated.StatusCode is null then '' else 'X' end as SettlementRuleIsCreated,
      case when _isPartRel.StatusCode      is null then '' else 'X' end as OrderIsPartiallyReleased,
      case when _isLocked.StatusCode       is null then '' else 'X' end as OrderIsLocked,
      case when _isTechCompl.StatusCode    is null then '' else 'X' end as OrderIsTechnicallyCompleted,
      case when _isClosed.StatusCode       is null then '' else 'X' end as OrderIsClosed,
      case when _isPartDeliv.StatusCode    is null then '' else 'X' end as OrderIsPartiallyDelivered,
      case when _isMarkedDel.StatusCode    is null then '' else 'X' end as OrderIsMarkedForDeletion,
      case when _isSRuleManual.StatusCode  is null then '' else 'X' end as SettlementRuleIsCrtedManually,
      case when _isScheduled.StatusCode    is null then '' else 'X' end as OrderIsScheduled,
      case when _hasGenerOper.StatusCode   is null then '' else 'X' end as OrderHasGeneratedOperations,
      case when _inBatches.StatusCode      is null then '' else 'X' end as OrderIsToBeHandledInBatches,
      case when _AvNotChecked.StatusCode   is null then '' else 'X' end as MaterialAvailyIsNotChecked,
      case when _isShopFloor.StatusCode    is null then '' else 'X' end as OrderIsShopFloorOrder,
      case when _isPartCollRel.StatusCode  is null then '' else 'X' end as OrderInCollvOrdersIsReleased,


      // Admin

      @Semantics.systemDate.createdAt: true
      ord.CreationDate as MfgOrderCreationDate,
      @Semantics.systemTime.createdAt: true
      ord.CreationTime as MfgOrderCreationTime,
      @Semantics.user.createdBy: true
      ord.CreatedByUser,
      @Semantics.systemDate.lastChangedAt: true
      ord.LastChangeDate,
      @Semantics.systemTime.lastChangedAt: true
      ord.LastChangeTime,
      @Semantics.user.lastChangedBy: true
      ord.LastChangedByUser,

      // Header Material data

      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_MaterialStdVH', element: 'Material' } } ]
      @ObjectModel.foreignKey.association: '_Material'
      ord.Material,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProductStdVH', element: 'Product' } } ]
      ord.Product,        // Needed for associton _ProductPlant (MARC)

      @ObjectModel.foreignKey.association: '_StorageLocation'
      ord.StorageLocation,
      @Semantics.text: true
      ord.GoodsRecipientName,
      @Semantics.text: true
      ord.UnloadingPointName,
      @ObjectModel.foreignKey.association: '_InventoryUsabilityCode'
      ord.InventoryUsabilityCode,
      ord.MaterialGoodsReceiptDuration,
      ord.QuantityDistributionKey,
      ord.StockSegment,
      ord.NumberOfSerialNumbers,

      ord.ExtdQualityCheckIsRequired,

      // Assignments

      @ObjectModel.foreignKey.association: '_OrderInternalID'
      ord.MfgOrderInternalID as OrderInternalBillOfOperations,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderStdVH', element: 'ManufacturingOrder' } } ]
      @ObjectModel.foreignKey.association: '_SuperiorOrder'
      ord.SuperiorOrder      as MfgOrderSuperiorMfgOrder,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderStdVH', element: 'ManufacturingOrder' } } ]
      @ObjectModel.foreignKey.association: '_ReferenceOrder'
      ord.ReferenceOrder,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_MfgOrderStdVH', element: 'ManufacturingOrder' } } ]
      @ObjectModel.foreignKey.association: '_LeadingOrder'
      ord.LeadingOrder,
      @ObjectModel.foreignKey.association: '_Currency'
      ord.Currency,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlantStdVH', element: 'Plant' } } ]
      @ObjectModel.foreignKey.association: '_Plant'
      ord.ProductionPlant,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlantStdVH', element: 'Plant' } } ]
      @ObjectModel.foreignKey.association: '_MRPPlant'
      ord.PlanningPlant as MRPPlant,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_MRPAreaVH', element: 'MRPArea' } } ]
      @ObjectModel.foreignKey.association: '_MRPArea'
      ord.MRPArea,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_BatchStdVH', element: 'Batch' } } ]
      @ObjectModel.foreignKey.association: '_Batch_2'
      ord.Batch,
      @ObjectModel.foreignKey.association: '_MRPController'
      ord.MRPController,
      @ObjectModel.foreignKey.association: '_ProductionSupervisor'
      ord.ProductionSupervisor,
      @ObjectModel.foreignKey.association: '_ResponsiblePlannerGroup'
      ord.ResponsiblePlannerGroup,
      @ObjectModel.foreignKey.association: '_ProductionSchedulingProfile'
      ord.ProductionSchedulingProfile,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProductionVersionStdVH', element: 'ProductionVersion' } } ]
      @ObjectModel.foreignKey.association: '_ProductionVersion'
      ord.ProductionVersion,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlannedOrderStdVH', element: 'PlannedOrder' } } ]
      @ObjectModel.foreignKey.association: '_PlannedOrder'
      ord.PlannedOrder,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_SalesDocumentStdVH', element: 'SalesDocument' } } ]
      @ObjectModel.foreignKey.association: '_SalesOrder'
      ord.SalesOrder,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_SalesDocumentItemStdVH', element: 'SalesDocumentItem' } } ]
      @ObjectModel.foreignKey.association: '_SalesOrderItem'
      ord.SalesOrderItem,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: 'WBSElementInternalID_2'
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_WBSElmntByIntKeyStdVH', element: 'WBSElementInternalID' } } ]
      @ObjectModel.foreignKey.association: '_WBSElement'
      ord.WBSElementInternalID,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_WBSElementBasicDataStdVH', element: 'WBSElementInternalID' } } ]
      @ObjectModel.foreignKey.association: '_WBSElementBasicData2'
      ord.WBSElementInternalID_2,
      @ObjectModel.foreignKey.association: '_Reservation'
      ord.Reservation,
      @ObjectModel.foreignKey.association: '_ConfirmationGroup'
      ord.MfgOrderConfirmation,
      ord.NumberOfMfgOrderConfirmations,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_CapacityRequirementStdVH', element: 'CapacityRequirement' } } ]
      @ObjectModel.foreignKey.association: '_CapacityRequirement'
      ord.CapacityRequirement,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_InspectionLotStdVH', element: 'InspectionLot' } } ]
      @ObjectModel.foreignKey.association: '_InspectionLot'
      ord.InspectionLot,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_ChangeMasterStdVH', element: 'ChangeNumber' } } ]
      @ObjectModel.foreignKey.association: '_ChangeNumber'
      ord.ChangeNumber,
      @ObjectModel.foreignKey.association: '_BasicSchedulingType'
      ord.BasicSchedulingType,
      @ObjectModel.foreignKey.association: '_ForecastSchedulingType'
      ord.ForecastSchedulingType,
      ord.ObjectInternalID,
      ord.ProductConfiguration,
      ord.EffectivityParameterVariant,
      ord.ConditionApplication,
      ord.CapacityActiveVersion,
      ord.CapacityRqmtHasNotToBeCreated,
      ord.OrderSequenceNumber,
      ord.MfgOrderSplitStatus,

      // Assignments BOO

      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_MaterialStdVH', element: 'Material' } } ]
      @ObjectModel.foreignKey.association: '_BillOfOperationsMaterial'
      ord.BillOfOperationsMaterial,
      @ObjectModel.foreignKey.association: '_BillOfOperationsType'
      ord.BillOfOperationsType,
      @VDM.lifecycle.status: #DEPRECATED           // default data element change -> deprecated to avoid RTT2 error in ATC

      @VDM.lifecycle.successor: 'BillOfOperationsGroup'
      @ObjectModel.foreignKey.association: '_BillOfOperationsGroup'
      ord.BillOfOperations,
      @ObjectModel.foreignKey.association: '_BillOfOperationsGroup2'
      ord.BillOfOperationsGroup,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_BillOfOperationsStdVH', element: 'BillOfOperationsVariant' } } ]
      @ObjectModel.foreignKey.association: '_BillOfOperations'
      ord.BillOfOperationsVariant,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_BOOChgStateStdVH', element: 'BOOInternalVersionCounter' } } ]
      @ObjectModel.foreignKey.association: '_BillOfOperationsChangeState'
      ord.BOOInternalVersionCounter,
      @ObjectModel.foreignKey.association: '_BillOfOperationsApplication'
      ord.BillOfOperationsApplication,
      @ObjectModel.foreignKey.association: '_BillOfOperationsUsage'
      ord.BillOfOperationsUsage,
      ord.BillOfOperationsVersion,
      ord.BOOExplosionDate,
      ord.BOOValidityStartDate,

      // Assignments BOM

      ord.BillOfMaterialCategory,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: 'BillOfMaterialInternalID'
      ord.BillOfMaterial,            // with conv. exit NUMCV

      ord.BillOfMaterialInternalID,  // with conv. exit ALPHA

      ord.BillOfMaterialVariant,
      ord.BillOfMaterialVariantUsage,
      ord.BillOfMaterialVersion,
      ord.BOMExplosionDate,
      ord.BOMValidityStartDate,

      // Assignments FI/CO

      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_BusinessAreaStdVH', element: 'BusinessArea' } } ]
      @ObjectModel.foreignKey.association: '_BusinessArea'
      ord.BusinessArea,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_CompanyCodeStdVH', element: 'CompanyCode' } } ]
      @ObjectModel.foreignKey.association: '_CompanyCode'
      ord.CompanyCode,
      @ObjectModel.foreignKey.association: '_ControllingArea'
      ord.ControllingArea,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProfitCenterStdVH', element: 'ProfitCenter' } } ]
      ord.ProfitCenter,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_CostCenterStdVH', element: 'CostCenter' } } ]
      ord.CostCenter,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_CostCenterStdVH', element: 'CostCenter' } } ]
      ord.ResponsibleCostCenter,
      @ObjectModel.foreignKey.association: '_CostElement'
      ord.CostElement,
      ord.CostingSheet,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_GLAccountStdVH', element: 'GLAccount' } } ]
      @ObjectModel.foreignKey.association: '_GLAccount'
      ord.GLAccount,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProductCostCtrlgOrderStdVH', element: 'OrderID' } } ]
      @ObjectModel.foreignKey.association: '_ProductCostCollector'
      ord.ProductCostCollector,
      @ObjectModel.foreignKey.association: '_ActualCostsCostingVariant'
      ord.ActualCostsCostingVariant,
      @ObjectModel.foreignKey.association: '_PlannedCostsCostingVariant'
      ord.PlannedCostsCostingVariant,
      @ObjectModel.foreignKey.association: '_ControllingObjectClass'
      ord.ControllingObjectClass,
      @ObjectModel.foreignKey.association: '_FunctionalArea'
      ord.FunctionalArea,
      ord.EventBasedPostingMethod,

      // Dates

      @Semantics.calendarItem.dtStart: true
      ord.MfgOrderPlannedStartDate,
      ord.MfgOrderPlannedStartTime,
      @Semantics.calendarItem.dtEnd: true
      ord.MfgOrderPlannedEndDate,
      ord.MfgOrderPlannedEndTime,
      ord.MfgOrderPlannedReleaseDate,
      @Semantics.calendarItem.dtStart: true
      ord.MfgOrderScheduledStartDate,
      ord.MfgOrderScheduledStartTime,
      @Semantics.calendarItem.dtEnd: true
      ord.MfgOrderScheduledEndDate,
      ord.MfgOrderScheduledEndTime,
      ord.MfgOrderScheduledReleaseDate,
      @Semantics.calendarItem.dtStart: true
      ord.MfgOrderActualStartDate,
      ord.MfgOrderActualStartTime,
      @Semantics.calendarItem.dtEnd: true
      ord.MfgOrderActualEndDate,
      ord.MfgOrderActualReleaseDate,
      ord.MfgOrderItemActualDeliveryDate as MfgOrderActualDeliveryDate,
      @Semantics.calendarItem.dtEnd: true
      ord.MfgOrderConfirmedEndDate,
      ord.MfgOrderConfirmedEndTime,
      @Semantics.businessDate.at: true
      ord.MfgOrderTotalCommitmentDate,

      // Delay Durations

      @Semantics.calendarItem.duration: true
      case ord.MfgOrderScheduledStartTime
        when '240000' then  // function dats_tims_to_tstmp does not work with time 24:00

          tstmp_seconds_between(dats_tims_to_tstmp( ord.MfgOrderScheduledStartDate, cast('235959' as tims), abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL')  ,
          tstmp_current_utctimestamp(),'INITIAL') + 1
        else
          tstmp_seconds_between(dats_tims_to_tstmp( ord.MfgOrderScheduledStartDate, ord.MfgOrderScheduledStartTime, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL')  ,
          tstmp_current_utctimestamp(),'INITIAL')
      end as CurrentStartDelayInSeconds,
      @Semantics.calendarItem.duration: true
      case ord.MfgOrderScheduledEndTime
        when '240000' then  // function dats_tims_to_tstmp does not work with time 24:00

          tstmp_seconds_between(dats_tims_to_tstmp( ord.MfgOrderScheduledEndDate, cast('235959' as tims), abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL')  ,
          tstmp_current_utctimestamp(),'INITIAL') + 1
        else
          tstmp_seconds_between(dats_tims_to_tstmp( ord.MfgOrderScheduledEndDate, ord.MfgOrderScheduledEndTime, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL')  ,
//          tstmp_seconds_between(dats_tims_to_tstmp( ord.MfgOrderScheduledEndDate, cast('135955' as tims), abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL')  ,

          tstmp_current_utctimestamp(),'INITIAL')
      end as CurrentEndDelayInSeconds,
      @Semantics.calendarItem.duration: true
      case ord.MfgOrderScheduledStartTime
        when '240000' then  // function dats_tims_to_tstmp does not work with time 24:00

          tstmp_seconds_between(dats_tims_to_tstmp( ord.MfgOrderScheduledStartDate, cast('235959' as tims), abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL')  ,
          dats_tims_to_tstmp( ord.MfgOrderActualStartDate, ord.MfgOrderActualStartTime, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL'), 'INITIAL') + 1
        else
          tstmp_seconds_between(dats_tims_to_tstmp( ord.MfgOrderScheduledStartDate, ord.MfgOrderScheduledStartTime, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL')  ,
          dats_tims_to_tstmp( ord.MfgOrderActualStartDate, ord.MfgOrderActualStartTime, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL'), 'INITIAL')
      end as ConfirmedStartDelayInSeconds,
      @Semantics.calendarItem.duration: true
      case ord.MfgOrderScheduledEndTime
        when '240000' then  // function dats_tims_to_tstmp does not work with time 24:00

          tstmp_seconds_between(dats_tims_to_tstmp( ord.MfgOrderScheduledEndDate, cast('235959' as tims), abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL')  ,
          dats_tims_to_tstmp( ord.MfgOrderConfirmedEndDate, ord.MfgOrderConfirmedEndTime, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL'), 'INITIAL') + 1
        else
          tstmp_seconds_between(dats_tims_to_tstmp( ord.MfgOrderScheduledEndDate, ord.MfgOrderScheduledEndTime, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL')  ,
          dats_tims_to_tstmp( ord.MfgOrderConfirmedEndDate, ord.MfgOrderConfirmedEndTime, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL'), 'INITIAL')
      end as ConfirmedEndDelayInSeconds,

      // Quantities and UoM

      @Semantics.unitOfMeasure: true
      ord.ProductionUnit,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @Aggregation.default: #SUM
      ord.MfgOrderPlannedTotalQty,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @Aggregation.default: #SUM
      ord.MfgOrderPlannedScrapQty,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @Aggregation.default: #SUM
      cast((ord.MfgOrderPlannedTotalQty - ord.MfgOrderPlannedScrapQty) as plannedyieldquantity) as MfgOrderPlannedYieldQty,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @Aggregation.default: #SUM
      ord.MfgOrderConfirmedYieldQty,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @Aggregation.default: #SUM
      ord.MfgOrderConfirmedScrapQty,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @Aggregation.default: #SUM
      ord.MfgOrderConfirmedReworkQty,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @Aggregation.default: #SUM
      ord.ExpectedDeviationQuantity,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      @Aggregation.default: #SUM
      ord.ActualDeliveredQuantity,
      ord.ChangeToScheduledDatesIsMade,

      // Fashion Manufacturing Fields

      ord.MasterProductionOrder,
      ord.ProductSeasonYear,
      ord.ProductSeason,
      ord.ProductCollection,
      ord.ProductTheme,

      // Associations

      ord._MfgOrderCategory,
      ord._MfgOrderType,
      ord._MfgOrderLongText,
      ord._MfgOrderImportance,
      ord._OrderTypeDetails,
      ord._SuperiorOrder,
      ord._ReferenceOrder,
      ord._LeadingOrder,
      ord._CreatedByUser,
      ord._LastChangedByUser,
      ord._LongTextLanguage,
      ord._ProductionUnit,
      ord._Currency,
      ord._OrderInternalID,
      ord._BillOfOperationsMaterial,
      ord._BillOfOperationsType,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_BillOfOperationsGroup2'
      ord._BillOfOperationsGroup,
      ord._BillOfOperationsGroup2,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_BillOfOperations2'
      ord._BillOfOperations,
      ord._BillOfOperations2,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_BillOfOperationsChangeState2'
      ord._BillOfOperationsChangeState,
      ord._BillOfOperationsChangeState2,
      ord._BillOfOperationsApplication,
      ord._BillOfOperationsUsage,
      ord._ConfirmationGroup,
      ord._Reservation,
      ord._ProductionPlant as _Plant,
      ord._PlanningPlant as _MRPPlant,
      ord._Material,
      ord._StorageLocation,
      ord._InventoryUsabilityCode,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_Batch_2'
      ord._Batch,    // 0..* cardinality

      ord._Batch_2,  // 0..1 cardinality

      ord._MRPArea,
      ord._MRPController,
      ord._ProductionSupervisor,
      ord._ProductionSchedulingProfile,
      ord._ResponsiblePlannerGroup,
      _ProductionVersion,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_ProductPlant2'
      ord._ProductPlant,
      ord._ProductPlant2,
      ord._CapacityRequirement,
      ord._ChangeNumber,
      ord._InspectionLot,
      ord._SalesOrder,
      ord._SalesOrderItem,
      ord._SalesDocument,
      ord._SalesDocumentItem,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_WBSElementBasicData2'
      ord._WBSElement,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_WBSElementBasicData2'
      ord._WBSElementBasicData,
      ord._WBSElementBasicData2,
      ord._PlannedOrder,
      ord._BusinessArea,
      ord._ProfitCenter,
      ord._CostCenter,
      ord._CostElement,
      ord._ResponsibleCostCenter,
      ord._CompanyCode,
      ord._ControllingArea,
      ord._GLAccount,
      ord._ProductCostCollector,
      ord._ControllingObjectClass,
      ord._FunctionalArea,
      ord._ActualCostsCostingVariant,
      ord._PlannedCostsCostingVariant,
      ord._BasicSchedulingType,
      ord._ForecastSchedulingType,
      _PlannedStartDate,
      _PlannedEndDate,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_MfgOrderLongText'
      ord._LongText,
      ord._RFM_MasterProductOrder    
        
};