I_ProductChangeDocument
Product Change Document
I_ProductChangeDocument is a Composite CDS View that provides data about "Product Change Document" in SAP S/4HANA. It reads from 3 data sources (I_ChangeDocument, I_ChangeDocumentItem, I_Product) and exposes 25 fields with key fields Product, ChangeDocObjectClass, ChangeDocument, DatabaseTable, ChangeDocTableKey.
Data Sources (3)
| Source | Alias | Join Type |
|---|---|---|
| I_ChangeDocument | Header | inner |
| I_ChangeDocumentItem | Item | inner |
| I_Product | Product | from |
Annotations (8)
| Name | Value | Level | Field |
|---|---|---|---|
| AccessControl.authorizationCheck | #CHECK | view | |
| EndUserText.label | Product Change Document | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| Search.searchable | true | view | |
| VDM.viewType | #COMPOSITE | view |
Fields (25)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | Product | |||
| KEY | ChangeDocObjectClass | |||
| KEY | ChangeDocument | I_ChangeDocument | ChangeDocument | |
| KEY | DatabaseTable | I_ChangeDocumentItem | DatabaseTable | |
| KEY | ChangeDocTableKey | I_ChangeDocumentItem | ChangeDocTableKey | |
| KEY | ChangeDocDatabaseTableField | I_ChangeDocumentItem | ChangeDocDatabaseTableField | |
| KEY | ChangeDocItemChangeType | I_ChangeDocumentItem | ChangeDocItemChangeType | |
| ProductType | I_Product | ProductType | ||
| CrossPlantStatus | I_Product | CrossPlantStatus | ||
| CreatedByUser | I_ChangeDocument | CreatedByUser | ||
| CreationDate | I_ChangeDocument | CreationDate | ||
| CreationTime | I_ChangeDocument | CreationTime | ||
| LastChangeDate | I_Product | LastChangeDate | ||
| LastChangedByUser | I_Product | LastChangedByUser | ||
| ChangeTransactionCode | I_ChangeDocument | ChangeTransactionCode | ||
| IsMarkedForDeletion | I_Product | IsMarkedForDeletion | ||
| ChangeDocPreviousFieldValue | I_ChangeDocumentItem | ChangeDocPreviousFieldValue | ||
| ChangeDocNewFieldValue | I_ChangeDocumentItem | ChangeDocNewFieldValue | ||
| ProductGroup | I_Product | ProductGroup | ||
| AuthorizationGroup | I_Product | AuthorizationGroup | ||
| _ProductType | I_Product | _ProductType | ||
| _ProductStatus | I_Product | _ProductStatus | ||
| _LastChangedByUser | I_Product | _LastChangedByUser | ||
| _LastChangedByUserContactCard | I_Product | _LastChangedByUserContactCard | ||
| _ProductGroup_2 | I_Product | _ProductGroup_2 |
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Product Change Document'
@ObjectModel.usageType:{
serviceQuality: #C,
sizeCategory: #XL,
dataClass: #MIXED
}
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.supportedCapabilities: [ #SQL_DATA_SOURCE,
#CDS_MODELING_DATA_SOURCE,
#CDS_MODELING_ASSOCIATION_TARGET,
#SEARCHABLE_ENTITY
]
@AccessControl.privilegedAssociations: [ '_LastChangedByUserContactCard',
'_LastChangedByUser' ]
@Search.searchable: true
@VDM.viewType: #COMPOSITE
define view entity I_ProductChangeDocument
as select from I_Product as Product
inner join I_ChangeDocument as Header on Product.Product = Header.ChangeDocObject
and Header.ChangeDocObjectClass = 'MATERIAL'
inner join I_ChangeDocumentItem as Item on Header.ChangeDocObjectClass = Item.ChangeDocObjectClass
and Header.ChangeDocObject = Item.ChangeDocObject
and Header.ChangeDocument = Item.ChangeDocument
and Item.DatabaseTable = 'MARA'
{
@Search.defaultSearchElement: true
@Search.fuzzinessThreshold: 0.8
@Search.ranking: #HIGH
key cast( Product.Product as productnumber preserving type ) as Product,
key cast(Header.ChangeDocObjectClass as cdobjectcl preserving type) as ChangeDocObjectClass,
key Header.ChangeDocument,
key Item.DatabaseTable,
key Item.ChangeDocTableKey,
key Item.ChangeDocDatabaseTableField,
key Item.ChangeDocItemChangeType,
@ObjectModel.foreignKey.association: '_ProductType'
Product.ProductType,
@ObjectModel.foreignKey.association: '_ProductStatus'
Product.CrossPlantStatus,
Header.CreatedByUser,
@Semantics.systemDate.createdAt: true
Header.CreationDate,
@Semantics.systemTime.createdAt: true
Header.CreationTime,
@Semantics.systemDate.lastChangedAt: true
Product.LastChangeDate,
@ObjectModel.foreignKey.association: '_LastChangedByUserContactCard'
Product.LastChangedByUser,
Header.ChangeTransactionCode,
Product.IsMarkedForDeletion,
Item.ChangeDocPreviousFieldValue,
Item.ChangeDocNewFieldValue,
@ObjectModel.foreignKey.association: '_ProductGroup_2'
Product.ProductGroup,
Product.AuthorizationGroup,
Product._ProductType,
Product._ProductStatus,
Product._LastChangedByUser,
Product._LastChangedByUserContactCard,
Product._ProductGroup_2
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CHANGEDOCUMENT",
"I_CHANGEDOCUMENTITEM",
"I_PRODUCT"
],
"ASSOCIATED":
[
"I_PRODUCTGROUP_2",
"I_PRODUCTSTATUS",
"I_PRODUCTTYPE",
"I_USER",
"I_USERCONTACTCARD"
],
"BASE":
[
"I_PRODUCT"
],
"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