P_EntProjAccCtrlListCompare
Compare old and new ACL
P_EntProjAccCtrlListCompare is a Composite CDS View that provides data about "Compare old and new ACL" in SAP S/4HANA. It reads from 6 data sources and exposes 8 fields with key field ProjectEntitlementUUID. Part of development package VDM_PPM_OBJECTS_AUTHORIZATION.
Data Sources (6)
| Source | Alias | Join Type |
|---|---|---|
| R_AccessControlReason | acf_reason | left_outer |
| I_EntProjectEntitlement | entitlement | from |
| I_EnterpriseProject | project | inner |
| I_EnterpriseProjectRole | role | inner |
| I_EnterpriseProjectTeamMember | teammbr | inner |
| I_User | user | inner |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| AccessControl.authorizationCheck | #NOT_REQUIRED | view | |
| AccessControl.auditing.type | #CUSTOM | view | |
| AccessControl.auditing.specification | change documents on Enterprise Projects | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.private | true | view | |
| VDM.lifecycle.contract.type | #NONE | view | |
| Metadata.ignorePropagatedAnnotations | true | view |
Fields (8)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectEntitlementUUID | I_EntProjectEntitlement | ProjectEntitlementUUID | |
| ProjectUUID | I_EntProjectEntitlement | ProjectUUID | ||
| ProjectInternalID | I_EnterpriseProject | ProjectInternalID | ||
| Project | I_EnterpriseProject | Project | ||
| RoleUUID | I_EntProjectEntitlement | ProjectRoleUUID | ||
| RoleType | I_EnterpriseProjectRole | ProjectRoleType | ||
| UserID | I_User | UserID | ||
| AccessControlUserUUID | acf | AccessControlUserUUID |
@AccessControl: {
authorizationCheck: #NOT_REQUIRED, // @NOT_ALLOWED not allowed at SAP although semantically the correct annotation
auditing: {
type: #CUSTOM,
specification: 'change documents on Enterprise Projects'
},
personalData.blocking: #BLOCKED_DATA_EXCLUDED
}
@ObjectModel: {
usageType: {
serviceQuality: #C,
dataClass: #TRANSACTIONAL,
sizeCategory: #L
}
}
@VDM: {
viewType: #COMPOSITE,
private: true,
lifecycle.contract.type: #NONE
}
//@EndUserText.label: 'Compare old and new ACL'
@Metadata.ignorePropagatedAnnotations: true
define view entity P_EntProjAccCtrlListCompare
as select from I_EntProjectEntitlement as entitlement
inner join I_EnterpriseProject as project on entitlement.ProjectUUID = project.ProjectUUID
//only entries with existing user should be checked, as only acl entries for valid user can be created
inner join I_EnterpriseProjectRole as role on entitlement.ProjectRoleUUID = role.ProjectRoleUUID
and entitlement.ProjectUUID = role.ProjectUUID
inner join I_EnterpriseProjectTeamMember as teammbr on entitlement.TeamMemberUUID = teammbr.TeamMemberUUID
and entitlement.ProjectUUID = teammbr.ProjectUUID
inner join I_User as user on teammbr.BusinessPartnerUUID = user.BusinessPartnerUUID
//ACF, check for each role+user
left outer join R_AccessControlReason as acf_reason on acf_reason.AccessControlFrameworkUUID = role.ProjectRoleUUID
and acf_reason.AccessControlFrameworkCode = 'ENTPRJ_U'
left outer to many join R_AccessControlUser as acf on acf.AccessControlHeaderUUID = acf_reason.AccessControlHeaderUUID
and acf.UserID = user.UserID
{
key entitlement.ProjectEntitlementUUID,
entitlement.ProjectUUID,
project.ProjectInternalID,
project.Project,
entitlement.ProjectRoleUUID as RoleUUID,
role.ProjectRoleType as RoleType,
user.UserID,
acf.AccessControlUserUUID
}
where
project.ProjectCategory = '6'
and acf.AccessControlUserUUID is null
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA