I_MRPMfgOrder

DDL: I_MRPMFGORDER SQL: IMRPMFGORDER Type: view COMPOSITE Package: ODATA_PP_MRP

MRP Manufacturing Order

I_MRPMfgOrder is a Composite CDS View that provides data about "MRP Manufacturing Order" in SAP S/4HANA. It reads from 4 data sources (I_ManufacturingOrder, I_ManufacturingOrderItem, I_ManufacturingOrderItem, I_ProductPlant) and exposes 55 fields with key fields ManufacturingOrder, ManufacturingOrderItem. It has 2 associations to related views. Part of development package ODATA_PP_MRP.

Data Sources (4)

SourceAliasJoin Type
I_ManufacturingOrder MfgOrder from
I_ManufacturingOrderItem MfgOrderItem inner
I_ManufacturingOrderItem OrderItem inner
I_ProductPlant ProductPlant inner

Associations (2)

CardinalityTargetAliasCondition
[1..1] I_ProductSupplyPlanning _ProductSupplyPlanning $projection.Material = _ProductSupplyPlanning.Product and $projection.MRPPlant = _ProductSupplyPlanning.Plant
[0..1] I_EntProjectResponsiblePerson _ProjectRespPersn $projection.WBSElementInternalID = _ProjectRespPersn.WBSElementInternalID and _ProjectRespPersn.WBSElementInternalID is not initial

Annotations (10)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName IMRPMFGORDER view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label MRP Manufacturing Order view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #COMPOSITE view
AccessControl.personalData.blocking #REQUIRED view

Fields (55)

KeyFieldSource TableSource FieldDescription
KEY ManufacturingOrder I_ManufacturingOrderItem ManufacturingOrder
KEY ManufacturingOrderItem I_ManufacturingOrderItem ManufacturingOrderItem
ManufacturingOrderCategory I_ManufacturingOrder ManufacturingOrderCategory
ManufacturingOrderType I_ManufacturingOrder ManufacturingOrderType
Material I_ManufacturingOrderItem Material
MRPPlant I_ManufacturingOrderItem PlanningPlant
ProductionPlant I_ManufacturingOrderItem ProductionPlant
MaterialGoodsReceiptDuration I_ManufacturingOrderItem MaterialGoodsReceiptDuration
MfgOrderPlannedStartDate I_ManufacturingOrder MfgOrderPlannedStartDate
MfgOrderPlannedEndDate I_ManufacturingOrder MfgOrderPlannedEndDate
MfgOrderActualStartDate I_ManufacturingOrder MfgOrderActualStartDate
MfgOrderActualEndDate I_ManufacturingOrder MfgOrderActualEndDate
MfgOrderActualReleaseDate I_ManufacturingOrder MfgOrderActualReleaseDate
MfgOrderScheduledStartDate I_ManufacturingOrder MfgOrderScheduledStartDate
MfgOrderScheduledEndDate I_ManufacturingOrder MfgOrderScheduledEndDate
MfgOrderScheduledReleaseDate I_ManufacturingOrder MfgOrderScheduledReleaseDate
ProductionUnit I_ManufacturingOrder ProductionUnit
MfgOrderPlannedTotalQty I_ManufacturingOrder MfgOrderPlannedTotalQty
MfgOrderPlannedScrapQty I_ManufacturingOrder MfgOrderPlannedScrapQty
ExpectedDeviationQuantity I_ManufacturingOrder ExpectedDeviationQuantity
ActualDeliveredQuantity I_ManufacturingOrder ActualDeliveredQuantity
OpenQuantity
ManufacturingOrderImportance I_ManufacturingOrder ManufacturingOrderImportance
MfgOrderIsPartOfCollvOrder I_ManufacturingOrder MfgOrderIsPartOfCollvOrder
MaterialPlannedDeliveryDurn _ProductSupplyPlanning PlannedDeliveryDurationInDays
PurchasingGroup I_ProductPlant PurchasingGroup
TotalReplenishmentLeadTime _ProductSupplyPlanning TotalReplenishmentLeadTime
FixedLotSizeQuantity _ProductSupplyPlanning FixedLotSizeQuantity
MinimumLotSizeQuantity _ProductSupplyPlanning MinimumLotSizeQuantity
MaximumLotSizeQuantity _ProductSupplyPlanning MaximumLotSizeQuantity
LotSizeRoundingQuantity _ProductSupplyPlanning LotSizeRoundingQuantity
RoundingProfile _ProductSupplyPlanning RoundingProfile
SalesOrder I_ManufacturingOrderItem SalesOrder
SalesOrderItem I_ManufacturingOrderItem SalesOrderItem
SalesOrderType
SalesOrderItemMaterial
Customer
ProductionVersionText
ProductionVersion I_ManufacturingOrderItem ProductionVersion
ProductionLine
WBSElementInternalID I_ManufacturingOrderItem WBSElementInternalID_2
WBSElement
WBSDescription
ResponsiblePerson
ResponsiblePersonName
ProjectInternalID
Project
ProjectDescription
ProjectResponsiblePerson
ProjectResponsiblePersonName
TopLevelOrder TopLevelOrder ManufacturingOrder
TopLevelOrderMaterial I_ManufacturingOrderItem Material
MRPController I_ManufacturingOrder MRPController
ProductionSupervisor I_ManufacturingOrder ProductionSupervisor
_WBSElementBasicData2 I_ManufacturingOrderItem _WBSElementBasicData2
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.sqlViewName: 'IMRPMFGORDER'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'MRP Manufacturing Order'

@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MIXED

@VDM.viewType: #COMPOSITE
@AccessControl.personalData.blocking: #REQUIRED

define view I_MRPMfgOrder
  as select from   I_ManufacturingOrder     as MfgOrder
    inner join     I_ManufacturingOrderItem as MfgOrderItem on  MfgOrderItem.ManufacturingOrder           = MfgOrder.ManufacturingOrder
                                                            and MfgOrderItem.OrderItemIsNotRelevantForMRP = ''
    inner join     I_ProductPlant as ProductPlant on  ProductPlant.Product = MfgOrderItem.Material
                                                  and ProductPlant.Plant   = MfgOrderItem.PlanningPlant
    left outer join(
                   I_ManufacturingOrder     as TopLevelOrder
        inner join I_ManufacturingOrderItem as OrderItem    on  OrderItem.ManufacturingOrder     = TopLevelOrder.ManufacturingOrder
                                                            and OrderItem.ManufacturingOrderItem = '0001'
    )
    on  TopLevelOrder.Reservation                = MfgOrder.SettlementReservation
    and TopLevelOrder.MfgOrderHierarchyLevel     = 0
    and TopLevelOrder.MfgOrderIsPartOfCollvOrder = 'X'

  association [1..1] to I_ProductSupplyPlanning       as _ProductSupplyPlanning on  $projection.Material = _ProductSupplyPlanning.Product
                                                                                and $projection.MRPPlant = _ProductSupplyPlanning.Plant
  association [0..1] to I_EntProjectResponsiblePerson as _ProjectRespPersn      on  $projection.WBSElementInternalID = _ProjectRespPersn.WBSElementInternalID
                                                                                and _ProjectRespPersn.WBSElementInternalID is not initial
  
{
  key MfgOrderItem.ManufacturingOrder,
  key MfgOrderItem.ManufacturingOrderItem,
      MfgOrder.ManufacturingOrderCategory,
      MfgOrder.ManufacturingOrderType,
      MfgOrderItem.Material,
      MfgOrderItem.PlanningPlant as MRPPlant,
      MfgOrderItem.ProductionPlant,
      MfgOrderItem.MaterialGoodsReceiptDuration,
      @Semantics.businessDate.from: true
      MfgOrder.MfgOrderPlannedStartDate,
      @Semantics.businessDate.to: true
      MfgOrder.MfgOrderPlannedEndDate,
      @Semantics.businessDate.from: true
      MfgOrder.MfgOrderActualStartDate,
      @Semantics.businessDate.to: true
      MfgOrder.MfgOrderActualEndDate,
      @Semantics.businessDate.at: true
      MfgOrder.MfgOrderActualReleaseDate,
      @Semantics.businessDate.from: true
      MfgOrder.MfgOrderScheduledStartDate,
      @Semantics.businessDate.to: true
      MfgOrder.MfgOrderScheduledEndDate,
      @Semantics.businessDate.at: true
      MfgOrder.MfgOrderScheduledReleaseDate,
      @Semantics.unitOfMeasure: true
      MfgOrder.ProductionUnit,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      MfgOrder.MfgOrderPlannedTotalQty,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      MfgOrder.MfgOrderPlannedScrapQty,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      MfgOrder.ExpectedDeviationQuantity,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      MfgOrder.ActualDeliveredQuantity,
      @Semantics.quantity.unitOfMeasure: 'ProductionUnit'
      (MfgOrder.MfgOrderPlannedTotalQty - MfgOrder.MfgOrderPlannedScrapQty - MfgOrder.ExpectedDeviationQuantity - MfgOrder.ActualDeliveredQuantity) as  OpenQuantity,
      MfgOrder.ManufacturingOrderImportance,
      MfgOrder.MfgOrderIsPartOfCollvOrder,

      // Material/product data

      _ProductSupplyPlanning.PlannedDeliveryDurationInDays                                                                                          as  MaterialPlannedDeliveryDurn,
      //      @ObjectModel.text.element:  'PurchasingGroupName'

      ProductPlant.PurchasingGroup,
      //      case _PurchasingGroup.PhoneNumberExtension

      //        when '' then _PurchasingGroup.PurchasingGroupPhoneNumber

      //        else concat(_PurchasingGroup.PhoneNumber, concat('-', _PurchasingGroup.PhoneNumberExtension))

      //      end as PurchasingGroupPhoneNumber,

      _ProductSupplyPlanning.TotalReplenishmentLeadTime,
      _ProductSupplyPlanning.FixedLotSizeQuantity, // MaterialFixedLotSizeQuantity

      _ProductSupplyPlanning.MinimumLotSizeQuantity, //MaterialMinLotSizeQuantity,

      _ProductSupplyPlanning.MaximumLotSizeQuantity, //MaterialMaxLotSizeQuantity,

      _ProductSupplyPlanning.LotSizeRoundingQuantity, //MaterialRoundingQuantity

      _ProductSupplyPlanning.RoundingProfile, //MaterialRoundingProfile


      // Sales Order

      MfgOrderItem.SalesOrder,
      MfgOrderItem.SalesOrderItem,
      MfgOrderItem._SalesOrder.SalesOrderType,
      MfgOrderItem._SalesOrderItem.Material                                                                                                         as  SalesOrderItemMaterial,
      MfgOrderItem._SalesOrder.SoldToParty                                                                                                          as  Customer,

      // Production Version

      MfgOrderItem._ProductionVersion.ProductionVersionText,
      MfgOrderItem.ProductionVersion,
      MfgOrderItem._ProductionVersion.ProductionLine,

      // WBS Element

      MfgOrderItem.WBSElementInternalID_2                                                                                                           as WBSElementInternalID,
      MfgOrderItem._WBSElementBasicData2.WBSElementExternalID                                                                                       as WBSElement, //ExternalID

      MfgOrderItem._WBSElementBasicData2.WBSDescription,
      
      cast( _ProjectRespPersn.PersonWorkAgreement as ps_s4_vernr preserving type )                                                                  as ResponsiblePerson,
      _ProjectRespPersn._WorkforcePerson.PersonFullName                                                                                             as ResponsiblePersonName,
      
      MfgOrderItem._WBSElementBasicData2._Project.ProjectInternalID,
      MfgOrderItem._WBSElementBasicData2._Project.ProjectExternalID                                                                                 as Project, //ExternalID

      MfgOrderItem._WBSElementBasicData2._Project.ProjectDescription,
      cast( _ProjectRespPersn.PersonWorkAgreement as ps_s4_vernr preserving type )                                                                  as ProjectResponsiblePerson,
      _ProjectRespPersn._WorkforcePerson.PersonFullName                                                                                             as ProjectResponsiblePersonName,
      
      // Top Level Order

      TopLevelOrder.ManufacturingOrder                                                                                                              as  TopLevelOrder,
      OrderItem.Material                                                                                                                            as  TopLevelOrderMaterial,

      // Progress status

      case
          when MfgOrder.MfgOrderActualReleaseDate <> '00000000' //afko.ftrmi

             then 2 //'released'

          when MfgOrder.MfgOrderActualStartDate <> '00000000' //afko.gstri

             then 3 //'in progress'

          when MfgOrder.MfgOrderActualEndDate <> '00000000' //afko.getri

             then 4 //'finished'

         else 1 //'created'

      end                                                                                                                                           as  MfgOrderProgressStatus,

      // MRP Controller

      MfgOrder.MRPController,
      MfgOrder.ProductionSupervisor,
      MfgOrderItem._WBSElementBasicData2
};