P_SFIAssembledComponent
Component assembled into a SFI (manual and backflushed)
P_SFIAssembledComponent is a Consumption CDS View that provides data about "Component assembled into a SFI (manual and backflushed)" in SAP S/4HANA. It reads from 5 data sources (I_OpActyComponentAssignment, I_OpActyNtwkInstanceBasic, I_OrderComponent, I_SFIAtOpActyAssyByComponent, I_ShopFloorItemStatus) and exposes 89 fields with key fields Reservation, ReservationItem, RecordType, OpActyNtwkInstance, OpActyNtwkElement. It has 5 associations to related views. Part of development package MPE_EXEC_SFI.
Data Sources (5)
| Source | Alias | Join Type |
|---|---|---|
| I_OpActyComponentAssignment | OpActyComponentAssignment | inner |
| I_OpActyNtwkInstanceBasic | OpActyNtwkInstanceBasic | inner |
| I_OrderComponent | OrderComponent | inner |
| I_SFIAtOpActyAssyByComponent | SFIAtOpActyAssyByComponent | from |
| I_ShopFloorItemStatus | ShopFloorItemStatus | union_all |
Associations (5)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_Plant | _Plant | $projection.Plant = _Plant.Plant |
| [0..1] | I_ProductPlant | _ProductPlant | $projection.Material = _ProductPlant.Product and $projection.Plant = _ProductPlant.Plant |
| [1..1] | I_OpActyNtwkInstance | _OpActyNtwkInstance | $projection.OpActyNtwkInstance = _OpActyNtwkInstance.OpActyNtwkInstance |
| [1..1] | I_OperationActivityInstance | _OperationActivityInstance | $projection.OpActyNtwkInstance = _OperationActivityInstance.OpActyNtwkInstance and $projection.OpActyNtwkElement = _OperationActivityInstance.OpActyNtwkElement |
| [1..1] | I_Material | _Material | $projection.Material = _Material.Material |
Annotations (10)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PMPESFIACMP | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #NOT_REQUIRED | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| VDM.viewType | #CONSUMPTION | view | |
| VDM.private | true | view |
Fields (89)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | Reservation | I_SFIAtOpActyAssyByComponent | Reservation | |
| KEY | ReservationItem | I_SFIAtOpActyAssyByComponent | ReservationItem | |
| KEY | RecordType | I_SFIAtOpActyAssyByComponent | RecordType | |
| KEY | OpActyNtwkInstance | I_SFIAtOpActyAssyByComponent | OpActyNtwkInstance | |
| KEY | OpActyNtwkElement | I_SFIAtOpActyAssyByComponent | OpActyNtwkElement | |
| KEY | AssemblyShopFloorItem | I_SFIAtOpActyAssyByComponent | AssemblyShopFloorItem | |
| KEY | Material | I_SFIAtOpActyAssyByComponent | Material | |
| KEY | Plant | I_SFIAtOpActyAssyByComponent | Plant | |
| StorageLocation | I_OrderComponent | StorageLocation | ||
| dec1343asco_mengeasRequiredQuantity | ||||
| MaterialComponentQuantity | I_SFIAtOpActyAssyByComponent | MaterialComponentQuantity | ||
| QuantityInEntryUnit | I_SFIAtOpActyAssyByComponent | QuantityInEntryUnit | ||
| MaterialBaseUnit | I_SFIAtOpActyAssyByComponent | MaterialBaseUnit | ||
| EntryUnit | I_SFIAtOpActyAssyByComponent | EntryUnit | ||
| ManufacturingOrder | OpActyNtwkInstance | ManufacturingOrder | ||
| OrderInternalID | OpActyNtwkInstance | OrderInternalID | ||
| OrderOperationInternalID | OpActyNtwkInstance | OrderOperationInternalID | ||
| OperationActivityNetwork | OpActyNtwkInstance | OperationActivityNetwork | ||
| OpActyNtwkVersionCounter | OpActyNtwkInstance | OpActyNtwkVersionCounter | ||
| MatlCompIsMarkedForBackflush | ||||
| GoodsMovementIsAllowed | ||||
| MatlCompInstceAssyIsRequired | I_OpActyComponentAssignment | MatlCompInstceAssyIsRequired | ||
| MfgRefStrucBOMLeafAssgmtUUID | I_OpActyComponentAssignment | MfgRefStrucBOMLeafAssgmtUUID | ||
| MfgRefStructureItemDetailUUID | I_OpActyComponentAssignment | MfgRefStructureItemDetailUUID | ||
| MfgRefStrucItmDetIsContextual | I_OpActyComponentAssignment | MfgRefStrucItmDetIsContextual | ||
| BOOOpBOMItemInternalID | I_OpActyComponentAssignment | BOOOpBOMItemInternalID | ||
| LogicalComponent | I_OpActyComponentAssignment | LogicalComponent | ||
| MfgOrderComponentUsageNetQty | I_OpActyComponentAssignment | MfgOrderComponentUsageNetQty | ||
| BOMItemCategory | I_OrderComponent | BOMItemCategory | ||
| BillOfMaterialInternalID | I_OrderComponent | BillOfMaterialInternalID | ||
| BOMItem | I_OrderComponent | BOMItem | ||
| BOMItemInternalChangeCount | I_OrderComponent | BOMItemInternalChangeCount | ||
| MaterialCompIsVariableSized | ||||
| FormulaKey | I_OrderComponent | FormulaKey | ||
| VariableSizeDimension1 | I_OrderComponent | VariableSizeDimension1 | ||
| VariableSizeDimension2 | I_OrderComponent | VariableSizeDimension2 | ||
| VariableSizeDimension3 | I_OrderComponent | VariableSizeDimension3 | ||
| VariableSizeDimensionUnit | I_OrderComponent | VariableSizeDimensionUnit | ||
| VariableSizeComponentQuantity | I_OrderComponent | VariableSizeComponentQuantity | ||
| VariableSizeComponentUnit | I_OrderComponent | VariableSizeComponentUnit | ||
| _Material | I_SFIAtOpActyAssyByComponent | _Material | ||
| _Plant | _Plant | |||
| _ProductPlant | _ProductPlant | |||
| _OpActyNtwkInstance | _OpActyNtwkInstance | |||
| _OperationActivityInstance | _OperationActivityInstance | |||
| Reservation | ||||
| KEY | ReservationItem | I_OpActyComponentAssignment | ReservationItem | |
| KEY | RecordType | I_OpActyComponentAssignment | RecordType | |
| KEY | OpActyNtwkInstance | I_OpActyComponentAssignment | OpActyNtwkInstance | |
| KEY | OpActyNtwkElement | I_OpActyComponentAssignment | OpActyNtwkElement | |
| KEY | AssemblyShopFloorItem | I_ShopFloorItemStatus | ShopFloorItem | |
| KEY | Material | I_OrderComponent | Material | |
| KEY | Plant | I_OrderComponent | Plant | |
| StorageLocation | I_OrderComponent | StorageLocation | ||
| dec1343asco_mengeasRequiredQuantity | ||||
| QuantityInEntryUnit | I_OpActyComponentAssignment | MfgOrderComponentUsageQuantity | ||
| MaterialBaseUnit | I_OrderComponent | BaseUnit | ||
| ManufacturingOrder | I_OpActyNtwkInstanceBasic | ManufacturingOrder | ||
| OrderInternalID | I_OpActyNtwkInstanceBasic | OrderInternalID | ||
| OrderOperationInternalID | I_OpActyNtwkInstanceBasic | OrderOperationInternalID | ||
| OperationActivityNetwork | I_OpActyNtwkInstanceBasic | OperationActivityNetwork | ||
| OpActyNtwkVersionCounter | I_OpActyNtwkInstanceBasic | OpActyNtwkVersionCounter | ||
| MatlCompIsMarkedForBackflush | ||||
| GoodsMovementIsAllowed | I_OrderComponent | GoodsMovementIsAllowed | ||
| MatlCompInstceAssyIsRequired | I_OpActyComponentAssignment | MatlCompInstceAssyIsRequired | ||
| MfgRefStrucBOMLeafAssgmtUUID | I_OpActyComponentAssignment | MfgRefStrucBOMLeafAssgmtUUID | ||
| MfgRefStructureItemDetailUUID | I_OpActyComponentAssignment | MfgRefStructureItemDetailUUID | ||
| MfgRefStrucItmDetIsContextual | I_OpActyComponentAssignment | MfgRefStrucItmDetIsContextual | ||
| BOOOpBOMItemInternalID | I_OpActyComponentAssignment | BOOOpBOMItemInternalID | ||
| LogicalComponent | I_OpActyComponentAssignment | LogicalComponent | ||
| MfgOrderComponentUsageNetQty | I_OpActyComponentAssignment | MfgOrderComponentUsageNetQty | ||
| BOMItemCategory | I_OrderComponent | BOMItemCategory | ||
| BillOfMaterialInternalID | I_OrderComponent | BillOfMaterialInternalID | ||
| BOMItem | I_OrderComponent | BOMItem | ||
| BOMItemInternalChangeCount | I_OrderComponent | BOMItemInternalChangeCount | ||
| MaterialCompIsVariableSized | ||||
| FormulaKey | I_OrderComponent | FormulaKey | ||
| VariableSizeDimension1 | I_OrderComponent | VariableSizeDimension1 | ||
| VariableSizeDimension2 | I_OrderComponent | VariableSizeDimension2 | ||
| VariableSizeDimension3 | I_OrderComponent | VariableSizeDimension3 | ||
| VariableSizeDimensionUnit | I_OrderComponent | VariableSizeDimensionUnit | ||
| VariableSizeComponentQuantity | I_OrderComponent | VariableSizeComponentQuantity | ||
| VariableSizeComponentUnit | I_OrderComponent | VariableSizeComponentUnit | ||
| _Material | _Material | |||
| _Plant | _Plant | |||
| _ProductPlant | _ProductPlant | |||
| _OpActyNtwkInstance | _OpActyNtwkInstance | |||
| _OperationActivityInstance | _OperationActivityInstance | |||
| _BOMItemCategory | I_OrderComponent | _BOMItemCategory |
@AbapCatalog.sqlViewName: 'PMPESFIACMP'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType: {serviceQuality: #D, sizeCategory: #XL, dataClass: #MIXED}
@VDM.viewType: #CONSUMPTION
@VDM.private: true
define view P_SFIAssembledComponent
as select from I_SFIAtOpActyAssyByComponent as SFIAtOpActyAssyByComponent
left outer to one join I_OpActyNtwkInstanceBasic as OpActyNtwkInstance on OpActyNtwkInstance.OpActyNtwkInstance = SFIAtOpActyAssyByComponent.OpActyNtwkInstance
left outer to one join I_OpActyComponentAssignment as OpActyComponentAssignment on OpActyComponentAssignment.OpActyNtwkInstance = SFIAtOpActyAssyByComponent.OpActyNtwkInstance
and OpActyComponentAssignment.OpActyNtwkElement = SFIAtOpActyAssyByComponent.OpActyNtwkElement
and OpActyComponentAssignment.Reservation = SFIAtOpActyAssyByComponent.Reservation
and OpActyComponentAssignment.ReservationItem = SFIAtOpActyAssyByComponent.ReservationItem
and OpActyComponentAssignment.RecordType = SFIAtOpActyAssyByComponent.RecordType
left outer to one join I_OrderComponent as OrderComponent on OrderComponent.Reservation = OpActyComponentAssignment.Reservation
and OrderComponent.ReservationItem = OpActyComponentAssignment.ReservationItem
and OrderComponent.RecordType = OpActyComponentAssignment.RecordType
association [0..1] to I_Plant as _Plant on $projection.Plant = _Plant.Plant
association [0..1] to I_ProductPlant as _ProductPlant on $projection.Material = _ProductPlant.Product
and $projection.Plant = _ProductPlant.Plant
// association [0..1] to I_StorageLocation as _StorageLocation on $projection.Plant = _StorageLocation.Plant
// and $projection.storagelocation = _StorageLocation.StorageLocation
association [1..1] to I_OpActyNtwkInstance as _OpActyNtwkInstance on $projection.OpActyNtwkInstance = _OpActyNtwkInstance.OpActyNtwkInstance
association [1..1] to I_OperationActivityInstance as _OperationActivityInstance on $projection.OpActyNtwkInstance = _OperationActivityInstance.OpActyNtwkInstance
and $projection.OpActyNtwkElement = _OperationActivityInstance.OpActyNtwkElement
{
key SFIAtOpActyAssyByComponent.Reservation,
key SFIAtOpActyAssyByComponent.ReservationItem,
key SFIAtOpActyAssyByComponent.RecordType,
@ObjectModel.foreignKey.association: '_OpActyNtwkInstance'
key SFIAtOpActyAssyByComponent.OpActyNtwkInstance,
@ObjectModel.foreignKey.association: '_OperationActivityInstance'
key SFIAtOpActyAssyByComponent.OpActyNtwkElement,
key SFIAtOpActyAssyByComponent.AssemblyShopFloorItem,
key SFIAtOpActyAssyByComponent.Material,
@ObjectModel.foreignKey.association: '_Plant'
key SFIAtOpActyAssyByComponent.Plant,
OrderComponent.StorageLocation,
@Semantics.quantity.unitOfMeasure: 'EntryUnit'
cast(round(fltp_to_dec( OpActyComponentAssignment.MfgOrderComponentUsageNetQty as abap.dec(13,4) ), 3)
as co_menge ) as RequiredQuantity,
@Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
SFIAtOpActyAssyByComponent.MaterialComponentQuantity,
@Semantics.quantity.unitOfMeasure: 'EntryUnit'
SFIAtOpActyAssyByComponent.QuantityInEntryUnit,
@Semantics.unitOfMeasure: true
SFIAtOpActyAssyByComponent.MaterialBaseUnit,
@Semantics.unitOfMeasure: true
SFIAtOpActyAssyByComponent.EntryUnit,
OpActyNtwkInstance.ManufacturingOrder,
OpActyNtwkInstance.OrderInternalID,
OpActyNtwkInstance.OrderOperationInternalID,
OpActyNtwkInstance.OperationActivityNetwork,
OpActyNtwkInstance.OpActyNtwkVersionCounter,
cast('' as mpe_comp_is_for_backflush preserving type) as MatlCompIsMarkedForBackflush,
cast(coalesce(OrderComponent.GoodsMovementIsAllowed, 'X') as xwaok preserving type ) as GoodsMovementIsAllowed,
OpActyComponentAssignment.MatlCompInstceAssyIsRequired,
OpActyComponentAssignment.MfgRefStrucBOMLeafAssgmtUUID,
OpActyComponentAssignment.MfgRefStructureItemDetailUUID,
OpActyComponentAssignment.MfgRefStrucItmDetIsContextual,
OpActyComponentAssignment.BOOOpBOMItemInternalID,
OpActyComponentAssignment.LogicalComponent,
OpActyComponentAssignment.MfgOrderComponentUsageNetQty,
OrderComponent.BOMItemCategory,
OrderComponent.BillOfMaterialInternalID,
OrderComponent.BOMItem,
OrderComponent.BOMItemInternalChangeCount,
-- Variable-Size Item Fields
OrderComponent.MaterialCompIsVariableSized,
OrderComponent.FormulaKey,
@Semantics.quantity.unitOfMeasure: 'VariableSizeDimensionUnit'
OrderComponent.VariableSizeDimension1,
@Semantics.quantity.unitOfMeasure: 'VariableSizeDimensionUnit'
OrderComponent.VariableSizeDimension2,
@Semantics.quantity.unitOfMeasure: 'VariableSizeDimensionUnit'
OrderComponent.VariableSizeDimension3,
@Semantics.unitOfMeasure: true
OrderComponent.VariableSizeDimensionUnit,
@Semantics.quantity.unitOfMeasure: 'VariableSizeComponentUnit'
OrderComponent.VariableSizeComponentQuantity,
@Semantics.unitOfMeasure: true
OrderComponent.VariableSizeComponentUnit,
SFIAtOpActyAssyByComponent._Material,
_Plant,
// _StorageLocation,
_ProductPlant,
_OpActyNtwkInstance,
_OperationActivityInstance,
OrderComponent._BOMItemCategory
}
-- add backflushed components
union all
select from I_ShopFloorItemStatus as ShopFloorItemStatus
inner join I_OpActyNtwkInstanceBasic as OpActyNtwkInstanceBasic on OpActyNtwkInstanceBasic.OpActyNtwkInstance = ShopFloorItemStatus.OpActyNtwkInstance
inner join I_OpActyComponentAssignment as OpActyComponentAssignment on OpActyComponentAssignment.OpActyNtwkInstance = ShopFloorItemStatus.OpActyNtwkInstance
and OpActyComponentAssignment.OpActyNtwkElement = ShopFloorItemStatus.OpActyNtwkElement
inner join I_OrderComponent as OrderComponent on OrderComponent.Reservation = OpActyComponentAssignment.Reservation
and OrderComponent.ReservationItem = OpActyComponentAssignment.ReservationItem
and OrderComponent.RecordType = OpActyComponentAssignment.RecordType
and OrderComponent.MatlCompIsMarkedForBackflush = 'X' --backflushed
association [0..1] to I_Plant as _Plant on $projection.Plant = _Plant.Plant
association [1..1] to I_Material as _Material on $projection.Material = _Material.Material
association [0..1] to I_ProductPlant as _ProductPlant on $projection.Material = _ProductPlant.Product
and $projection.Plant = _ProductPlant.Plant
association [1..1] to I_OpActyNtwkInstance as _OpActyNtwkInstance on $projection.OpActyNtwkInstance = _OpActyNtwkInstance.OpActyNtwkInstance
association [1..1] to I_OperationActivityInstance as _OperationActivityInstance on $projection.OpActyNtwkInstance = _OperationActivityInstance.OpActyNtwkInstance
and $projection.OpActyNtwkElement = _OperationActivityInstance.OpActyNtwkElement
{
@UI.hidden:true
key OpActyComponentAssignment.Reservation,
key OpActyComponentAssignment.ReservationItem,
key OpActyComponentAssignment.RecordType,
@ObjectModel.foreignKey.association: '_OpActyNtwkInstance'
key OpActyComponentAssignment.OpActyNtwkInstance,
@ObjectModel.foreignKey.association: '_OperationActivityInstance'
key OpActyComponentAssignment.OpActyNtwkElement,
key ShopFloorItemStatus.ShopFloorItem as AssemblyShopFloorItem,
key OrderComponent.Material,
@ObjectModel.foreignKey.association: '_Plant'
key OrderComponent.Plant,
OrderComponent.StorageLocation,
@Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
cast(round(fltp_to_dec(OpActyComponentAssignment.MfgOrderComponentUsageNetQty as abap.dec(13,4)), 3)
as co_menge ) as RequiredQuantity,
@Semantics.quantity.unitOfMeasure: 'MaterialBaseUnit'
cast(case OrderComponent.MaterialCompIsVariableSized
when 'X' then round(fltp_to_dec(OpActyComponentAssignment.MfgOrderComponentUsageNetQty as abap.dec(13,4)), 3)
* OrderComponent.VariableSizeComponentQuantity
else round(fltp_to_dec(OpActyComponentAssignment.MfgOrderComponentUsageNetQty as abap.dec(13,4)), 3)
end as mpe_consumed_qty) as MaterialComponentQuantity,
@Semantics.quantity.unitOfMeasure: 'EntryUnit'
OpActyComponentAssignment.MfgOrderComponentUsageQuantity as QuantityInEntryUnit,
@Semantics.unitOfMeasure: true
OrderComponent.BaseUnit as MaterialBaseUnit,
@Semantics.unitOfMeasure: true
cast(case OrderComponent.MaterialCompIsVariableSized
when 'X' then OrderComponent.VariableSizeComponentUnit
else OrderComponent.BaseUnit
end as erfme preserving type) as EntryUnit,
OpActyNtwkInstanceBasic.ManufacturingOrder,
OpActyNtwkInstanceBasic.OrderInternalID,
OpActyNtwkInstanceBasic.OrderOperationInternalID,
OpActyNtwkInstanceBasic.OperationActivityNetwork,
OpActyNtwkInstanceBasic.OpActyNtwkVersionCounter,
cast('X' as mpe_comp_is_for_backflush preserving type) as MatlCompIsMarkedForBackflush,
OrderComponent.GoodsMovementIsAllowed,
OpActyComponentAssignment.MatlCompInstceAssyIsRequired,
OpActyComponentAssignment.MfgRefStrucBOMLeafAssgmtUUID,
OpActyComponentAssignment.MfgRefStructureItemDetailUUID,
OpActyComponentAssignment.MfgRefStrucItmDetIsContextual,
OpActyComponentAssignment.BOOOpBOMItemInternalID,
OpActyComponentAssignment.LogicalComponent,
OpActyComponentAssignment.MfgOrderComponentUsageNetQty,
OrderComponent.BOMItemCategory,
OrderComponent.BillOfMaterialInternalID,
OrderComponent.BOMItem,
OrderComponent.BOMItemInternalChangeCount,
-- Variable-Size Item Fields
OrderComponent.MaterialCompIsVariableSized,
OrderComponent.FormulaKey,
@Semantics.quantity.unitOfMeasure: 'VariableSizeDimensionUnit'
OrderComponent.VariableSizeDimension1,
@Semantics.quantity.unitOfMeasure: 'VariableSizeDimensionUnit'
OrderComponent.VariableSizeDimension2,
@Semantics.quantity.unitOfMeasure: 'VariableSizeDimensionUnit'
OrderComponent.VariableSizeDimension3,
@Semantics.unitOfMeasure: true
OrderComponent.VariableSizeDimensionUnit,
@Semantics.quantity.unitOfMeasure: 'VariableSizeComponentUnit'
OrderComponent.VariableSizeComponentQuantity,
@Semantics.unitOfMeasure: true
OrderComponent.VariableSizeComponentUnit,
_Material,
_Plant,
// _StorageLocation,
_ProductPlant,
_OpActyNtwkInstance,
_OperationActivityInstance,
OrderComponent._BOMItemCategory
}
where
ShopFloorItemStatus._SASStatus.SASStatusCategory = 3 -- Completed
or(
ShopFloorItemStatus._SASStatus.SASStatusCategory = 7 -- Scrapped
and ShopFloorItemStatus._SASStatus.SASStatusCategory = 2 -- from In Process
)
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