I_PPM_PROJECTSUMMARYTASK
Project, Projecttemplate or snapshot
I_PPM_PROJECTSUMMARYTASK is a CDS View in S/4HANA. Project, Projecttemplate or snapshot. It contains 54 fields. 24 CDS views read from this table.
CDS Views using this table (24)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| C_PPM_MyActvProjectsCostTable | view | from | CONSUMPTION | My Projects - Cost Table (OVP) |
| C_ProjectFinCtrlrOvw | view | left_outer | CONSUMPTION | Project Financial Controller Overview |
| I_EnterpriseProjectElementTP | view | inner | TRANSACTIONAL | TP view for CRUD API for EPPM Workpackages and milestones |
| I_EnterpriseProjectRankingCost | view | left_outer | COMPOSITE | Costs of projects assigned to Ranking |
| I_PPM_IsMyProject | view | from | COMPOSITE | All projects a user is respsonible for |
| I_PPM_IsMyProjectAsSubstitute | view | inner | COMPOSITE | All prjs a usr is rsp for as a subst |
| I_PPM_MostCriticalProject | view | from | COMPOSITE | My Projects - Critical |
| I_PPM_MyActiveProjects | view | from | COMPOSITE | My Projects – Active |
| I_PPM_MyActvProjectsStsArea | view | inner | COMPOSITE | My Projects - Active: Status Area |
| I_PPM_Myplannedprojects | view | from | COMPOSITE | My Projects – Planned |
| I_PPM_ProjectCostForecastData | view | from | COMPOSITE | Project Cost Forecast: ML Training Input |
| I_PPM_ProjectCostSumCurrent | view | from | COMPOSITE | Project Cost To Current Date |
| I_PPM_ProjectCostSumToDate | view | from | COMPOSITE | Project Cost To Date |
| I_PPM_ProjectForUpdate | view | from | COMPOSITE | Lists all projects which can be updated |
| I_PPM_ProjectObjectLink | view | inner | COMPOSITE | PPM Project Object Link |
| I_PPM_ProjectPublicSector | view | from | COMPOSITE | Extension for Public Sector Fields |
| I_PPM_ProjectSearch | view | from | COMPOSITE | Basic Enterprise Search view for projects |
| I_PPM_ProjectStatusArea | view | inner | COMPOSITE | PPM Project Status Area Compositional Hierarchy View |
| I_PPM_ProjJntVentureAccounting | view | from | COMPOSITE | Extension for Joint Venture Accounting |
| I_PPM_UpcMilestonesProjects | view | inner | COMPOSITE | Upcoming Milestones for Projects |
| P_PPM_Project | view | from | COMPOSITE | Project |
| P_PPM_ProjectList | view | from | COMPOSITE | List of all Projects for UI consumption |
| P_PPM_Prstcm_ProjData | view | from | CONSUMPTION | Private View of Projects By Key Figures visual filters |
| P_PPM_PrStCmrProjByKeyFigures | view | from | COMPOSITE | Projects By Key Figures |
Fields (54)
| Key | Field | CDS Fields | Used in Views |
|---|---|---|---|
| KEY | ProjectInternalID | ProjectInternalID | 11 |
| KEY | ProjectSummaryTaskUUID | ProjectSummaryTaskUUID | 16 |
| KEY | ProjectUUID | ProjectUUID | 16 |
| _AuthGroup | _AuthGroup | 8 | |
| _AuthRole | _AuthRole | 8 | |
| _AuthSubst | _AuthSubst | 8 | |
| _AuthUser | _AuthUser | 9 | |
| _CreatedByUser | _CreatedByUser | 1 | |
| _I_Project | _I_Project | 2 | |
| _PriorityText | _PriorityText | 1 | |
| _ProjectLastChangedByUser | _ProjectLastChangedByUser | 1 | |
| _ProjectTypeName | _ProjectTypeName | 1 | |
| _ProjObjRoot | _ProjObjRoot | 5 | |
| ActualFinishDate | ActualEndDate | 1 | |
| ActualFinishDateTime | ActualFinishDateTime | 1 | |
| ActualStartDate | ActualStartDate | 1 | |
| ActualStartDateTime | ActualStartDateTime | 1 | |
| CreatedByUser | CreatedByUser | 2 | |
| CreationDateTime | CreationDateTime | 2 | |
| DurationUnit | DurationUnit | 1 | |
| EarliestFinishDateTime | EarliestFinishDateTime | 1 | |
| EarliestStartDateTime | EarliestStartDateTime | 1 | |
| EntProjIsMultiSlsOrdItmsEnbld | EntProjIsMultiSlsOrdItmsEnbld | 1 | |
| FinishConstraintDateTime | FinishConstraintDateTime | 1 | |
| ForecastedFinishDateTime | ForecastedFinishDateTime | 1 | |
| ForecastedStartDate | ForecastedEndDate,ForecastedStartDate | 1 | |
| ForecastedStartDateTime | ForecastedStartDateTime | 1 | |
| IsSummaryTaskEnabled | IsSummaryTaskEnabled | 1 | |
| LastChangeDateTime | ProjectLastChangedDateTime | 1 | |
| LatestFinishDate | ProjectEndDate | 3 | |
| LatestFinishDateTime | LatestFinishDateTime | 1 | |
| LatestStartDate | ProjectStartDate | 3 | |
| LatestStartDateTime | LatestStartDateTime | 1 | |
| MasterLanguage | MasterLanguage | 2 | |
| OrganizationalUnit | OrganizationalUnit | 1 | |
| OrganizationalUnitObjectType | OrganizationalUnitObjectType | 1 | |
| PlanVersion | PlanVersion | 1 | |
| PriorityCode | PriorityCode | 5 | |
| Project | Project | 8 | |
| ProjectCategory | ProjectCategory | 2 | |
| ProjectEarliestOrLatest | ProjectEarliestOrLatest | 1 | |
| ProjectElementDuration | ProjectElementDuration | 2 | |
| ProjectLastChangedByUser | LastChangedByUser,ProjectLastChangedByUser | 2 | |
| ProjectLastChangedDateTime | LastChangeDateTime,ProjectLastChangedDateTime | 2 | |
| ProjectLocation | ProjectLocation | 1 | |
| ProjectName | ProjectName | 6 | |
| ProjectProcessingStatus | ProcessingStatus,ProjectProcessingStatus | 6 | |
| ProjectReasonCode | ProjectReasonCode | 1 | |
| ProjectTemplateUUID | ProjectTemplateUUID | 1 | |
| ProjectType | ProjectType | 4 | |
| ProjectVersionNumber | ProjectVersionNumber | 2 | |
| ReleaseDateTime | ReleaseDateTime | 1 | |
| StartConstraintDateTime | StartConstraintDateTime | 1 | |
| WBSElementInternalID | WBSElementInternalID | 9 |
@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'