I_WBSElementChangeDocuments
Change document for WBS Element data
I_WBSElementChangeDocuments is a Basic CDS View (Fact) that provides data about "Change document for WBS Element data" in SAP S/4HANA. It reads from 3 data sources (I_ChangeDocument, I_ChangeDocumentItem, I_WBSElementData_2) and exposes 39 fields with key fields ChangeDocObject, ChangeDocObjectClass, ChangeDocument, DatabaseTable, ChangeDocTableKey. It has 3 associations to related views.
Data Sources (3)
| Source | Alias | Join Type |
|---|---|---|
| I_ChangeDocument | cdhdr | inner |
| I_ChangeDocumentItem | cdpos | inner |
| I_WBSElementData_2 | prps | from |
Associations (3)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_ProjectResponsiblePerson | _ResponsiblePerson | $projection.ResponsiblePerson = _ResponsiblePerson.ResponsiblePerson |
| [0..1] | I_ProjectApplicant | _ProjectApplicant | $projection.ApplicantCode = _ProjectApplicant.ApplicantCode |
| [1..1] | I_ProjectData_2 | _Project | $projection.ChangeDocObject = _Project.ProjectInternalID |
Annotations (15)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IWBSCHGDOC | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| EndUserText.label | Change document for WBS Element data | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| VDM.viewType | #BASIC | view | |
| VDM.lifecycle.contract.type | #PUBLIC_LOCAL_API | view | |
| ObjectModel.compositionRoot | true | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| Analytics.dataCategory | #FACT | view | |
| Analytics.dataExtraction.enabled | true | view | |
| Metadata.ignorePropagatedAnnotations | true | view |
Fields (39)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ChangeDocObject | I_ChangeDocument | ChangeDocObject | |
| KEY | ChangeDocObjectClass | I_ChangeDocument | ChangeDocObjectClass | |
| KEY | ChangeDocument | I_ChangeDocumentItem | ChangeDocument | |
| KEY | DatabaseTable | I_ChangeDocumentItem | DatabaseTable | |
| KEY | ChangeDocTableKey | I_ChangeDocumentItem | ChangeDocTableKey | |
| KEY | ChangeDocDatabaseTableField | I_ChangeDocumentItem | ChangeDocDatabaseTableField | |
| KEY | ChangeDocItemChangeType | I_ChangeDocumentItem | ChangeDocItemChangeType | |
| KEY | WBSElementInternalID | I_WBSElementData_2 | WBSElementInternalID | |
| WBSElementExternalID | I_WBSElementData_2 | WBSElementExternalID | ||
| ChangeDocGlobalFieldName | FieldmapProj | GFNName | ||
| WBSDescription | I_WBSElementData_2 | WBSDescription | ||
| ChangeDocPreviousUnit | I_ChangeDocumentItem | ChangeDocPreviousUnit | ||
| ChangeDocNewUnit | I_ChangeDocumentItem | ChangeDocNewUnit | ||
| ChangeDocPreviousCurrency | I_ChangeDocumentItem | ChangeDocPreviousCurrency | ||
| ChangeDocNewCurrency | I_ChangeDocumentItem | ChangeDocNewCurrency | ||
| ChangeDocumentOldFieldValue | I_ChangeDocumentItem | ChangeDocPreviousFieldValue | Old Value | |
| ChangeDocumentNewFieldValue | I_ChangeDocumentItem | ChangeDocNewFieldValue | New Value | |
| LastChangedByUser | I_ChangeDocument | CreatedByUser | ||
| LastChangeDate | I_ChangeDocument | CreationDate | ||
| LastChangeTime | I_ChangeDocument | CreationTime | ||
| ControllingArea | I_WBSElementData_2 | ControllingArea | ||
| ProfitCenter | I_WBSElementData_2 | ProfitCenter | ||
| ResponsiblePerson | I_WBSElementData_2 | ResponsiblePerson | ||
| ApplicantCode | I_WBSElementData_2 | ApplicantCode | ||
| RespCostCenterControllingArea | I_WBSElementData_2 | RespCostCenterControllingArea | ||
| ResponsibleCostCenter | I_WBSElementData_2 | ResponsibleCostCenter | ||
| FreeDefinedAttribute01 | I_WBSElementData_2 | FreeDefinedAttribute01 | ||
| FreeDefinedAttribute02 | I_WBSElementData_2 | FreeDefinedAttribute02 | ||
| FreeDefinedAttribute03 | I_WBSElementData_2 | FreeDefinedAttribute03 | ||
| FreeDefinedAttribute04 | I_WBSElementData_2 | FreeDefinedAttribute04 | ||
| FreeDefinedIndicator1 | I_WBSElementData_2 | FreeDefinedIndicator1 | ||
| FreeDefinedIndicator2 | I_WBSElementData_2 | FreeDefinedIndicator2 | ||
| ProjectType | I_WBSElementData_2 | ProjectType | ||
| _ControllingArea | I_WBSElementData_2 | _ControllingArea | ||
| _ProfitCenter | I_WBSElementData_2 | _ProfitCenter | ||
| _ResponsibleCostCenter | I_WBSElementData_2 | _ResponsibleCostCenter | ||
| _ResponsiblePerson | _ResponsiblePerson | |||
| _ProjectApplicant | _ProjectApplicant | |||
| _Project | _Project |
@AbapCatalog: {
sqlViewName: 'IWBSCHGDOC',
compiler.compareFilter: true,
preserveKey: true
}
@AccessControl: {
authorizationCheck: #CHECK
}
@EndUserText.label: 'Change document for WBS Element data'
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM: {
viewType: #BASIC,
lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@ObjectModel: {
compositionRoot: true,
usageType: {
serviceQuality: #C,
sizeCategory : #XL,
dataClass: #TRANSACTIONAL
},
supportedCapabilities: [ #SQL_DATA_SOURCE, #EXTRACTION_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET ]
}
@Analytics: {
dataCategory: #FACT,
dataExtraction: {
enabled: true
}
}
@Metadata.ignorePropagatedAnnotations:true
define view I_WBSElementChangeDocuments
as select from I_WBSElementData_2 as prps
inner join I_ChangeDocument as cdhdr on cdhdr.ChangeDocObject = prps.ProjectInternalID
and cdhdr.ChangeDocObjectClass = 'PROJ'
inner join I_ChangeDocumentItem as cdpos on cdpos.ChangeDocObject = prps.ProjectInternalID
and cdpos.ChangeDocObjectClass = 'PROJ'
and cdpos.ChangeDocument = cdhdr.ChangeDocument
and cdpos.ChangeDocTableKey = concat(
cast(
$session.client as char3
), prps.WBSElementInternalID
)
and (
cdpos.DatabaseTable = 'PRPS'
)
left outer to one join P_ProjectFieldMappingForChgDoc( p_tabname: 'I_WBSELEMENTDATA_2' , p_viewname:'IWBSELMNTDATA2' ) as FieldmapProj on FieldmapProj.DDICName = cdpos.ChangeDocDatabaseTableField
// DPP Changes
// Person in Responsible for Project
association [0..1] to I_ProjectResponsiblePerson as _ResponsiblePerson on $projection.ResponsiblePerson = _ResponsiblePerson.ResponsiblePerson
// Project Applicant
association [0..1] to I_ProjectApplicant as _ProjectApplicant on $projection.ApplicantCode = _ProjectApplicant.ApplicantCode
// Project Data
association [1..1] to I_ProjectData_2 as _Project on $projection.ChangeDocObject = _Project.ProjectInternalID
{
key cdhdr.ChangeDocObject as ChangeDocObject,
key cdhdr.ChangeDocObjectClass as ChangeDocObjectClass,
key cdpos.ChangeDocument as ChangeDocument,
key cdpos.DatabaseTable as DatabaseTable,
key cdpos.ChangeDocTableKey as ChangeDocTableKey,
// Field Name
key cdpos.ChangeDocDatabaseTableField as ChangeDocDatabaseTableField,
// Change Indicator
key cdpos.ChangeDocItemChangeType as ChangeDocItemChangeType,
key prps.WBSElementInternalID as WBSElementInternalID,
prps.WBSElementExternalID as WBSElementExternalID,
FieldmapProj.GFNName as ChangeDocGlobalFieldName,
@Semantics.text: true
prps.WBSDescription as WBSDescription,
cdpos.ChangeDocPreviousUnit as ChangeDocPreviousUnit,
cdpos.ChangeDocNewUnit as ChangeDocNewUnit,
cdpos.ChangeDocPreviousCurrency as ChangeDocPreviousCurrency,
cdpos.ChangeDocNewCurrency as ChangeDocNewCurrency,
@EndUserText.label: 'Old Value'
cdpos.ChangeDocPreviousFieldValue as ChangeDocumentOldFieldValue,
// New Value
@EndUserText.label: 'New Value'
cdpos.ChangeDocNewFieldValue as ChangeDocumentNewFieldValue,
// Changed By
cdhdr.CreatedByUser as LastChangedByUser,
// Separate Date
// LastChangedDate needed for Smart Filter Bar
@Semantics.systemDate.createdAt: true
cdhdr.CreationDate as LastChangeDate,
// Separate Time
// LastChangeTime needed for sorting
@Semantics.systemTime.createdAt: true
cdhdr.CreationTime as LastChangeTime,
@Consumption.hidden: true
prps.ControllingArea as ControllingArea,
@Consumption.hidden: true
prps.ProfitCenter as ProfitCenter,
@Consumption.hidden: true
prps.ResponsiblePerson as ResponsiblePerson,
@Consumption.hidden: true
prps.ApplicantCode as ApplicantCode,
@Consumption.hidden: true
prps.RespCostCenterControllingArea as RespCostCenterControllingArea,
@Consumption.hidden: true
prps.ResponsibleCostCenter as ResponsibleCostCenter,
@Consumption.hidden: true
prps.FreeDefinedAttribute01 as FreeDefinedAttribute01,
@Consumption.hidden: true
prps.FreeDefinedAttribute02 as FreeDefinedAttribute02,
@Consumption.hidden: true
prps.FreeDefinedAttribute03 as FreeDefinedAttribute03,
@Consumption.hidden: true
prps.FreeDefinedAttribute04 as FreeDefinedAttribute04,
@Consumption.hidden: true
prps.FreeDefinedIndicator1 as FreeDefinedIndicator1,
@Consumption.hidden: true
prps.FreeDefinedIndicator2 as FreeDefinedIndicator2,
@Consumption.hidden: true
prps.ProjectType as ProjectType,
//Associations
@Consumption.hidden: true
prps._ControllingArea as _ControllingArea,
@Consumption.hidden: true
prps._ProfitCenter as _ProfitCenter,
@Consumption.hidden: true
prps._ResponsibleCostCenter as _ResponsibleCostCenter,
@Consumption.hidden: true
_ResponsiblePerson,
@Consumption.hidden: true
_ProjectApplicant,
@Consumption.hidden: true
_Project
}
where
cdhdr.ChangeDocObjectClass = 'PROJ'
and cdpos.ChangeDocObjectClass = 'PROJ'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CHANGEDOCUMENT",
"I_CHANGEDOCUMENTITEM",
"I_WBSELEMENTDATA_2",
"P_PROJECTFIELDMAPPINGFORCHGDOC"
],
"ASSOCIATED":
[
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_PROFITCENTER",
"I_PROJECTAPPLICANT",
"I_PROJECTDATA_2",
"I_PROJECTRESPONSIBLEPERSON"
],
"BASE":
[
"I_WBSELEMENTDATA_2"
],
"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