@AbapCatalog.sqlViewName: 'CSDRAFT_LC_ADMIN'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Draft Lifecycle Administrative Data'
@VDM.viewType: #CONSUMPTION
@ObjectModel.compositionRoot: true
@Search.searchable: true
@UI.headerInfo: {
typeName: 'Draft Administrative Data',
typeNamePlural: 'Draft Administration',
title: {
type: #STANDARD,
label: 'Draft Administration',
value: 'DraftEntityType'
}
}
@UI.presentationVariant.sortOrder: [ { by: 'NumberOfDrafts', direction: #DESC} ]
define view C_Draftlifecycleadmindata
as select distinct from I_Draftlifecycleconfiguration as Document
left outer join C_DraftAdministrativeData as _Sdraft_Count on _Sdraft_Count.DraftEntityType = Document.DraftEntityType
association [0..*] to C_DraftAdministrativeData as _Sdraft_Entry on _Sdraft_Entry.DraftEntityType = $projection.DraftEntityType
{
@Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #MEDIUM
}
@UI.identification: {
position: 0,
label: 'Business Object / Draft Type'
}
@UI.lineItem: [{
position: 0,
importance: #HIGH,
label: 'Business Object / Draft Type'
}
// , {
// position: 1,
// label: 'Analyze Log Entries',
// type: #FOR_INTENT_BASED_NAVIGATION,
// semanticObjectAction: 'showList' -- Action
// }
]
// @Consumption.semanticObject: 'ApplicationLog' -- Semantic Object
@UI.facet: [{
id: 'GeneralInfo',
purpose: #STANDARD,
type: #COLLECTION,
label: 'General Information',
position: 10
},
{ id: 'GeneralData',
label: 'General Information',
parentId: 'GeneralInfo',
type: #IDENTIFICATION_REFERENCE,
position: 10
},
{id: 'Expiry',
label: 'Expiry Configuration',
parentId: 'GeneralInfo',
type: #FIELDGROUP_REFERENCE,
targetQualifier: 'Expiry',
position: 20
},
{ id: 'toSdraftEntry',
purpose: #STANDARD,
type: #LINEITEM_REFERENCE,
targetElement: '_Sdraft_Entry',
label: 'Existing Drafts',
position: 20 }
]
key Document.DraftEntityType,
/* @Search: {
defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #MEDIUM
}*/
@UI.identification: {
position: 5,
label: 'Description'
}
@UI.lineItem: {
position: 5,
importance: #HIGH,
label: 'Description'
}
Document.DraftTypeDescription,
@UI.fieldGroup: [ { qualifier: 'Expiry',
position: 10,
label: 'Enqueue Expiry Notification (min)'
} ]
@UI.lineItem: {
position: 10,
importance: #MEDIUM,
label: 'Enqueue Expiry Notification (min)',
exclude: true
}
@EndUserText.label: 'Enqueue Expiry Notification (min)'
Document.EnqueueExpiryNotification,
@UI.fieldGroup: [ { qualifier: 'Expiry',
position: 10,
label: 'Relative Enqueue Expiry (min)'
} ]
@UI.lineItem: {
position: 20,
importance: #MEDIUM,
label: 'Relative Enqueue Expiry (min)',
exclude: true
}
@EndUserText.label: 'Relative Enqueue Expiry (min)'
Document.RelativeEnqueueExpiry,
@UI.fieldGroup: [ { qualifier: 'Expiry',
position: 10,
label: 'Processing Expiry Notification (min)'
} ]
@UI.lineItem: {
position: 30,
importance: #MEDIUM,
label: 'Processing Expiry Notification (min)',
exclude: true
}
@EndUserText.label: 'Processing Expiry Notification (min)'
Document.ProcessingExpiryNotification,
@UI.fieldGroup: [ { qualifier: 'Expiry',
position: 10
} ]
@UI.lineItem: {
position: 40,
importance: #MEDIUM,
label: 'Relative Processing Expiry (min)',
exclude: true
}
@EndUserText.label: 'Relative Processing Expiry (min)'
Document.RelativeProcessingExpiry,
// @UI.fieldGroup: [ { qualifier: 'Expiry',
// position: 10,
// label: 'Not Kept Expiry Notification (min)'
// } ]
@UI.lineItem: {
position: 50,
importance: #MEDIUM,
label: 'Not Kept Expiry Notification (min)',
exclude: true
}
@EndUserText.label: 'Not Kept Expiry Notification (min)'
Document.NotKeptNotification,
// @UI.fieldGroup: [ { qualifier: 'Expiry',
// position: 10,
// label: 'Not Kept Expiry (min)'
// } ]
@UI.lineItem: {
position: 60,
importance: #MEDIUM,
label: 'Not Kept Expiry (min)',
exclude: true
}
@EndUserText.label: 'Not Kept Expiry (min)'
Document.NotKeptExpiry,
@UI.identification: {
position: 6,
label: 'Number Of Drafts'
}
@UI.lineItem: {
position: 6,
importance: #HIGH,
label: 'Number Of Drafts',
exclude: false
}
@ObjectModel.readOnly: true
count( distinct _Sdraft_Count.DraftUUID ) as NumberOfDrafts,
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_Sdraft_Entry
}
group by
Document.DraftEntityType,
Document.DraftTypeDescription,
Document.EnqueueExpiryNotification,
Document.RelativeEnqueueExpiry,
Document.ProcessingExpiryNotification,
Document.RelativeProcessingExpiry,
Document.NotKeptNotification,
Document.NotKeptExpiry
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_DRAFTADMINISTRATIVEDATA",
"I_DRAFTLIFECYCLECONFIGURATION",
"T000"
],
"ASSOCIATED":
[
"C_DRAFTADMINISTRATIVEDATA"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/