P_PPM_ProjectList
List of all Projects for UI consumption
P_PPM_ProjectList is a Composite CDS View that provides data about "List of all Projects for UI consumption" in SAP S/4HANA. It reads from 7 data sources and exposes 50 fields with key fields ProjectUUID, ProjectSummaryTaskUUID. It has 6 associations to related views. Part of development package VDM_PPM_OBJECTS_PROJECT.
Data Sources (7)
| Source | Alias | Join Type |
|---|---|---|
| I_PPM_IsMyProject | IsMyProject | left_outer |
| I_PPM_IsMyProjectAsSubstitute | IsMyProjectAsSubstitute | left_outer |
| I_PPM_Text | NameUserLanguage | left_outer |
| I_PPM_ProjectSummaryTask | Project | from |
| I_PPM_ProTypeText | ProTypeName | left_outer |
| I_PPM_ProTypeText | TypeNameMasterLanguage | left_outer |
| I_PPM_User | User | inner |
Associations (6)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_PPM_ProjectResponsible | _ProjectManager | ( ( _ProjectManager.ProjectUUID = $projection.ProjectUUID ) and ( _ProjectManager.BusinessPartnerUUID = $projection.MyBusinessPartnerUUID ) ) |
| [0..1] | I_PPM_Substitute | _Substitute | ( ( _Substitute.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID ) and ( _Substitute.SubstituteUser = $session.user ) ) |
| [0..*] | I_PPM_AuthznByUsrH | _AuthUser | _AuthUser.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID and _AuthUser.UserID = $session.user and ( _AuthUser.Activity = 'Admin' or _AuthUser.Activity = 'Write' or _AuthUser.Activity = 'Read' ) |
| [0..*] | I_PPM_AuthznBySubstitH | _AuthSubst | _AuthSubst.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID and _AuthSubst.UserID = $session.user and ( _AuthSubst.Activity = 'Admin' or _AuthSubst.Activity = 'Write' or _AuthSubst.Activity = 'Read' ) |
| [0..*] | I_PPM_AuthznByUserRoleH | _AuthRole | _AuthRole.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID and _AuthRole.UserID = $session.user and ( _AuthRole.Activity = 'Admin' or _AuthRole.Activity = 'Write' or _AuthRole.Activity = 'Read' ) |
| [0..*] | I_PPM_AuthznByUsrGrpH | _AuthGroup | _AuthGroup.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID and _AuthGroup.UserID = $session.user and ( _AuthGroup.Activity = 'Admin' or _AuthGroup.Activity = 'Write' or _AuthGroup.Activity = 'Read' ) |
Annotations (10)
| Name | Value | Level | Field |
|---|---|---|---|
| VDM.private | true | view | |
| VDM.viewType | #COMPOSITE | view | |
| AbapCatalog.sqlViewName | PPPMPROJECTLIST | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.usageType.serviceQuality | #B | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| ObjectModel.representativeKey | ProjectUUID | view |
Fields (50)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectUUID | I_PPM_ProjectSummaryTask | ProjectUUID | |
| KEY | ProjectSummaryTaskUUID | I_PPM_ProjectSummaryTask | ProjectSummaryTaskUUID | |
| ProjectCategory | I_PPM_ProjectSummaryTask | ProjectCategory | ||
| ProjectLastChangedByUser | I_PPM_ProjectSummaryTask | ProjectLastChangedByUser | ||
| ProjectLastChangedDateTime | I_PPM_ProjectSummaryTask | ProjectLastChangedDateTime | ||
| ProjectReasonCode | I_PPM_ProjectSummaryTask | ProjectReasonCode | ||
| ProjectName | I_PPM_ProjectSummaryTask | ProjectName | ||
| MasterLanguage | I_PPM_ProjectSummaryTask | MasterLanguage | ||
| IsSummaryTaskEnabled | I_PPM_ProjectSummaryTask | IsSummaryTaskEnabled | ||
| ProjectLocation | I_PPM_ProjectSummaryTask | ProjectLocation | ||
| PlanVersion | I_PPM_ProjectSummaryTask | PlanVersion | ||
| OrganizationalUnitObjectType | I_PPM_ProjectSummaryTask | OrganizationalUnitObjectType | ||
| OrganizationalUnit | I_PPM_ProjectSummaryTask | OrganizationalUnit | ||
| ProjectEarliestOrLatest | I_PPM_ProjectSummaryTask | ProjectEarliestOrLatest | ||
| EarliestStartDateTime | I_PPM_ProjectSummaryTask | EarliestStartDateTime | ||
| ActualStartDateTime | I_PPM_ProjectSummaryTask | ActualStartDateTime | ||
| LatestStartDateTime | I_PPM_ProjectSummaryTask | LatestStartDateTime | ||
| EarliestFinishDateTime | I_PPM_ProjectSummaryTask | EarliestFinishDateTime | ||
| ActualFinishDateTime | I_PPM_ProjectSummaryTask | ActualFinishDateTime | ||
| LatestFinishDateTime | I_PPM_ProjectSummaryTask | LatestFinishDateTime | ||
| StartConstraintDateTime | I_PPM_ProjectSummaryTask | StartConstraintDateTime | ||
| FinishConstraintDateTime | I_PPM_ProjectSummaryTask | FinishConstraintDateTime | ||
| ProjectElementDuration | I_PPM_ProjectSummaryTask | ProjectElementDuration | ||
| DurationUnit | I_PPM_ProjectSummaryTask | DurationUnit | ||
| ProjectType | I_PPM_ProjectSummaryTask | ProjectType | ||
| Project | I_PPM_ProjectSummaryTask | Project | ||
| ReleaseDateTime | I_PPM_ProjectSummaryTask | ReleaseDateTime | ||
| ProjectInternalID | I_PPM_ProjectSummaryTask | ProjectInternalID | ||
| WBSElementInternalID | I_PPM_ProjectSummaryTask | WBSElementInternalID | ||
| ProjectProcessingStatus | I_PPM_ProjectSummaryTask | ProjectProcessingStatus | ||
| PriorityCode | I_PPM_ProjectSummaryTask | PriorityCode | ||
| ProjectVersionNumber | I_PPM_ProjectSummaryTask | ProjectVersionNumber | ||
| CreatedByUser | I_PPM_ProjectSummaryTask | CreatedByUser | ||
| CreationDateTime | I_PPM_ProjectSummaryTask | CreationDateTime | ||
| MyBusinessPartnerUUID | I_PPM_User | BusinessPartnerUUID | ||
| IsMyProjectendasIsMyProject | ||||
| IsMyProjectendasIsMyProjectAsSubstitute | ||||
| ProjectNameUserLanguage | I_PPM_Text | ObjectName | ||
| ProjectNameMasterLanguage | ProjectName | |||
| ProjectTypeName | I_PPM_ProTypeText | ProjectTypeName | ||
| ProjectTypeNameUserLanguage | I_PPM_ProTypeText | ProjectTypeName | ||
| ProjectTypeNameMasterLanguage | I_PPM_ProTypeText | ProjectTypeName | ||
| _AuthUser | _AuthUser | |||
| _AuthSubst | _AuthSubst | |||
| _AuthRole | _AuthRole | |||
| _AuthGroup | _AuthGroup | |||
| _I_Project | _I_Project | |||
| _ProjObjRoot | _ProjObjRoot | |||
| _ProjectManager | _ProjectManager | |||
| _Substitute | _Substitute |
@VDM.private: true
@VDM.viewType: #COMPOSITE
@AbapCatalog.sqlViewName: 'PPPMPROJECTLIST'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.serviceQuality: #B
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
// @EndUserText.label: 'List of all Projects for UI consumption'
@ObjectModel.representativeKey: 'ProjectUUID'
define view P_PPM_ProjectList as select from I_PPM_ProjectSummaryTask as Project
// get the BuPa for the associations
inner join I_PPM_User as User
on User.UserID = $session.user
left outer join I_PPM_Text as NameUserLanguage
on ( NameUserLanguage.LanguageCode = $session.system_language )
and ( NameUserLanguage.ReferencedObjectUUID = Project.ProjectSummaryTaskUUID )
// replaced by primary DB fallback in 1911
// left outer join I_PPM_Text as NameMasterLanguage
// on ( NameMasterLanguage.LanguageCode = Project.MasterLanguage )
// and ( NameMasterLanguage.ReferencedObjectUUID = Project.ProjectSummaryTaskUUID )
left outer join I_PPM_ProTypeText as ProTypeName
on ( ProTypeName.LanguageCode = $session.system_language )
and ( ProTypeName.ProjectType = Project.ProjectType )
left outer join I_PPM_ProTypeText as TypeNameMasterLanguage
on ( TypeNameMasterLanguage.LanguageCode = Project.MasterLanguage )
and ( TypeNameMasterLanguage.ProjectType = Project.ProjectType )
// My Project Indicator
left outer join I_PPM_IsMyProject as IsMyProject
on Project.ProjectUUID = IsMyProject.ProjectUUID
// My Project as Substitute Indicator
left outer join I_PPM_IsMyProjectAsSubstitute as IsMyProjectAsSubstitute
on Project.ProjectUUID = IsMyProjectAsSubstitute.ProjectUUID
// other associations
association [0..1] to I_PPM_ProjectResponsible as _ProjectManager
on ( ( _ProjectManager.ProjectUUID = $projection.ProjectUUID )
and ( _ProjectManager.BusinessPartnerUUID = $projection.MyBusinessPartnerUUID ) )
association [0..1] to I_PPM_Substitute as _Substitute
on ( ( _Substitute.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID )
and ( _Substitute.SubstituteUser = $session.user ) )
// associatioins to authorization views
association [0..*] to I_PPM_AuthznByUsrH as _AuthUser
on _AuthUser.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID
and _AuthUser.UserID = $session.user
and ( _AuthUser.Activity = 'Admin' or _AuthUser.Activity = 'Write' or _AuthUser.Activity = 'Read' )
association [0..*] to I_PPM_AuthznBySubstitH as _AuthSubst
on _AuthSubst.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID
and _AuthSubst.UserID = $session.user
and ( _AuthSubst.Activity = 'Admin' or _AuthSubst.Activity = 'Write' or _AuthSubst.Activity = 'Read' )
association [0..*] to I_PPM_AuthznByUserRoleH as _AuthRole
on _AuthRole.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID
and _AuthRole.UserID = $session.user
and ( _AuthRole.Activity = 'Admin' or _AuthRole.Activity = 'Write' or _AuthRole.Activity = 'Read' )
association [0..*] to I_PPM_AuthznByUsrGrpH as _AuthGroup
on _AuthGroup.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID
and _AuthGroup.UserID = $session.user
and ( _AuthGroup.Activity = 'Admin' or _AuthGroup.Activity = 'Write' or _AuthGroup.Activity = 'Read' )
{
key Project.ProjectUUID,
key Project.ProjectSummaryTaskUUID,
Project.ProjectCategory,
Project.ProjectLastChangedByUser,
Project.ProjectLastChangedDateTime,
Project.ProjectReasonCode,
Project.ProjectName,
Project.MasterLanguage,
Project.IsSummaryTaskEnabled,
Project.ProjectLocation,
Project.PlanVersion,
Project.OrganizationalUnitObjectType,
Project.OrganizationalUnit,
Project.ProjectEarliestOrLatest,
Project.EarliestStartDateTime,
Project.ActualStartDateTime,
Project.LatestStartDateTime,
Project.ForecastedStartDateTime,
Project.EarliestFinishDateTime,
Project.ActualFinishDateTime,
Project.LatestFinishDateTime,
Project.ForecastedFinishDateTime,
Project.StartConstraintDateTime,
Project.FinishConstraintDateTime,
Project.ProjectElementDuration,
Project.DurationUnit,
Project.ProjectType,
@EndUserText: { label: 'Project ID', quickInfo: 'Project ID' }
Project.Project,
Project.ReleaseDateTime,
Project.ProjectInternalID,
Project.WBSElementInternalID,
Project.ProjectProcessingStatus,
Project.PriorityCode,
Project.ProjectVersionNumber,
Project.CreatedByUser,
Project.CreationDateTime,
User.BusinessPartnerUUID as MyBusinessPartnerUUID,
@EndUserText: { label: 'My Project (Project Manager)',
quickInfo: 'My Project (Project Manager)'
}
case when IsMyProject.IsMyProject is null
then
' '
else
IsMyProject.IsMyProject
end as IsMyProject,
@EndUserText: { label: 'My Project (Substitute)',
quickInfo: 'My Project (Substitute)'
}
case when IsMyProjectAsSubstitute.IsMyProject is null
then
' '
else
IsMyProjectAsSubstitute.IsMyProject
end as IsMyProjectAsSubstitute,
NameUserLanguage.ObjectName as ProjectNameUserLanguage,
// replaced by primary DB fallback in 1911
// NameMasterLanguage.ObjectName as ProjectNameMasterLanguage,
ProjectName as ProjectNameMasterLanguage,
// _ProjectTypeName[1: LanguageCode = $session.system_language ] as ProjectTypeNameUserLanguage, can not be used in case
ProTypeName.ProjectTypeName,
ProTypeName.ProjectTypeName as ProjectTypeNameUserLanguage, // do not use - depreceated
TypeNameMasterLanguage.ProjectTypeName as ProjectTypeNameMasterLanguage, // do not use - depreceated
// , Project._ProjectType
_AuthUser,
_AuthSubst,
_AuthRole,
_AuthGroup,
_I_Project,
_ProjObjRoot,
_ProjectManager,
_Substitute
}
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