C_MaintNotificationChgHistory
Maint. Notification Change History
C_MaintNotificationChgHistory is a Consumption CDS View that provides data about "Maint. Notification Change History" in SAP S/4HANA. It has 4 associations to related views.
Associations (4)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..*] | I_ChangeDocFieldNamesT | _ChangeDocFieldNamesT | $projection.DatabaseTable = _ChangeDocFieldNamesT.DatabaseTable and $projection.ChangeDocDatabaseTableField = _ChangeDocFieldNamesT.Value |
| [0..*] | I_ChangeDocChangeIndT | _ChangeDocChangeIndT | $projection.ChangeDocItemChangeType = _ChangeDocChangeIndT.Value |
| [0..*] | I_MaintObjectChgTypeCodeText | _MaintObjectChgTypeCodeText | $projection.MaintObjectChangeTypeCode = _MaintObjectChgTypeCodeText.MaintObjectChangeTypeCode |
| [0..1] | I_User | _CreatedByUser | $projection.CreatedByUser = _CreatedByUser.UserID |
Annotations (10)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | CMNOTIFCHNHIST | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| EndUserText.label | Maint. Notification Change History | view | |
| VDM.viewType | #CONSUMPTION | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view |
Fields (24)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ChangeDocObject | ChangeDocObject | ||
| KEY | ChangeDocument | ChangeDocument | ||
| KEY | DatabaseTable | DatabaseTable | ||
| KEY | ChangeDocDatabaseTableField | ChangeDocDatabaseTableField | ||
| KEY | ChangeDocItemChangeType | ChangeDocItemChangeType | Activity | |
| KEY | CreationDateTime | |||
| KEY | ChangeDocTableKey | ChangeDocTableKey | ||
| MaintObjectChangeTypeCode | MaintObjectChangeTypeCode | Edit Type | ||
| MaintObjectChangeTypeCodeText | ||||
| NotificationText | Short Description | |||
| CreatedByUser | CreatedByUser | |||
| UserDescription | _CreatedByUser | UserDescription | ||
| CreationDate | CreationDate | |||
| CreationTime | CreationTime | |||
| ChangeDocNewFieldValue | ChangeDocNewFieldValue | |||
| ChangeDocPreviousFieldValue | ChangeDocPreviousFieldValue | |||
| ChangeDocObjectClass | ChangeDocObjectClass | |||
| Class | Class | |||
| StatusName | StatusName | |||
| StatusProfile | StatusProfile | |||
| StatusIsInactive | StatusIsInactive | |||
| _ChangeDocFieldNamesT | _ChangeDocFieldNamesT | |||
| _ChangeDocChangeIndT | _ChangeDocChangeIndT | |||
| _MaintObjectChgTypeCodeText | _MaintObjectChgTypeCodeText |
@AbapCatalog.sqlViewName: 'CMNOTIFCHNHIST'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Maint. Notification Change History'
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@VDM.viewType: #CONSUMPTION
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
usageType.serviceQuality: #D,
usageType.sizeCategory: #XL,
usageType.dataClass: #MIXED
}
@UI: {
presentationVariant: {
requestAtLeast: [ 'DatabaseTable',
'ChangeDocDatabaseTableField',
'CreationDateTime',
'ChangeDocPreviousFieldValue',
'ChangeDocNewFieldValue',
'StatusName',
'StatusIsInactive'
]
}
}
define view C_MaintNotificationChgHistory
as select distinct from I_MaintNotificationChgHistory
association [0..*] to I_ChangeDocFieldNamesT as _ChangeDocFieldNamesT on $projection.DatabaseTable = _ChangeDocFieldNamesT.DatabaseTable
and $projection.ChangeDocDatabaseTableField = _ChangeDocFieldNamesT.Value
association [0..*] to I_ChangeDocChangeIndT as _ChangeDocChangeIndT on $projection.ChangeDocItemChangeType = _ChangeDocChangeIndT.Value
association [0..*] to I_MaintObjectChgTypeCodeText as _MaintObjectChgTypeCodeText on $projection.MaintObjectChangeTypeCode = _MaintObjectChgTypeCodeText.MaintObjectChangeTypeCode
association [0..1] to I_User as _CreatedByUser on $projection.CreatedByUser = _CreatedByUser.UserID
{
@UI.hidden: true
key ChangeDocObject,
@UI.hidden: true
key ChangeDocument,
@UI.hidden: true
key DatabaseTable,
@ObjectModel.text.association: '_ChangeDocFieldNamesT'
@UI.textArrangement: #TEXT_ONLY
key ChangeDocDatabaseTableField,
@EndUserText.quickInfo: 'Activity'
@EndUserText.label: 'Activity'
@ObjectModel.text.association: '_ChangeDocChangeIndT'
@UI.textArrangement: #TEXT_ONLY
key ChangeDocItemChangeType,
@EndUserText: {
label: 'Edited On',
quickInfo: 'Edited On'
}
key cast (dats_tims_to_tstmp( CreationDate, CreationTime, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL') as tzntstmps preserving type ) as CreationDateTime,
@UI.hidden: true
key ChangeDocTableKey,
@ObjectModel.text.element: ['MaintObjectChangeTypeCodeText']
@UI: {
lineItem: { position :10 , importance: #HIGH },
identification:{ position: 10, importance: #HIGH},
textArrangement: #TEXT_ONLY
}
@EndUserText.label: 'Edit Type'
MaintObjectChangeTypeCode,
@EndUserText: { label: 'Edit Type Text',
quickInfo: 'Edit Type Text'
}
_MaintObjectChgTypeCodeText[1:Language = $session.system_language ].MaintObjectChangeTypeCodeText as MaintObjectChangeTypeCodeText,
@UI: {
lineItem: { position :20 , importance: #HIGH },
identification:{ position: 20, importance: #HIGH}
}
@ObjectModel.filter.enabled: true
@ObjectModel.sort.enabled: true
@ObjectModel.virtualElement
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EAM_NOTIF_HISTORY_DESCR'
@Semantics.text: true
@EndUserText.label: 'Short Description'
cast ( '' as abap.char(200)) as NotificationText,
@EndUserText: {
label: 'Edited By',
quickInfo: 'Edited By'
}
@UI.textArrangement: #TEXT_ONLY
@ObjectModel.text.element: ['UserDescription']
@UI.lineItem: [{ position: 40, importance: #MEDIUM }] ///type: #AS_CONTACT, value: '_CreatedByUserCard', label: 'Contact Information (Edited By)' }]
CreatedByUser,
@EndUserText: {
label: 'Edited By Name',
quickInfo: 'Edited By Name'
}
_CreatedByUser.UserDescription as UserDescription,
@UI.hidden: true
CreationDate,
@UI.hidden: true
CreationTime,
@EndUserText: {
label: 'New Value',
quickInfo: 'New Value'
}
ChangeDocNewFieldValue,
@EndUserText: {
label: 'Old Value',
quickInfo: 'Old Value'
}
ChangeDocPreviousFieldValue,
@UI.hidden: true
ChangeDocObjectClass,
@UI.hidden: true
Class,
@UI.hidden: true
StatusName,
@UI.hidden: true
StatusProfile,
@UI.hidden: true
StatusIsInactive,
// @Consumption.filter.hidden: true
// _CreatedByUserCard,
@Consumption.filter.hidden: true
_ChangeDocFieldNamesT,
@Consumption.filter.hidden: true
_ChangeDocChangeIndT,
@Consumption.filter.hidden: true
_MaintObjectChgTypeCodeText
}
where
ChangeDocObject <> ''
and ChangeDocument <> ''
and DatabaseTable <> ''
and ChangeDocDatabaseTableField <> ''
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_MAINTNOTIFICATIONCHGHISTORY",
"I_MAINTOBJECTCHGTYPECODETEXT",
"I_USER"
],
"ASSOCIATED":
[
"I_CHANGEDOCCHANGEINDT",
"I_CHANGEDOCFIELDNAMEST",
"I_MAINTOBJECTCHGTYPECODETEXT",
"I_USER"
],
"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