C_ChangeRecordChildTP

DDL: C_CHANGERECORDCHILDTP SQL: CCHGRECDCHL Type: view CONSUMPTION Package: VDM_PLMB_CR

Change Record Child Link

C_ChangeRecordChildTP is a Consumption CDS View that provides data about "Change Record Child Link" in SAP S/4HANA. It reads from 1 data source (I_ChgRecdChildTP) and exposes 31 fields with key field ChangeRecordHierUUID. It has 2 associations to related views. Part of development package VDM_PLMB_CR.

Data Sources (1)

SourceAliasJoin Type
I_ChgRecdChildTP Child from

Associations (2)

CardinalityTargetAliasCondition
[1..1] C_ChangeRecordObjPg _ChangeRecordObjPg $projection.ParentChangeRecordUUID = _ChangeRecordObjPg.ChangeRecordUUID
[1..1] C_ChangeRecordObjPg _ChangeRecord $projection.ChangeRecordUUID = _ChangeRecord.ChangeRecordUUID

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName CCHGRECDCHL view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
VDM.viewType #CONSUMPTION view
EndUserText.label Change Record Child Link view
ObjectModel.transactionalProcessingDelegated true view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.sizeCategory #XXL view
ClientHandling.algorithm #SESSION_VARIABLE view
Metadata.allowExtensions true view

Fields (31)

KeyFieldSource TableSource FieldDescription
KEY ChangeRecordHierUUID I_ChgRecdChildTP ChangeRecordHierUUID
ChangeRecordUUID I_ChgRecdChildTP ChangeRecordUUID
ParentChangeRecordUUID I_ChgRecdChildTP ParentChangeRecordUUID
ChangeRecord _ChangeRecord ChangeRecord
ChgRecordDescriptionText _ChangeRecord ChgRecordDescriptionText
ChangeRecordType _ChangeRecord ChangeRecordType
ChangeRecordTypeDesc
ChangeRecordStatus _ChangeRecord ChangeRecordStatus
ChangeRecordStatusDescription _ChangeRecord ChangeRecordStatusDescription
Partner _ChangeRecord Partner
PersonFullName
ChangeNumber _ChangeRecord ChangeNumber
ChangeNumberDescription
AccessControlContext _ChangeRecord AccessControlContext
LogAccMContextDescription
ChangeRecordDetailDescription _ChangeRecord ChangeRecordDetailDescription
ChgRecdDigitalSignatureStatus _ChangeRecord ChgRecdDigitalSignatureStatus
ChgRecdDigSignStatusTxt _ChangeRecord ChgRecdDigSignStatusTxt
ChgRecordLastChgByUserName _ChangeRecord LastChangedByUser
LastChangedByUserFullName _ChangeRecord LastChangedByUserFullName
CreationDateTime _ChangeRecord CreationDateTime
CreationDate
ChgRecdExpectedCompletionDate _ChangeRecord ChgRecdExpectedCompletionDate
ChgRecordCreatedByUserName I_ChgRecdChildTP ChgRecordCreatedByUserName
CreatedByUserFullName
LastChangeDateTime _ChangeRecord LastChangeDateTime
LastChangeDate
_ChangeRecord _ChangeRecord
_ChangeRecordContactPerson _ChangeRecord _ChangeRecordContactPerson
_UserStatusVH _ChangeRecord _UserStatusVH
_ChangeRecordObjPg _ChangeRecordObjPg
@AbapCatalog.sqlViewName: 'CCHGRECDCHL'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@VDM.viewType: #CONSUMPTION
@EndUserText.label: 'Change Record Child Link'
@ObjectModel: {
   semanticKey: ['ChangeRecordHierUUID'],
   transactionalProcessingDelegated: true
}
@ObjectModel.usageType: { serviceQuality: #X,
                          dataClass: #MIXED,
                          sizeCategory: #XXL}
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.allowExtensions: true

@Hierarchy.parentChild: [{ name: 'Recursion', recurseBy: '_Recursion' }]

define view C_ChangeRecordChildTP
  as select from I_ChgRecdChildTP as Child
  association [1..1] to C_ChangeRecordObjPg as _ChangeRecordObjPg    on $projection.ParentChangeRecordUUID = _ChangeRecordObjPg.ChangeRecordUUID
  association [1..1] to C_ChangeRecordObjPg as _ChangeRecord         on $projection.ChangeRecordUUID = _ChangeRecord.ChangeRecordUUID

{
  key Child.ChangeRecordHierUUID,
      Child.ChangeRecordUUID,
      Child.ParentChangeRecordUUID,
    
      @ObjectModel.readOnly: true
      _ChangeRecord.ChangeRecord,
      _ChangeRecord.ChgRecordDescriptionText,
     
      @ObjectModel.text.element: ['ChangeRecordTypeDesc']
      _ChangeRecord.ChangeRecordType,
      _ChangeRecord._ChangeRecordTypeVH.ChangeRecordTypeDesc as ChangeRecordTypeDesc,
     
      @ObjectModel.text.element: ['ChangeRecordStatusDescription']
      _ChangeRecord.ChangeRecordStatus as ChangeRecordStatus,
      _ChangeRecord.ChangeRecordStatusDescription as ChangeRecordStatusDescription,
     
      @ObjectModel.text.element: ['PersonFullName']
      _ChangeRecord.Partner as Partner,
      _ChangeRecord._ChangeRecordContactPerson.PersonFullName as PersonFullName,
     
      @ObjectModel.text.element: ['ChangeNumberDescription']
      _ChangeRecord.ChangeNumber as ChangeNumber,
      _ChangeRecord._ChangeMaster.ChangeNumberDescription as ChangeNumberDescription,
     
      @ObjectModel.text.element: ['LogAccMContextDescription']
      _ChangeRecord.AccessControlContext as AccessControlContext,
      _ChangeRecord._AccVH.LogAccMContextDescription as LogAccMContextDescription,
     
      _ChangeRecord.ChangeRecordDetailDescription,
      
      @ObjectModel.text.element: ['ChgRecdDigSignStatusTxt']
      _ChangeRecord.ChgRecdDigitalSignatureStatus as ChgRecdDigitalSignatureStatus,
      _ChangeRecord.ChgRecdDigSignStatusTxt as ChgRecdDigSignStatusTxt,
      
      @ObjectModel.text.element: ['LastChangedByUserFullName']
      _ChangeRecord.LastChangedByUser as ChgRecordLastChgByUserName,
      _ChangeRecord.LastChangedByUserFullName as LastChangedByUserFullName,
   
      _ChangeRecord.CreationDateTime         as CreationDateTime,
      @ObjectModel.virtualElement : true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CREATIONDATE_CONVERT'
      @ObjectModel.filter.transformedBy: 'ABAP:CL_CR_CREATIONDATE_CONVERT'
      @ObjectModel.sort.transformedBy: 'ABAP:CL_CR_CREATIONDATE_CONVERT'
      @ObjectModel.readOnly: true
      @Consumption.filter.selectionType: #INTERVAL
      cast( '00000000' as /plmb/created_on ) as CreationDate,
    
      _ChangeRecord.ChgRecdExpectedCompletionDate,
    
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      @ObjectModel.text.element: [ 'CreatedByUserFullName']
      Child.ChgRecordCreatedByUserName,
      @ObjectModel.virtualElement : true
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CREATEDBY_NAME'
      cast( '                                                                                ' as ad_namtext preserving type )  as CreatedByUserFullName,
   //   Child.ChgRecordCreatedDateTime,

   //   Child.ChgRecordLastChgByUserName,

      //Child.ChgRecordLastChgDateTime as LastChangeDateTime,

      _ChangeRecord.LastChangeDateTime,
       @ObjectModel.virtualElement : true
       @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CR_CHANGEDATE_CONVERT'
       @ObjectModel.filter.transformedBy: 'ABAP:CL_CR_CHANGEDATE_CONVERT'
       @ObjectModel.sort.transformedBy: 'ABAP:CL_CR_CHANGEDATE_CONVERT'
       @ObjectModel.readOnly: true
       @Consumption.filter.selectionType: #INTERVAL      
      cast( '00000000' as /plmb/changed_on ) as LastChangeDate,
      /* Associations */
      _ChangeRecord,
      _ChangeRecord._ChangeRecordContactPerson,
      _ChangeRecord._UserStatusVH,
      @ObjectModel.association.type: [ #TO_COMPOSITION_ROOT,#TO_COMPOSITION_PARENT ]
      _ChangeRecordObjPg
      
}

//@AbapCatalog.sqlViewName: 'CCHGRECDCHL'

//@AbapCatalog.compiler.compareFilter: true

//@AbapCatalog.preserveKey: true

//@AccessControl.authorizationCheck: #CHECK

//@Metadata.allowExtensions: true

//@ClientHandling.algorithm: #SESSION_VARIABLE

//@EndUserText.label: 'Change Record Hierarchy Root'

//@VDM.viewType:#CONSUMPTION

//@ObjectModel: {

//    usageType: {

//      dataClass:       #MIXED,

//      serviceQuality:  #C,

//      sizeCategory:    #XL

//    },

//    semanticKey: ['ChangeRecord']

//}

////@Consumption.filter.selectionType: #HIERARCHY_NODE

//@AccessControl.personalData.blocking: #NOT_REQUIRED

//@OData.hierarchy.recursiveHierarchy: [{nodeElement: 'ChangeRecord',

//                                       drillStateElement: 'DrillState',

//                                       parentNodeElement: 'HierarchyParentNode',

//                                       distanceFromRootElement: 'HierarchyLevelOrig',

////                                       elementWithHierarchy: 'UniversalHierNodeID'} ]

//                                       elementWithHierarchy: 'HierarchyRank'

//                                       } ]

//@UI.presentationVariant: [ { requestAtLeast: [ 'UniversalHierNodeID' , 'HierarchyLevelOrig', 'ChangeRecordUUID' ] } ]

//

//define view C_ChangeRecordChildTP

//  as select from I_CHGRECCHLDHEIRNODE 

//  association [1..1] to C_ChangeRecordObjPg     as _ChangeRecord               on $projection.ChangeRecordUUID = _ChangeRecord.ChangeRecordUUID

//  association [0..*] to C_ChangeRecordObjPgMatl as _ChangeRecordReferenceMatTP on $projection.ChangeRecordUUID = _ChangeRecordReferenceMatTP.ChangeRecordUUID

//  association [1..1] to C_ChgRecdChildRootHierNode as _ChgRecdChildRootHierNode    on $projection.ChangeRecordUUID = ChgRecdChildRootHierNode.ChangeRecordUUID

//{

//      //      @ObjectModel.text.element      : [ 'ChgRecordDescriptionText']

//  key ChangeRecordChildNode                                   as ChangeRecord,

//      //  key ChangeRecord,

//

//      ChangeRecordUUID,

//

//      ParentChangeRecordUUID,

//

//      @ObjectModel.text.element      : [ 'LastChangedByUserFullName']

//      ChgRecordLastChgByUserName                              as LastChangedByUser,

//      ChildLastChangedByUserFullName                          as LastChangedByUserFullName,

//      HierarchyRank,

//      HierarchyParentNode,

//      //      HierarchyIsOrphan,

//      HierarchyParentRank,

//      HierarchyTreeSize,

//      //      HierarchyIsCycle,

//      case

//       when HierarchyTreeSize = 1 then cast( 'leaf' as char10 )

//      else

//      cast( 'expanded' as char10 )

//      end                                                     as DrillState,

//      HierarchyLevelOrig,

//      _ChangeRecord.ChgRecordDescriptionText,

//

//      @ObjectModel.text.element      : [ 'ChangeRecordStatusDescription']

//      _ChangeRecord.ChangeRecordStatus,

//      @ObjectModel.text.element      : [ 'ChangeRecordTypeDesc']

//      _ChangeRecord.ChangeRecordType,

//      //_ChangeRecord.ChangeRecordDetailDescription,

//      @ObjectModel.text.element      : [ 'ChangeNumberDescription']

//      _ChangeRecord.ChangeNumber,

//

//      @ObjectModel.text.element      : [ 'PersonFullName']

//      _ChangeRecord.Partner,

//

//      _ChangeRecord.CreatedByUser,

//      _ChangeRecord.CreatedByUserFullName,

//      _ChangeRecord.ChgRecdExpectedCompletionDate,

//      @ObjectModel.text.element      : [ 'ChgRecdDigSignStatusTxt']

//      _ChangeRecord.ChgRecdDigitalSignatureStatus,

//      _ChangeRecord.ChgRecdDigSignStatusTxt                   as ChgRecdDigSignStatusTxt,

//      @ObjectModel.text.element      : [ 'LogAccMContextDescription']

//      _ChangeRecord.AccessControlContext,

//      @ObjectModel.text.element      : [ 'ChangeRecordLifecycleStatusTxt']

//      _ChangeRecord.ChangeRecordLifecycleStatus,

//      _ChangeRecord.ChangeRecordLifecycleStatusTxt            as ChangeRecordLifecycleStatusTxt,

//      _ChangeRecord.ChangeRecordStatusDescription             as ChangeRecordStatusDescription,

//      _ChangeRecord._ChangeRecordTypeVH.ChangeRecordTypeDesc  as ChangeRecordTypeDesc,

//      _ChangeRecord._ChangeRecordContactPerson.PersonFullName as PersonFullName,

//      _ChangeRecord._ChangeMaster.ChangeNumberDescription     as ChangeNumberDescription,

//      _ChangeRecord._AccVH.LogAccMContextDescription          as LogAccMContextDescription,

//      _ChangeRecord.CreationDate,

//      _ChangeRecord.CreationDateTime,

////      _ChangeRecord.LastChangeDate,

////      _ChangeRecord.LastChangeDateTime,

//      _ChangeRecordReferenceMatTP

////      @ObjectModel.association.type: [#TO_COMPOSITION_PARENT, #TO_COMPOSITION_ROOT]

////      _ChangeRecord

//

//

//

//}

//union select from I_ChangeRecordRootVH as Root

//association [1..1] to I_ChgRecdChildHierNodeRltn as _Parent                     on Root.ChangeRecord = _Parent.ChangeRecord

//association [1..1] to C_ChangeRecordObjPg        as _ChangeRecord               on $projection.ChangeRecordUUID = _ChangeRecord.ChangeRecordUUID

//association [0..*] to C_ChangeRecordObjPgMatl    as _ChangeRecordReferenceMatTP on $projection.ChangeRecordUUID = _ChangeRecordReferenceMatTP.ChangeRecordUUID

//{

//

//         //         @ObjectModel.text.element      : [ 'ChgRecordDescriptionText']

//  key    ChangeRecord,

//

//         ChangeRecordUUID,

//

//         _Parent.ParentChangeRecordUUID,

//

//         @ObjectModel.text.element      : [ 'LastChangedByUserFullName']

//         _Parent.LastChangedByUser                               as LastChangedByUser,

//         _Parent.LastChangedByUserFullName                       as LastChangedByUserFullName,

//

//         cast( 0 as abap.int8 )                                  as HierarchyRank,

//         cast( ' ' as abap.sstr(1333) )                          as HierarchyParentNode,

//         //      ' ' as HierarchyIsOrphan,

//         cast( 3 as abap.int8 )                                  as HierarchyParentRank,

//         cast( 0 as abap.int8 )                                  as HierarchyTreeSize,

//         //      ' ' as HierarchyIsCycle,

//         cast( 'expanded' as char10 )                            as DrillState,

//         cast( 0 as hum_hierarchy_level )                        as HierarchyLevelOrig,

//         _ChangeRecord.ChgRecordDescriptionText,

//

//         @ObjectModel.text.element      : [ 'ChangeRecordStatusDescription']

//         _ChangeRecord.ChangeRecordStatus,

//         @ObjectModel.text.element      : [ 'ChangeRecordTypeDesc']

//         _ChangeRecord.ChangeRecordType,

//         //_ChangeRecord.ChangeRecordDetailDescription,

//         @ObjectModel.text.element      : [ 'ChangeNumberDescription']

//         _ChangeRecord.ChangeNumber,

//

//         @ObjectModel.text.element      : [ 'PersonFullName']

//         _ChangeRecord.Partner,

//

//         _ChangeRecord.CreatedByUser,

//         _ChangeRecord.CreatedByUserFullName,

//         _ChangeRecord.ChgRecdExpectedCompletionDate,

//         @ObjectModel.text.element      : [ 'ChgRecdDigSignStatusTxt']

//         _ChangeRecord.ChgRecdDigitalSignatureStatus,

//         _ChangeRecord.ChgRecdDigSignStatusTxt                   as ChgRecdDigSignStatusTxt,

//         @ObjectModel.text.element      : [ 'LogAccMContextDescription']

//         _ChangeRecord.AccessControlContext,

//         @ObjectModel.text.element      : [ 'ChangeRecordLifecycleStatusTxt']

//         _ChangeRecord.ChangeRecordLifecycleStatus,

//         _ChangeRecord.ChangeRecordLifecycleStatusTxt            as ChangeRecordLifecycleStatusTxt,

//         _ChangeRecord.ChangeRecordStatusDescription             as ChangeRecordStatusDescription,

//         _ChangeRecord._ChangeRecordTypeVH.ChangeRecordTypeDesc  as ChangeRecordTypeDesc,

//         _ChangeRecord._ChangeRecordContactPerson.PersonFullName as PersonFullName,

//         _ChangeRecord._ChangeMaster.ChangeNumberDescription     as ChangeNumberDescription,

//         _ChangeRecord._AccVH.LogAccMContextDescription          as LogAccMContextDescription,

//         _ChangeRecord.CreationDate,

//         _ChangeRecord.CreationDateTime,

////         _ChangeRecord.LastChangeDate,

////         _ChangeRecord.LastChangeDateTime,

//         _ChangeRecordReferenceMatTP

////         @ObjectModel.association.type: [#TO_COMPOSITION_PARENT, #TO_COMPOSITION_ROOT]

////         _ChangeRecord

//

//

//

//}