@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
//
//
//
//}