I_MRPMfgOrder

DDL: I_MRPMFGORDER SQL: IMRPMFGORDER Type: view COMPOSITE

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_MfgOrder, I_MfgOrderItem, I_MfgOrderItem, I_ProductPlant) and exposes 50 fields with key fields ManufacturingOrder, ManufacturingOrderItem. It has 2 associations to related views.

Data Sources (4)

SourceAliasJoin Type
I_MfgOrder MfgOrder from
I_MfgOrderItem MfgOrderItem inner
I_MfgOrderItem 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_WBSElement _WBSElement $projection.WBSElementInternalID = _WBSElement.WBSElementInternalID

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 (50)

KeyFieldSource TableSource FieldDescription
KEY ManufacturingOrder I_MfgOrderItem ManufacturingOrder
KEY ManufacturingOrderItem I_MfgOrderItem ManufacturingOrderItem
ManufacturingOrderCategory I_MfgOrder ManufacturingOrderCategory
ManufacturingOrderType I_MfgOrder ManufacturingOrderType
Material I_MfgOrderItem Material
MRPPlant I_MfgOrderItem MRPPlant
ProductionPlant I_MfgOrderItem ProductionPlant
MaterialGoodsReceiptDuration I_MfgOrderItem MaterialGoodsReceiptDuration
MfgOrderPlannedStartDate I_MfgOrder MfgOrderPlannedStartDate
MfgOrderPlannedEndDate I_MfgOrder MfgOrderPlannedEndDate
MfgOrderActualStartDate I_MfgOrder MfgOrderActualStartDate
MfgOrderActualEndDate I_MfgOrder MfgOrderActualEndDate
MfgOrderActualReleaseDate I_MfgOrder MfgOrderActualReleaseDate
MfgOrderScheduledStartDate I_MfgOrder MfgOrderScheduledStartDate
MfgOrderScheduledEndDate I_MfgOrder MfgOrderScheduledEndDate
MfgOrderScheduledReleaseDate I_MfgOrder MfgOrderScheduledReleaseDate
ProductionUnit I_MfgOrder ProductionUnit
MfgOrderPlannedTotalQty I_MfgOrder MfgOrderPlannedTotalQty
MfgOrderPlannedScrapQty I_MfgOrder MfgOrderPlannedScrapQty
ExpectedDeviationQuantity I_MfgOrder ExpectedDeviationQuantity
ActualDeliveredQuantity I_MfgOrder ActualDeliveredQuantity
OpenQuantity
ManufacturingOrderImportance I_MfgOrder ManufacturingOrderImportance
MfgOrderIsPartOfCollvOrder I_MfgOrder 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_MfgOrderItem SalesOrder
SalesOrderItem I_MfgOrderItem SalesOrderItem
SalesOrderType
SalesOrderItemMaterial
Customer
ProductionVersionText
ProductionVersion I_MfgOrderItem ProductionVersion
ProductionLine
WBSElementInternalID I_MfgOrderItem WBSElementInternalID
WBSElement
WBSDescription
ProjectInternalID
Project
TopLevelOrder TopLevelOrder ManufacturingOrder
TopLevelOrderMaterial I_MfgOrderItem Material
MRPController I_MfgOrder MRPController
ProductionSupervisor I_MfgOrder ProductionSupervisor
_WBSElement _WBSElement
@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_MfgOrder     as MfgOrder
    inner join     I_MfgOrderItem 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.MRPPlant
    left outer join(
                   I_MfgOrder     as TopLevelOrder
        inner join I_MfgOrderItem 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_WBSElement            as _WBSElement            on  $projection.WBSElementInternalID = _WBSElement.WBSElementInternalID

{
  key MfgOrderItem.ManufacturingOrder,
  key MfgOrderItem.ManufacturingOrderItem,
      MfgOrder.ManufacturingOrderCategory,
      MfgOrder.ManufacturingOrderType,
      MfgOrderItem.Material,
      MfgOrderItem.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,
      MfgOrderItem._WBSElement.WBSElement,
      MfgOrderItem._WBSElement.WBSDescription,

      cast( case
         when MfgOrderItem._WBSElement.ResponsiblePerson = '00000000' or MfgOrderItem._WBSElement.ResponsiblePerson is null
            then _WBSElement._EntProjectResponsiblePerson.PersonWorkAgreement
          else
            MfgOrderItem._WBSElement.ResponsiblePerson
        end as ps_s4_vernr preserving type )                                                                                                        as ResponsiblePerson,

      cast( case
         when MfgOrderItem._WBSElement.ResponsiblePerson = '00000000' or MfgOrderItem._WBSElement.ResponsiblePerson is null
            then _WBSElement._EntProjectResponsiblePerson._WorkforcePerson.PersonFullName
          else
            MfgOrderItem._WBSElement.ResponsiblePersonName
        end as ad_namtext preserving type )                                                                                                         as ResponsiblePersonName,

      MfgOrderItem._WBSElement.ProjectInternalID,
      MfgOrderItem._WBSElement._Project.Project,

      // 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,

      _WBSElement
};
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ENTPROJECTRESPONSIBLEPERSON",
"I_MFGORDER",
"I_MFGORDERITEM",
"I_PRODUCTIONVERSION",
"I_PRODUCTPLANT",
"I_PRODUCTSUPPLYPLANNING",
"I_PROJECTBYINTERNALKEY",
"I_SALESORDER",
"I_SALESORDERITEM",
"I_WBSELEMENT",
"I_WBSELEMENTBYINTERNALKEY",
"I_WORKFORCEPERSON"
],
"ASSOCIATED":
[
"I_PRODUCTSUPPLYPLANNING",
"I_WBSELEMENT"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/