I_MRPMfgOrder
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)
| Source | Alias | Join Type |
|---|---|---|
| I_MfgOrder | MfgOrder | from |
| I_MfgOrderItem | MfgOrderItem | inner |
| I_MfgOrderItem | OrderItem | inner |
| I_ProductPlant | ProductPlant | inner |
Associations (2)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [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)
| Name | Value | Level | Field |
|---|---|---|---|
| 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)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| 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":""
}
}*/
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA