P_PPM_LocalAuthorizations is a Basic CDS View in SAP S/4HANA. It reads from 7 data sources and exposes 13 fields with key fields object_id, Activity, UserID, Activity, UserID.
@VDM.private:true@VDM.viewType: #BASIC@AbapCatalog.sqlViewName: 'PPPMLOCALAUTH'
@AbapCatalog.compiler.compareFilter: true@AccessControl.authorizationCheck: #NOT_REQUIRED@ClientHandling.algorithm: #SESSION_VARIABLE//@EndUserText.label: 'Local Authorizations (Activities not yet resolved)'
//@ObjectModel.representativeKey: 'object_id
defineview P_PPM_LocalAuthorizations
asselectfrom aco_user as UserAuth
{
key UserAuth.object_id,
key UserAuth.activity as Activity,
@Semantics.user.id: truekey UserAuth.user_id as UserID,
UserAuth.type as ObjectType //this isnot the correct object_type because it is only the objecttype of the inherited_from obj
}
unionselectfrom aco_user as usr
innerjoin aco_substitute as sub on usr.user_id = sub.user_id
and usr.object_id = sub.object_id
{
key usr.object_id,
key usr.activity as Activity,
@Semantics.user.id: truekey sub.user_id_subst as UserID,
usr.type as ObjectType
}
unionselectfrom aco_user_group as GroupAuth
innerjoin P_PPM_UserGroupHierarchy as UserGroup on GroupAuth.user_group_id = UserGroup.UserGroupUUID_1
or GroupAuth.user_group_id = UserGroup.UserGroupUUID_2
or GroupAuth.user_group_id = UserGroup.UserGroupUUID_3
{
key GroupAuth.object_id,
key GroupAuth.activity as Activity,
@Semantics.user.id: truekey UserGroup.UserID as UserID,
GroupAuth.type as ObjectType
}
// innerjoin P_PPM_UserGroupsForUser as UserGroup on GroupAuth.user_group_id = UserGroup.UserGroupUUID
//{
// key GroupAuth.object_id,
// key GroupAuth.activity as Activity,
//
// @Semantics.user.id: true// key UserGroup.UserID as UserID,
// GroupAuth.type as ObjectType
//}
unionselectfrom aco_role as RoleAuth
innerjoin agr_users as UserRole on RoleAuth.role_id = UserRole.agr_name
{
key RoleAuth.object_id,
key RoleAuth.activity as Activity,
key UserRole.uname as UserID,
RoleAuth.type as ObjectType
}
where
UserRole.exclude = ''
and UserRole.from_dat <= $session.system_date
and UserRole.to_dat >= $session.system_date