P_PPM_Prstcm_ProjData
P_PPM_Prstcm_ProjData is a Consumption CDS View in SAP S/4HANA. It reads from 8 data sources and exposes 21 fields with key field ProjectUUID. It has 1 association to related views.
Data Sources (8)
| Source | Alias | Join Type |
|---|---|---|
| I_PPM_ProjectMilestEssent | _MlstnEssential | left_outer |
| I_PPM_ProjectMilestRelNext | _MlstnRelevant | left_outer |
| I_PPM_ProjectStatusArea | _OverallStatusArea | left_outer |
| I_ProjectBasicData | _Project | left_outer |
| I_PPM_ProjectSummaryTask | _ProjectSummary | from |
| I_PPM_SingleResponsibleForProj | _Responsible | left_outer |
| I_PPM_TeamMemberIsInRole | I_PPM_TeamMemberIsInRole | left_outer |
| I_WBSElementBasicData | PS_RootWBS | left_outer |
Associations (1)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_PPM_Task | _NextEssentialMlstn | _NextEssentialMlstn.TaskUUID = _MlstnEssential.TaskUUID |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PPPMPRSTCMPRD | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| VDM.viewType | #CONSUMPTION | view | |
| VDM.private | true | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view |
Fields (21)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectUUID | I_PPM_ProjectSummaryTask | ProjectUUID | |
| ProjectInternalID | I_PPM_ProjectSummaryTask | ProjectInternalID | ||
| Project | I_PPM_ProjectSummaryTask | Project | ||
| ProjectSummaryTaskUUID | I_PPM_ProjectSummaryTask | ProjectSummaryTaskUUID | ||
| ProcessingStatus | I_PPM_ProjectSummaryTask | ProjectProcessingStatus | ||
| PriorityCode | I_PPM_ProjectSummaryTask | PriorityCode | ||
| Status | I_PPM_ProjectStatusArea | Status | ||
| ProjectType | I_WBSElementBasicData | ProjectType | ||
| NextEssentialMlstnUUID | I_PPM_ProjectMilestEssent | TaskUUID | ||
| StatusCount | ||||
| BusinessPartnerFullName | ||||
| ProjectManagerUUID | I_PPM_SingleResponsibleForProj | BusinessPartnerUUID | ||
| IsProjectSteeringCommitteeMbr | IsPrjSteerMbr | IsInRoleCategory | ||
| ControllingArea | I_ProjectBasicData | ControllingArea | ||
| ProfitCenter | I_ProjectBasicData | ProfitCenter | ||
| WBSElementProfitCenter | I_WBSElementBasicData | ProfitCenter | ||
| _BusinessUser | I_PPM_SingleResponsibleForProj | _BusinessUser | ||
| _AuthUser | I_PPM_ProjectSummaryTask | _AuthUser | ||
| _AuthSubst | I_PPM_ProjectSummaryTask | _AuthSubst | ||
| _AuthRole | I_PPM_ProjectSummaryTask | _AuthRole | ||
| _AuthGroup | I_PPM_ProjectSummaryTask | _AuthGroup |
@AbapCatalog.sqlViewName: 'PPPMPRSTCMPRD'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@VDM.viewType: #CONSUMPTION
@VDM.private:true
@ObjectModel: {
usageType: {
serviceQuality: #D,
dataClass: #MIXED,
sizeCategory: #L
}
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
define view P_PPM_Prstcm_ProjData
as select from I_PPM_ProjectSummaryTask as _ProjectSummary
left outer join I_ProjectBasicData as _Project on _Project.ProjectInternalID = _ProjectSummary.ProjectInternalID
left outer join I_WBSElementBasicData as PS_RootWBS on PS_RootWBS.WBSElementInternalID = _ProjectSummary.WBSElementInternalID
/* Essential milestone */
left outer join I_PPM_ProjectMilestEssent as _MlstnEssential on _ProjectSummary.ProjectUUID = _MlstnEssential.ProjectUUID
/* next released milestone */
left outer join I_PPM_ProjectMilestRelNext as _MlstnRelevant on _ProjectSummary.ProjectUUID = _MlstnRelevant.ProjectUUID
left outer join I_PPM_ProjectStatusArea as _OverallStatusArea on _ProjectSummary.ProjectUUID = _OverallStatusArea.ProjectUUID
and _OverallStatusArea.IsOverallStatus = 'X'
left outer join I_PPM_SingleResponsibleForProj as _Responsible on _Responsible.ProjectSummaryTaskUUID = _ProjectSummary.ProjectSummaryTaskUUID
// Indicator for user being Project Steering Commitee Member
left outer join I_PPM_TeamMemberIsInRole( P_ProjectRoleCategory : 'SCM' ) as IsPrjSteerMbr on _ProjectSummary.ProjectUUID = IsPrjSteerMbr.ProjectUUID
association [0..1] to I_PPM_Task as _NextEssentialMlstn on _NextEssentialMlstn.TaskUUID = _MlstnEssential.TaskUUID
{
key _ProjectSummary.ProjectUUID,
_ProjectSummary.ProjectInternalID,
_ProjectSummary.Project,
_ProjectSummary.ProjectSummaryTaskUUID,
_ProjectSummary.ProjectProcessingStatus as ProcessingStatus,
_ProjectSummary.PriorityCode,
_OverallStatusArea.Status,
PS_RootWBS.ProjectType,
_MlstnEssential.TaskUUID as NextEssentialMlstnUUID,
case
when _NextEssentialMlstn.ProjectElementDuration = 0 and _NextEssentialMlstn.StartConstraintDateTime = _NextEssentialMlstn.LatestStartDateTime then //WebDynpro takes latest start
tstmp_to_dats( _NextEssentialMlstn.LatestStartDateTime, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL' )
else
dats_add_days(
tstmp_to_dats( _NextEssentialMlstn.LatestFinishDateTime, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL' ),
-1, 'FAIL')
end as NextEssentialMlstnDate,
cast(1 as abap.int1) as StatusCount,
_Responsible._BusinessUser.PersonFullName as BusinessPartnerFullName,
_Responsible.BusinessPartnerUUID as ProjectManagerUUID,
IsPrjSteerMbr.IsInRoleCategory as IsProjectSteeringCommitteeMbr,
_Project.ControllingArea as ControllingArea,
_Project.ProfitCenter as ProfitCenter,
PS_RootWBS.ProfitCenter as WBSElementProfitCenter,
_Responsible._BusinessUser,
_ProjectSummary._AuthUser,
_ProjectSummary._AuthSubst,
_ProjectSummary._AuthRole,
_ProjectSummary._AuthGroup
}
where _ProjectSummary.ProjectInternalID <> '00000000'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSINESSUSERBASIC",
"I_PPM_PROJECTMILESTESSENT",
"I_PPM_PROJECTMILESTRELNEXT",
"I_PPM_PROJECTSTATUSAREA",
"I_PPM_PROJECTSUMMARYTASK",
"I_PPM_SINGLERESPONSIBLEFORPROJ",
"I_PPM_TASK",
"I_PPM_TEAMMEMBERISINROLE",
"I_PROJECTBASICDATA",
"I_WBSELEMENTBASICDATA"
],
"ASSOCIATED":
[
"I_BUSINESSUSERBASIC",
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH",
"I_PPM_TASK"
],
"BASE":
[
"I_PPM_PROJECTSUMMARYTASK",
"I_PPM_SINGLERESPONSIBLEFORPROJ"
],
"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