P_BOMItemChanges
P_BOMItemChanges is a Basic CDS View in SAP S/4HANA. It reads from 8 data sources and exposes 34 fields with key fields BillOfMaterial, BillOfMaterialCategory, BillOfMaterialVariant, EngineeringChangeDocument, BillOfMaterialVersion.
Data Sources (8)
| Source | Alias | Join Type |
|---|---|---|
| I_ChangeMaster | aenr | inner |
| I_ChangeMaster | aenr | inner |
| I_ChangeMaster | aenr | inner |
| stko_draft_v2 | HeaderDraftChanges | inner |
| stpo | ItemChanges | inner |
| stpo | ItemChanges | inner |
| I_SalesOrderBOMLink | kdst | inner |
| I_MaterialBOMLink | mast | inner |
Annotations (7)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PBOMITEMCHANGES | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| VDM.private | true | view | |
| VDM.viewType | #BASIC | view | |
| AccessControl.authorizationCheck | #NOT_REQUIRED | view |
Fields (34)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | BillOfMaterial | stpo | stlnr | |
| KEY | BillOfMaterialCategory | stpo | stlty | |
| KEY | BillOfMaterialVariant | ItemHistory | stlal | |
| KEY | EngineeringChangeDocument | ItemHistory | aennr | |
| KEY | BillOfMaterialVersion | ItemHistory | bom_versn | |
| KEY | Material | I_MaterialBOMLink | Material | |
| KEY | Plant | I_MaterialBOMLink | Plant | |
| KEY | BillOfMaterialVariantUsage | I_MaterialBOMLink | BillOfMaterialVariantUsage | |
| ChangeNumberStatus | I_ChangeMaster | ChangeNumberStatus | ||
| ChangeNumberValidFromDate | I_ChangeMaster | ChangeNumberValidFromDate | ||
| ChangeNumberCreatedByUser | I_ChangeMaster | ChangeNumberCreatedByUser | ||
| stlnrasBillOfMaterial | ||||
| KEY | BillOfMaterialCategory | stpo | stlty | |
| KEY | BillOfMaterialVariant | ItemHistory | stlal | |
| KEY | EngineeringChangeDocument | ItemHistory | aennr | |
| KEY | BillOfMaterialVersion | ItemHistory | bom_versn | |
| KEY | Material | I_SalesOrderBOMLink | Material | |
| KEY | Plant | I_SalesOrderBOMLink | Plant | |
| KEY | BillOfMaterialVariantUsage | I_SalesOrderBOMLink | BillOfMaterialVariantUsage | |
| ChangeNumberStatus | I_ChangeMaster | ChangeNumberStatus | ||
| ChangeNumberValidFromDate | I_ChangeMaster | ChangeNumberValidFromDate | ||
| ChangeNumberCreatedByUser | I_ChangeMaster | ChangeNumberCreatedByUser | ||
| billofmaterialasBillOfMaterial | ||||
| KEY | BillOfMaterialCategory | ItemDraftChanges | billofmaterialcategory | |
| KEY | BillOfMaterialVariant | ItemDraftChanges | billofmaterialvariantforedit | |
| KEY | EngineeringChangeDocument | ItemDraftChanges | engineeringchangedocument | |
| KEY | BillOfMaterialVersion | ItemDraftChanges | billofmaterialversionforedit | |
| KEY | Material | stko_draft_v2 | materialforedit | |
| KEY | Plant | stko_draft_v2 | plantforedit | |
| KEY | BillOfMaterialVariantUsage | stko_draft_v2 | billofmaterialvariantusage | |
| ChangeNumberStatus | I_ChangeMaster | ChangeNumberStatus | ||
| ChangeNumberValidFromDate | I_ChangeMaster | ChangeNumberValidFromDate | ||
| ChangeNumberCreatedByUser | I_ChangeMaster | ChangeNumberCreatedByUser | ||
| ChangeNumberCreationDate | I_ChangeMaster | ChangeNumberCreationDate |
@AbapCatalog.sqlViewName: 'PBOMITEMCHANGES'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.private: true
@VDM.viewType: #BASIC
@AccessControl.authorizationCheck: #NOT_REQUIRED
define view P_BOMItemChanges as select distinct from stas as ItemHistory
inner join I_MaterialBOMLink as mast on ItemHistory.stlal = mast.BillOfMaterialVariant
and ItemHistory.stlnr = mast.BillOfMaterial
inner join stpo as ItemChanges on ItemChanges.stlnr = ItemHistory.stlnr
and ItemChanges.stlkn = ItemHistory.stlkn
and ItemChanges.stlty = ItemHistory.stlty
inner join I_ChangeMaster as aenr on ItemHistory.aennr = aenr.ChangeNumber
{
key ItemChanges.stlnr as BillOfMaterial,
key ItemChanges.stlty as BillOfMaterialCategory,
key ItemHistory.stlal as BillOfMaterialVariant,
key ItemHistory.aennr as EngineeringChangeDocument,
key ItemHistory.bom_versn as BillOfMaterialVersion,
key mast.Material,
key mast.Plant,
key mast.BillOfMaterialVariantUsage,
aenr.ChangeNumberStatus,
aenr.ChangeNumberValidFromDate,
aenr.ChangeNumberCreatedByUser,
aenr.ChangeNumberCreationDate
}
where
ItemChanges.stlty = 'M'
and ItemHistory.stlty = 'M'
//Code added to support Sales Order BOM
union all select distinct from stas as ItemHistory
inner join I_SalesOrderBOMLink as kdst on ItemHistory.stlal = kdst.BillOfMaterialVariant
and ItemHistory.stlnr = kdst.BillOfMaterial
inner join stpo as ItemChanges on ItemChanges.stlnr = ItemHistory.stlnr
and ItemChanges.stlkn = ItemHistory.stlkn
and ItemChanges.stlty = ItemHistory.stlty
inner join I_ChangeMaster as aenr on ItemHistory.aennr = aenr.ChangeNumber
{
key ItemChanges.stlnr as BillOfMaterial,
key ItemChanges.stlty as BillOfMaterialCategory,
key ItemHistory.stlal as BillOfMaterialVariant,
key ItemHistory.aennr as EngineeringChangeDocument,
key ItemHistory.bom_versn as BillOfMaterialVersion,
key kdst.Material,
key kdst.Plant,
key kdst.BillOfMaterialVariantUsage,
aenr.ChangeNumberStatus,
aenr.ChangeNumberValidFromDate,
aenr.ChangeNumberCreatedByUser,
aenr.ChangeNumberCreationDate
}
where
ItemChanges.stlty = 'K'
and ItemHistory.stlty = 'K'
union all select distinct from stpo_draft_v2 as ItemDraftChanges
inner join I_ChangeMaster as aenr on ItemDraftChanges.engineeringchangedocument = aenr.ChangeNumber
inner join stko_draft_v2 as HeaderDraftChanges on ItemDraftChanges.parentdraftuuid = HeaderDraftChanges.draftuuid
{
key ItemDraftChanges.billofmaterial as BillOfMaterial,
key ItemDraftChanges.billofmaterialcategory as BillOfMaterialCategory,
key ItemDraftChanges.billofmaterialvariantforedit as BillOfMaterialVariant,
key ItemDraftChanges.engineeringchangedocument as EngineeringChangeDocument,
key ItemDraftChanges.billofmaterialversionforedit as BillOfMaterialVersion,
key HeaderDraftChanges.materialforedit as Material,
key HeaderDraftChanges.plantforedit as Plant,
key HeaderDraftChanges.billofmaterialvariantusage as BillOfMaterialVariantUsage,
aenr.ChangeNumberStatus,
aenr.ChangeNumberValidFromDate,
aenr.ChangeNumberCreatedByUser,
aenr.ChangeNumberCreationDate
}
where
HeaderDraftChanges.material <> ''
or HeaderDraftChanges.material is not null
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CHANGEMASTER",
"I_MATERIALBOMLINK",
"I_SALESORDERBOMLINK",
"STAS",
"STKO_DRAFT_V2",
"STPO",
"STPO_DRAFT_V2"
],
"ASSOCIATED":
[],
"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