P_PPM_LocalAuthorizations

DDL: P_PPM_LOCALAUTHORIZATIONS SQL: PPPMLOCALAUTH Type: view BASIC

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.

Data Sources (7)

SourceAliasJoin Type
aco_user_group GroupAuth union
aco_role RoleAuth union
aco_substitute sub inner
aco_user UserAuth from
P_PPM_UserGroupHierarchy UserGroup inner
agr_users UserRole inner
aco_user usr union

Annotations (6)

NameValueLevelField
VDM.private true view
VDM.viewType #BASIC view
AbapCatalog.sqlViewName PPPMLOCALAUTH view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #NOT_REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view

Fields (13)

KeyFieldSource TableSource FieldDescription
KEY object_id aco_user object_id
KEY Activity aco_user activity
KEY UserID aco_user user_id
object_id
KEY Activity aco_user activity
KEY UserID aco_substitute user_id_subst
object_id
KEY Activity aco_user_group activity
KEY UserID P_PPM_UserGroupHierarchy UserID
object_id
KEY Activity aco_role activity
KEY UserID agr_users uname
ObjectType aco_role type
@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


define view P_PPM_LocalAuthorizations

  as select from aco_user as UserAuth

{
  key UserAuth.object_id,
  key UserAuth.activity  as Activity,

      @Semantics.user.id: true
  key UserAuth.user_id   as UserID,
      UserAuth.type      as ObjectType //this is not the correct object_type because it is only the objecttype of the inherited_from obj


}

union select from aco_user       as usr
  inner join      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: true
  key sub.user_id_subst as UserID,
      usr.type          as ObjectType
}

union select from aco_user_group           as GroupAuth
  inner join      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: true
  key UserGroup.UserID   as UserID,
      GroupAuth.type     as ObjectType
}


//  inner join      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

//}



union select from aco_role  as RoleAuth
  inner join      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