@AbapCatalog.sqlViewName: 'SDRAFT_ADMIN_CDS'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.type: #CLIENT_DEPENDENT
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@EndUserText.label: 'Draft Administration Data'
@AccessControl.privilegedAssociations: ['DraftAdministrativeUser']
@Search.searchable: true
define view I_DraftAdministrativeData
as select from sdraft_admin
left outer to one join usr21 as CreatedByUserDesc on CreatedByUserDesc.bname = sdraft_admin.created_by
left outer to one join usr21 as LastChangedByUserDesc on LastChangedByUserDesc.bname = sdraft_admin.last_changed_by
left outer to one join usr21 as InProcessByUserDesc on InProcessByUserDesc.bname = sdraft_admin.in_process_by
association [0..*] to I_DraftAdministrativeUser as DraftAdministrativeUser on $projection.DraftUUID = DraftAdministrativeUser.DraftUUID
and $projection.DraftEntityType = DraftAdministrativeUser.DraftEntityType
{
@UI.hidden
key sdraft_admin.draft_key as DraftUUID,
@UI.hidden
key sdraft_admin.draft_entity as DraftEntityType,
@Consumption.filter.selectionType: #INTERVAL
sdraft_admin.created_at as CreationDateTime,
@ObjectModel.text.element: [ 'CreatedByUserDescription' ]
@Search: { defaultSearchElement: true, fuzzinessThreshold: 0.8, ranking: #HIGH }
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_DraftAdministrativeUserVH', element: 'UserID' } } ]
sdraft_admin.created_by as CreatedByUser,
@Consumption.filter.selectionType: #INTERVAL
sdraft_admin.last_changed_at as LastChangeDateTime,
@ObjectModel.text.element: [ 'LastChangedByUserDescription' ]
@Search: { defaultSearchElement: true, fuzzinessThreshold: 0.8, ranking: #HIGH }
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_DraftAdministrativeUserVH', element: 'UserID' } } ]
sdraft_admin.last_changed_by as LastChangedByUser,
@UI.hidden
sdraft_admin.access_type as DraftAccessType,
@UI.hidden
sdraft_admin.in_process_since as ProcessingStartDateTime,
@UI.hidden
@ObjectModel.text.element: [ 'InProcessByUserDescription' ]
@Search: { defaultSearchElement: true, fuzzinessThreshold: 0.8, ranking: #HIGH }
sdraft_admin.in_process_by as InProcessByUser,
@UI.hidden
sdraft_admin.kept_by_user as DraftIsKeptByUser,
@UI.hidden
sdraft_admin.enqueue_since as EnqueueStartDateTime,
@UI.hidden
cast ( case $session.user
when sdraft_admin.created_by
then 'X'
else ' '
end as sdraft_created_by_me preserving type
) as DraftIsCreatedByMe,
@UI.hidden
cast ( case $session.user
when sdraft_admin.last_changed_by
then 'X'
else ' '
end as sdraft_last_changed_by_me preserving type
) as DraftIsLastChangedByMe,
@UI.hidden
cast ( case $session.user
when sdraft_admin.in_process_by
then 'X'
else ' '
end as sdraft_in_process_by_me preserving type
) as DraftIsProcessedByMe,
@UI.hidden
@Search: { defaultSearchElement: true, fuzzinessThreshold: 0.8, ranking: #HIGH }
cast ( CreatedByUserDesc.techdesc
as sdraft_created_by_desc preserving type
) as CreatedByUserDescription,
@UI.hidden
@Search: { defaultSearchElement: true, fuzzinessThreshold: 0.8, ranking: #HIGH }
cast ( LastChangedByUserDesc.techdesc
as sdraft_last_changed_by_desc preserving type
) as LastChangedByUserDescription,
@UI.hidden
@Search: { defaultSearchElement: true, fuzzinessThreshold: 0.8, ranking: #HIGH }
cast ( InProcessByUserDesc.techdesc
as sdraft_in_process_by_desc preserving type
) as InProcessByUserDescription,
DraftAdministrativeUser
}
union all
select from sdraft_admin_cc
left outer to one join usr21 as CreatedByUserDesc on CreatedByUserDesc.bname = sdraft_admin_cc.created_by
left outer to one join usr21 as LastChangedByUserDesc on LastChangedByUserDesc.bname = sdraft_admin_cc.last_changed_by
left outer to one join usr21 as InProcessByUserDesc on InProcessByUserDesc.bname = sdraft_admin_cc.in_process_by
association [0..*] to I_DraftAdministrativeUser as DraftAdministrativeUser on $projection.DraftUUID = DraftAdministrativeUser.DraftUUID
and $projection.DraftEntityType = DraftAdministrativeUser.DraftEntityType
{
key sdraft_admin_cc.draft_key as DraftUUID,
key sdraft_admin_cc.draft_entity as DraftEntityType,
sdraft_admin_cc.created_at as CreationDateTime,
sdraft_admin_cc.created_by as CreatedByUser,
sdraft_admin_cc.last_changed_at as LastChangeDateTime,
sdraft_admin_cc.last_changed_by as LastChangedByUser,
sdraft_admin_cc.access_type as DraftAccessType,
sdraft_admin_cc.in_process_since as ProcessingStartDateTime,
sdraft_admin_cc.in_process_by as InProcessByUser,
sdraft_admin_cc.kept_by_user as DraftIsKeptByUser,
sdraft_admin_cc.enqueue_since as EnqueueStartDateTime,
cast ( case $session.user
when sdraft_admin_cc.created_by
then 'X'
else ' '
end as sdraft_created_by_me preserving type
) as DraftIsCreatedByMe,
cast ( case $session.user
when sdraft_admin_cc.last_changed_by
then 'X'
else ' '
end as sdraft_last_changed_by_me preserving type
) as DraftIsLastChangedByMe,
cast ( case $session.user
when sdraft_admin_cc.in_process_by
then 'X'
else ' '
end as sdraft_in_process_by_me preserving type
) as DraftIsProcessedByMe,
cast ( CreatedByUserDesc.techdesc
as sdraft_created_by_desc preserving type
) as CreatedByUserDescription,
cast ( LastChangedByUserDesc.techdesc
as sdraft_last_changed_by_desc preserving type
) as LastChangedByUserDescription,
cast ( InProcessByUserDesc.techdesc
as sdraft_in_process_by_desc preserving type
) as InProcessByUserDescription,
DraftAdministrativeUser
}