I_PPM_ProjectSummaryTask
Project, Projecttemplate or snapshot
I_PPM_ProjectSummaryTask is a Composite CDS View that provides data about "Project, Projecttemplate or snapshot" in SAP S/4HANA. It reads from 2 data sources (I_PPM_ProjectRoot, I_PPM_Task) and exposes 67 fields with key field ProjectUUID. It has 10 associations to related views. Part of development package PPM_OBJECTS_DEPRECATED.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_PPM_ProjectRoot | ProjectRoot | inner |
| I_PPM_Task | SummaryTask | from |
Associations (10)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [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' ) |
| [0..1] | I_WBSElementBasicData | _ProjObjRoot | ( _ProjObjRoot.WBSElementInternalID = $projection.WBSElementInternalID ) |
| [0..1] | I_PPM_ProjectType | _ProjectType | ( _ProjectType.ProjectType = $projection.ProjectType ) |
| [0..*] | I_PPM_ProTypeText | _ProjectTypeName | ( _ProjectTypeName.ProjectType = $projection.ProjectType ) |
| [0..*] | I_PPM_Task | _Task | ( _Task.ProjectUUID = $projection.ProjectUUID ) and ( ( _Task.ObjectType = 'TPO' ) or( _Task.ObjectType = 'TTO' ) ) |
| [0..*] | I_PPM_Task | _Phase | ( _Phase.ProjectUUID = $projection.ProjectUUID ) and ( _Phase.ObjectType = 'PPO' ) |
| [0..1] | I_PPM_ItemInfo | _Portfolio | ( _Portfolio.ProjectUUID = $projection.ProjectUUID ) |
Annotations (17)
| Name | Value | Level | Field |
|---|---|---|---|
| VDM.lifecycle.status | #DEPRECATED | view | |
| VDM.lifecycle.successor | R_EnterpriseProject | view | |
| EndUserText.label | Project, Projecttemplate or snapshot | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.lifecycle.contract.type | #SAP_INTERNAL_API | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AbapCatalog.sqlViewName | IPPMPROSUMTASK | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| ObjectModel.representativeKey | ProjectUUID | view | |
| ObjectModel.usageType.serviceQuality | #B | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| UI.headerInfo.typeName | Project | view | |
| UI.headerInfo.typeNamePlural | Projects | view |
Fields (67)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectUUID | I_PPM_ProjectRoot | ProjectUUID | |
| ProjectSummaryTaskUUID | I_PPM_Task | TaskUUID | ||
| ProjectCategory | I_PPM_ProjectRoot | ProjectCategory | ||
| ProjectLastChangedByUser | I_PPM_ProjectRoot | ProjectLastChangedByUser | ||
| ProjectLastChangedDateTime | I_PPM_ProjectRoot | ProjectLastChangedDateTime | ||
| ProjectReasonCode | I_PPM_ProjectRoot | ProjectReasonCode | ||
| MasterLanguage | I_PPM_ProjectRoot | MasterLanguage | ||
| IsSummaryTaskEnabled | I_PPM_ProjectRoot | IsSummaryTaskEnabled | ||
| ProjectLocation | I_PPM_ProjectRoot | ProjectLocation | ||
| PlanVersion | I_PPM_ProjectRoot | PlanVersion | ||
| OrganizationalUnitObjectType | I_PPM_ProjectRoot | OrganizationalUnitObjectType | ||
| OrganizationalUnit | I_PPM_ProjectRoot | OrganizationalUnit | ||
| ProjectEarliestOrLatest | I_PPM_ProjectRoot | ProjectEarliestOrLatest | ||
| EntProjectIsConfidential | I_PPM_ProjectRoot | EntProjectIsConfidential | ||
| EnterpriseProjectServiceOrg | I_PPM_ProjectRoot | EnterpriseProjectServiceOrg | ||
| ProjectTemplateUUID | I_PPM_ProjectRoot | ProjectTemplateUUID | ||
| ProjectInternalID | I_PPM_ProjectRoot | ProjectInternalID | ||
| WBSElementInternalID | I_PPM_Task | WBSElementInternalID | ||
| ProjectType | I_PPM_Task | TaskType | ||
| Project | I_PPM_Task | ExternalId | ||
| ProjectName | I_PPM_Task | TaskName | ||
| ReleaseDateTime | I_PPM_Task | ReleaseDateTime | ||
| EarliestStartDateTime | I_PPM_Task | EarliestStartDateTime | ||
| EarliestStartDate | I_PPM_Task | EarliestStartDate | ||
| EarliestFinishDateTime | I_PPM_Task | EarliestFinishDateTime | ||
| EarliestFinishDate | I_PPM_Task | EarliestFinishDate | ||
| StartConstraintType | I_PPM_Task | StartConstraintType | ||
| StartConstraintDateTime | I_PPM_Task | StartConstraintDateTime | ||
| StartConstraintDate | I_PPM_Task | StartConstraintDate | ||
| ProjectFinishConstraintType | I_PPM_Task | FinishConstraintType | ||
| FinishConstraintDateTime | I_PPM_Task | FinishConstraintDateTime | ||
| FinishConstraintDate | I_PPM_Task | FinishConstraintDate | ||
| ActualStartDateTime | I_PPM_Task | ActualStartDateTime | ||
| ActualStartDate | I_PPM_Task | ActualStartDate | ||
| ActualFinishDateTime | I_PPM_Task | ActualFinishDateTime | ||
| ActualFinishDate | I_PPM_Task | ActualFinishDate | ||
| LatestStartDateTime | I_PPM_Task | LatestStartDateTime | ||
| LatestStartDate | I_PPM_Task | LatestStartDate | ||
| LatestFinishDateTime | I_PPM_Task | LatestFinishDateTime | ||
| LatestFinishDate | I_PPM_Task | LatestFinishDate | ||
| ProjectElementDuration | I_PPM_Task | ProjectElementDuration | ||
| DurationUnit | I_PPM_Task | DurationUnit | ||
| ProjectVersionNumber | I_PPM_Task | ProjectVersionNumber | ||
| ProjectProcessingStatus | I_PPM_Task | TaskProcessingStatus | ||
| PriorityCode | I_PPM_Task | PriorityCode | ||
| CreatedByUser | I_PPM_Task | CreatedByUser | ||
| CreationDateTime | I_PPM_Task | CreationDateTime | ||
| LastChangedByUser | I_PPM_Task | LastChangedByUser | ||
| LastChangeDateTime | I_PPM_Task | LastChangeDateTime | ||
| EntProjIsMultiSlsOrdItmsEnbld | I_PPM_Task | EntProjIsMultiSlsOrdItmsEnbld | ||
| _AuthUser | _AuthUser | |||
| _AuthSubst | _AuthSubst | |||
| _AuthRole | _AuthRole | |||
| _AuthGroup | _AuthGroup | |||
| _Task | _Task | |||
| _Phase | _Phase | |||
| _CreatedByUser | I_PPM_Task | _CreatedByUser | ||
| _LastChangedByUser | I_PPM_Task | _LastChangedByUser | ||
| _ProjectLastChangedByUser | I_PPM_ProjectRoot | _ProjectLastChangedByUser | ||
| _ProjectName | I_PPM_Task | _Text | ||
| _ProjectType | _ProjectType | |||
| _ProjectTypeName | _ProjectTypeName | |||
| _Portfolio | _Portfolio | |||
| _I_Project | I_PPM_ProjectRoot | _I_Project | ||
| _ProjObjRoot | _ProjObjRoot | |||
| _Priority | I_PPM_Task | _Priority | ||
| _PriorityText | _PriorityText |
@VDM.lifecycle: {
status: #DEPRECATED,
successor: 'R_EnterpriseProject'
}
@EndUserText.label: 'Project, Projecttemplate or snapshot'
@VDM.viewType: #COMPOSITE
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@AccessControl: {
authorizationCheck: #CHECK,
privilegedAssociations: [ '_ProjectType', '_ProjectTypeName' ],
personalData.blocking: #BLOCKED_DATA_EXCLUDED
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog: {
sqlViewName: 'IPPMPROSUMTASK',
compiler.compareFilter: true,
preserveKey:true
}
@ObjectModel: {
semanticKey: [ 'Project' ],
representativeKey: 'ProjectUUID',
alternativeKey: [ { id : 'ProjectSummaryTaskUUID', uniqueness: #UNIQUE, element: 'ProjectSummaryTaskUUID' },
{ id : 'ProjectInternalID' , uniqueness: #UNIQUE, element: 'ProjectInternalID' } ],
usageType: {
serviceQuality: #B,
dataClass: #MASTER,
sizeCategory: #L
}
}
@UI.headerInfo: {
typeName: 'Project',
typeNamePlural: 'Projects'
}
define view I_PPM_ProjectSummaryTask
as select from I_PPM_Task as SummaryTask
inner join I_PPM_ProjectRoot as ProjectRoot on(
ProjectRoot.ProjectUUID = SummaryTask.ProjectUUID
)
// associations 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'
)
// PS Root WBS Element
association [0..1] to I_WBSElementBasicData as _ProjObjRoot on (
_ProjObjRoot.WBSElementInternalID = $projection.WBSElementInternalID
)
// other associations
association [0..1] to I_PPM_ProjectType as _ProjectType on (
_ProjectType.ProjectType = $projection.ProjectType
)
association [0..*] to I_PPM_ProTypeText as _ProjectTypeName on (
_ProjectTypeName.ProjectType = $projection.ProjectType
)
association [0..*] to I_PPM_Task as _Task on (
_Task.ProjectUUID = $projection.ProjectUUID
)
and (
(
_Task.ObjectType = 'TPO'
)
or(
_Task.ObjectType = 'TTO'
)
)
association [0..*] to I_PPM_Task as _Phase on (
_Phase.ProjectUUID = $projection.ProjectUUID
)
and (
_Phase.ObjectType = 'PPO'
)
association [0..1] to I_PPM_ItemInfo as _Portfolio on (
_Portfolio.ProjectUUID = $projection.ProjectUUID
)
{
key ProjectRoot.ProjectUUID,
/* CE2011 - Project is referred by Enterprise Project
@Consumption.semanticObject: 'EnterpriseProject' */
@ObjectModel.text.association: '_ProjectName'
SummaryTask.TaskUUID as ProjectSummaryTaskUUID,
ProjectRoot.ProjectCategory,
// @Semantics.user.lastChangedBy: true - This is on project level, not for this record only!
ProjectRoot.ProjectLastChangedByUser,
// @Semantics.systemDateTime.lastChangedAt: true
ProjectRoot.ProjectLastChangedDateTime,
ProjectRoot.ProjectReasonCode,
ProjectRoot.MasterLanguage,
ProjectRoot.IsSummaryTaskEnabled,
ProjectRoot.ProjectLocation,
ProjectRoot.PlanVersion,
ProjectRoot.OrganizationalUnitObjectType,
ProjectRoot.OrganizationalUnit,
ProjectRoot.ProjectEarliestOrLatest,
ProjectRoot.EntProjectIsConfidential,
ProjectRoot.EnterpriseProjectServiceOrg,
ProjectRoot.ProjectTemplateUUID, // when the project was copied,this contains the UUID of the source project
// PS Data
ProjectRoot.ProjectInternalID,
SummaryTask.WBSElementInternalID,
@ObjectModel.text.association: '_ProjectTypeName'
SummaryTask.TaskType as ProjectType,
// CE2011 - Project is referred by EnterpriseProject
@Consumption.semanticObject: 'EnterpriseProject'
SummaryTask.ExternalId as Project,
SummaryTask.TaskName as ProjectName,
SummaryTask.ReleaseDateTime,
SummaryTask.EarliestStartDateTime,
SummaryTask.EarliestStartDate,
SummaryTask.EarliestFinishDateTime,
SummaryTask.EarliestFinishDate,
SummaryTask.StartConstraintType,
SummaryTask.StartConstraintDateTime,
SummaryTask.StartConstraintDate,
SummaryTask.FinishConstraintType as ProjectFinishConstraintType,
SummaryTask.FinishConstraintDateTime,
SummaryTask.FinishConstraintDate,
SummaryTask.ActualStartDateTime,
SummaryTask.ActualStartDate,
SummaryTask.ActualFinishDateTime,
SummaryTask.ActualFinishDate,
SummaryTask.LatestStartDateTime,
SummaryTask.LatestStartDate,
SummaryTask.LatestFinishDateTime,
SummaryTask.LatestFinishDate,
SummaryTask.ForecastedStartDateTime,
SummaryTask.ForecastedStartDate,
SummaryTask.ForecastedFinishDateTime,
SummaryTask.ForecastedFinishDate,
SummaryTask.ForecastedFinishDate as ForecastedEndDate,
SummaryTask.ProjectElementDuration,
SummaryTask.DurationUnit,
SummaryTask.ProjectVersionNumber,
SummaryTask.TaskProcessingStatus as ProjectProcessingStatus,
SummaryTask.PriorityCode,
@Semantics.user.createdBy: true
SummaryTask.CreatedByUser,
//@Semantics.systemDateTime.createdAt: true
SummaryTask.CreationDateTime,
@Semantics.user.lastChangedBy: true
SummaryTask.LastChangedByUser,
//@Semantics.systemDateTime.lastChangedAt: true
SummaryTask.LastChangeDateTime,
//2102 Ent Project Multiple SO item indicator
SummaryTask.EntProjIsMultiSlsOrdItmsEnbld,
// SummaryTask.TaskTemplateUUID as TaskTemplateUUID,
@Consumption.hidden: true
_AuthUser,
@Consumption.hidden: true
_AuthSubst,
@Consumption.hidden: true
_AuthRole,
@Consumption.hidden: true
_AuthGroup,
// when using the association to _Task or _Phase via project root, we need to carry the ProjectRootUUID everywhere, for this reason, I did introduce
// a new association to I_PPM_Task
// ProjectRoot.ProjectRootUUID,
_Task,
_Phase,
SummaryTask._CreatedByUser,
SummaryTask._LastChangedByUser,
ProjectRoot._ProjectLastChangedByUser,
SummaryTask._Text as _ProjectName,
_ProjectType,
_ProjectTypeName,
_Portfolio,
ProjectRoot._I_Project,
_ProjObjRoot,
SummaryTask._Priority,
_PriorityText
}
where
SummaryTask.ObjectType = 'DPO'
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