I_PPM_ProjectRole
Project Role
I_PPM_ProjectRole is a Basic CDS View that provides data about "Project Role" in SAP S/4HANA. It reads from 3 data sources (cgpl_hierarchy, I_PPM_Task, dpr_part) and exposes 20 fields with key field ProjectRoleUUID. It has 3 associations to related views.
Data Sources (3)
| Source | Alias | Join Type |
|---|---|---|
| cgpl_hierarchy | hier | left_outer |
| I_PPM_Task | pst | left_outer |
| dpr_part | role | from |
Associations (3)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_PPM_ProjectRoleText | _ProjectRoleText | $projection.ProjectRoleUUID = _ProjectRoleText.ProjectRoleUUID |
| [1..*] | I_PPM_ProjectRoleTypeText | _ProjectRoleTypeText | $projection.ProjectRoleType = _ProjectRoleTypeText. ProjectRoleType |
| [1..1] | I_PPM_ProjectRoleType | _ProjectRoleType | $projection.ProjectRoleType = _ProjectRoleType.ProjectRoleType |
Annotations (13)
| Name | Value | Level | Field |
|---|---|---|---|
| EndUserText.label | Project Role | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #NOT_REQUIRED | view | |
| AbapCatalog.sqlViewName | IPPMPROROLE | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| ObjectModel.representativeKey | ProjectRoleUUID | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.sizeCategory | #S | view | |
| VDM.viewType | #BASIC | view | |
| VDM.lifecycle.contract.type | #SAP_INTERNAL_API | view |
Fields (20)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectRoleUUID | |||
| ProjectRoleType | dpr_part | participant_role | ||
| ObjectType | ||||
| ProjectSummaryTaskUUID | I_PPM_Task | TaskUUID | ||
| ProjectUUID | I_PPM_Task | ProjectUUID | ||
| ProjectRole | dpr_part | participant_id | ||
| _ProjectRoleText | _ProjectRoleText | |||
| _ProjectRoleTypeText | _ProjectRoleTypeText | |||
| _ProjectRoleType | _ProjectRoleType | |||
| ProjectInternalID | ProjectInternalID | |||
| WBSElementInternalID | WBSElementInternalID | |||
| _I_Project | I_PPM_Task | _I_Project | ||
| ProjectProfileCode | ||||
| FunctionalArea | ||||
| CompanyCode | ||||
| _ProjObj | I_PPM_Task | _ProjObj | ||
| _AuthUser | I_PPM_Task | _AuthUser | ||
| _AuthSubst | I_PPM_Task | _AuthSubst | ||
| _AuthRole | I_PPM_Task | _AuthRole | ||
| _AuthGroup | I_PPM_Task | _AuthGroup |
@EndUserText.label: 'Project Role'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@AbapCatalog: {
sqlViewName: 'IPPMPROROLE',
compiler.compareFilter: true,
preserveKey:true
}
@ObjectModel: {
representativeKey: 'ProjectRoleUUID',
usageType: {
serviceQuality: #D,
dataClass: #MIXED,
sizeCategory: #S
}
}
@VDM.viewType: #BASIC
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
define view I_PPM_ProjectRole
as select from dpr_part as role
left outer join cgpl_hierarchy as hier on hier.guid = role.guid
left outer join I_PPM_Task as pst on pst.TaskUUID = hier.up
association [1..1] to I_PPM_ProjectRoleText as _ProjectRoleText on $projection.ProjectRoleUUID = _ProjectRoleText.ProjectRoleUUID
association [1..*] to I_PPM_ProjectRoleTypeText as _ProjectRoleTypeText on $projection.ProjectRoleType = _ProjectRoleTypeText. ProjectRoleType
association [1..1] to I_PPM_ProjectRoleType as _ProjectRoleType on $projection.ProjectRoleType = _ProjectRoleType.ProjectRoleType
{
@ObjectModel.text.association: '_ProjectRoleText'
key cast( role.guid as /s4ppm/tv_entity_guid ) as ProjectRoleUUID,
role.participant_role as ProjectRoleType,
'MTG' as ObjectType,
// hier.up as TaskUUID,
pst.TaskUUID as ProjectSummaryTaskUUID,
pst.ProjectUUID,
role.participant_id as ProjectRole,
_ProjectRoleText,
_ProjectRoleTypeText,
_ProjectRoleType,
//Authorization check relevant data
ProjectInternalID,
WBSElementInternalID,
pst._I_Project,
pst._I_Project.ProjectProfileCode as ProjectProfileCode,
pst._I_Project.FunctionalArea as FunctionalArea,
pst._I_Project.CompanyCode as CompanyCode,
pst._ProjObj,
pst._AuthUser,
pst._AuthSubst,
pst._AuthRole,
pst._AuthGroup
}
where
role.concrete_role = ''
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PPM_TASK",
"I_PROJECTBASICDATA",
"CGPL_HIERARCHY",
"DPR_PART"
],
"ASSOCIATED":
[
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH",
"I_PPM_PROJECTROLETEXT",
"I_PPM_PROJECTROLETYPE",
"I_PPM_PROJECTROLETYPETEXT",
"I_PROJECTBASICDATA",
"I_WBSELEMENTBASICDATA"
],
"BASE":
[
"I_PPM_TASK"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
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