I_PPM_ProjectForUpdate

DDL: I_PPM_PROJECTFORUPDATE SQL: IPPMPROJECT4UPD Type: view COMPOSITE

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)

SourceAliasJoin Type
I_PPM_ProjectSummaryTask I_PPM_ProjectSummaryTask from

Associations (5)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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":""
}
}*/