P_PPM_PROJECTLIST

CDS View

P_PPM_PROJECTLIST is a CDS View in S/4HANA. It contains 11 fields. 3 CDS views read from this table.

CDS Views using this table (3)

ViewTypeJoinVDMDescription
I_PPM_LastUsedProject view from COMPOSITE Display Last Used Projects
I_PPM_MeAsSubstituteProjects view from COMPOSITE My Projects - As a Substitute
I_PPM_MyActiveProjects view from COMPOSITE My Projects – Active

Fields (11)

KeyField CDS FieldsUsed in Views
KEY ProjectUUID ProjectUUID 3
_AuthGroup _AuthGroup 3
_AuthRole _AuthRole 3
_AuthSubst _AuthSubst 3
_AuthUser _AuthUser 3
Project Project 2
ProjectInternalID ProjectInternalID 1
ProjectProcessingStatus ProjectProcessingStatus 1
ProjectSummaryTaskUUID ProjectSummaryTaskUUID 3
ProjectType ProjectType 2
ProjectTypeName ProjectTypeName 2
@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
    
}