I_PPM_ProjectForUpdate
Lists all projects which can be updated
I_PPM_ProjectForUpdate is a Composite CDS View that provides data about "Lists all projects which can be updated" in SAP S/4HANA. It reads from 1 data source (I_PPM_ProjectSummaryTask) and exposes 18 fields with key field ProjectUUID. It has 5 associations to related views.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| I_PPM_ProjectSummaryTask | I_PPM_ProjectSummaryTask | from |
Associations (5)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_EnterpriseProjectForUser | _EnterpriseProjectForUser | _EnterpriseProjectForUser.ProjectUUID = $projection.ProjectUUID |
| [0..*] | I_PPM_AuthznByUsrH | _AuthUser | _AuthUser.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID and _AuthUser.UserID = $session.user and ( _AuthUser.Activity = 'Admin' or _AuthUser.Activity = 'Write' ) |
| [0..*] | I_PPM_AuthznBySubstitH | _AuthSubst | _AuthSubst.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID and _AuthSubst.UserID = $session.user and ( _AuthSubst.Activity = 'Admin' or _AuthSubst.Activity = 'Write' ) |
| [0..*] | I_PPM_AuthznByUserRoleH | _AuthRole | _AuthRole.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID and _AuthRole.UserID = $session.user and ( _AuthRole.Activity = 'Admin' or _AuthRole.Activity = 'Write' ) |
| [0..*] | I_PPM_AuthznByUsrGrpH | _AuthGroup | _AuthGroup.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID and _AuthGroup.UserID = $session.user and ( _AuthGroup.Activity = 'Admin' or _AuthGroup.Activity = 'Write' ) |
Annotations (14)
| Name | Value | Level | Field |
|---|---|---|---|
| VDM.viewType | #COMPOSITE | view | |
| AbapCatalog.sqlViewName | IPPMPROJECT4UPD | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| ObjectModel.representativeKey | ProjectUUID | view | |
| ObjectModel.usageType.serviceQuality | #B | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| UI.headerInfo.typeName | Project | view | |
| UI.headerInfo.typeNamePlural | Projects | view | |
| EndUserText.label | Lists all projects which can be updated | view | |
| VDM.lifecycle.contract.type | #SAP_INTERNAL_API | view |
Fields (18)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectUUID | ProjectUUID | ||
| ProjectSummaryTaskUUID | ProjectSummaryTaskUUID | |||
| Project | Project | |||
| ProjectInternalID | ProjectInternalID | |||
| WBSElementInternalID | WBSElementInternalID | |||
| ProjectProcessingStatus | ProjectProcessingStatus | |||
| ProjectCategory | ProjectCategory | |||
| EntProjectIsConfidential | EntProjectIsConfidential | |||
| EnterpriseProjectServiceOrg | EnterpriseProjectServiceOrg | |||
| IsEditable | ||||
| _ProjectName | _ProjectName | |||
| _EnterpriseProjectForUser | _EnterpriseProjectForUser | |||
| _AuthUser | _AuthUser | |||
| _AuthSubst | _AuthSubst | |||
| _AuthRole | _AuthRole | |||
| _AuthGroup | _AuthGroup | |||
| _I_Project | _I_Project | |||
| _ProjObjRoot | _ProjObjRoot |
@VDM.viewType: #COMPOSITE
@AbapCatalog.sqlViewName: 'IPPMPROJECT4UPD'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@ObjectModel: {
semanticKey: [ 'Project' ],
representativeKey: 'ProjectUUID',
alternativeKey: [ { id : 'ProjectSummaryTaskUUID', uniqueness: #UNIQUE, element: 'ProjectSummaryTaskUUID' } ],
usageType: {
serviceQuality: #B,
dataClass: #MIXED,
sizeCategory: #L
}
}
@UI.headerInfo: {
typeName: 'Project',
typeNamePlural: 'Projects'
}
// do not use directly from within EPPM for single projects.
// Use methods from /S4PPM/CL_CHECK_PRJ_FOR_WRITE instead for buffered access
@EndUserText.label: 'Lists all projects which can be updated'
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
define view I_PPM_ProjectForUpdate as select from I_PPM_ProjectSummaryTask
association [0..1] to I_EnterpriseProjectForUser as _EnterpriseProjectForUser on _EnterpriseProjectForUser.ProjectUUID = $projection.ProjectUUID
// associations to authorization views need to be overwritten, as we need to check for write here
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' )
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' )
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' )
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' )
{
key ProjectUUID,
ProjectSummaryTaskUUID,
Project,
ProjectInternalID,
WBSElementInternalID,
ProjectProcessingStatus,
ProjectCategory,
EntProjectIsConfidential,
EnterpriseProjectServiceOrg,
cast( 'X' as boolean preserving type ) as IsEditable,
_ProjectName,
_EnterpriseProjectForUser,
_AuthUser,
_AuthSubst,
_AuthRole,
_AuthGroup,
_I_Project,
_ProjObjRoot
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PPM_PROJECTSUMMARYTASK"
],
"ASSOCIATED":
[
"I_ENTERPRISEPROJECTFORUSER",
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH",
"I_PPM_TEXT",
"I_PROJECTBASICDATA",
"I_WBSELEMENTBASICDATA"
],
"BASE":
[
"I_PPM_PROJECTSUMMARYTASK"
],
"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