P_PPM_ProjectList

DDL: P_PPM_PROJECTLIST SQL: PPPMPROJECTLIST Type: view COMPOSITE

P_PPM_ProjectList is a Composite CDS View in SAP S/4HANA. It reads from 7 data sources and exposes 50 fields with key fields ProjectUUID, ProjectSummaryTaskUUID. It has 6 associations to related views.

Data Sources (7)

SourceAliasJoin Type
I_PPM_IsMyProject IsMyProject left_outer
I_PPM_IsMyProjectAsSubstitute IsMyProjectAsSubstitute left_outer
I_PPM_Text NameUserLanguage left_outer
I_PPM_ProjectSummaryTask Project from
I_PPM_ProTypeText ProTypeName left_outer
I_PPM_ProTypeText TypeNameMasterLanguage left_outer
I_PPM_User User inner

Associations (6)

CardinalityTargetAliasCondition
[0..1] I_PPM_ProjectResponsible _ProjectManager ( ( _ProjectManager.ProjectUUID = $projection.ProjectUUID ) and ( _ProjectManager.BusinessPartnerUUID = $projection.MyBusinessPartnerUUID ) )
[0..1] I_PPM_Substitute _Substitute ( ( _Substitute.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID ) and ( _Substitute.SubstituteUser = $session.user ) )
[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' )

Annotations (10)

NameValueLevelField
VDM.private true view
VDM.viewType #COMPOSITE view
AbapCatalog.sqlViewName PPPMPROJECTLIST view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.representativeKey ProjectUUID view

Fields (50)

KeyFieldSource TableSource FieldDescription
KEY ProjectUUID I_PPM_ProjectSummaryTask ProjectUUID
KEY ProjectSummaryTaskUUID I_PPM_ProjectSummaryTask ProjectSummaryTaskUUID
ProjectCategory I_PPM_ProjectSummaryTask ProjectCategory
ProjectLastChangedByUser I_PPM_ProjectSummaryTask ProjectLastChangedByUser
ProjectLastChangedDateTime I_PPM_ProjectSummaryTask ProjectLastChangedDateTime
ProjectReasonCode I_PPM_ProjectSummaryTask ProjectReasonCode
ProjectName I_PPM_ProjectSummaryTask ProjectName
MasterLanguage I_PPM_ProjectSummaryTask MasterLanguage
IsSummaryTaskEnabled I_PPM_ProjectSummaryTask IsSummaryTaskEnabled
ProjectLocation I_PPM_ProjectSummaryTask ProjectLocation
PlanVersion I_PPM_ProjectSummaryTask PlanVersion
OrganizationalUnitObjectType I_PPM_ProjectSummaryTask OrganizationalUnitObjectType
OrganizationalUnit I_PPM_ProjectSummaryTask OrganizationalUnit
ProjectEarliestOrLatest I_PPM_ProjectSummaryTask ProjectEarliestOrLatest
EarliestStartDateTime I_PPM_ProjectSummaryTask EarliestStartDateTime
ActualStartDateTime I_PPM_ProjectSummaryTask ActualStartDateTime
LatestStartDateTime I_PPM_ProjectSummaryTask LatestStartDateTime
EarliestFinishDateTime I_PPM_ProjectSummaryTask EarliestFinishDateTime
ActualFinishDateTime I_PPM_ProjectSummaryTask ActualFinishDateTime
LatestFinishDateTime I_PPM_ProjectSummaryTask LatestFinishDateTime
StartConstraintDateTime I_PPM_ProjectSummaryTask StartConstraintDateTime
FinishConstraintDateTime I_PPM_ProjectSummaryTask FinishConstraintDateTime
ProjectElementDuration I_PPM_ProjectSummaryTask ProjectElementDuration
DurationUnit I_PPM_ProjectSummaryTask DurationUnit
ProjectType I_PPM_ProjectSummaryTask ProjectType
Project I_PPM_ProjectSummaryTask Project
ReleaseDateTime I_PPM_ProjectSummaryTask ReleaseDateTime
ProjectInternalID I_PPM_ProjectSummaryTask ProjectInternalID
WBSElementInternalID I_PPM_ProjectSummaryTask WBSElementInternalID
ProjectProcessingStatus I_PPM_ProjectSummaryTask ProjectProcessingStatus
PriorityCode I_PPM_ProjectSummaryTask PriorityCode
ProjectVersionNumber I_PPM_ProjectSummaryTask ProjectVersionNumber
CreatedByUser I_PPM_ProjectSummaryTask CreatedByUser
CreationDateTime I_PPM_ProjectSummaryTask CreationDateTime
MyBusinessPartnerUUID I_PPM_User BusinessPartnerUUID
IsMyProjectendasIsMyProject
IsMyProjectendasIsMyProjectAsSubstitute
ProjectNameUserLanguage I_PPM_Text ObjectName
ProjectNameMasterLanguage ProjectName
ProjectTypeName I_PPM_ProTypeText ProjectTypeName
ProjectTypeNameUserLanguage I_PPM_ProTypeText ProjectTypeName
ProjectTypeNameMasterLanguage I_PPM_ProTypeText ProjectTypeName
_AuthUser _AuthUser
_AuthSubst _AuthSubst
_AuthRole _AuthRole
_AuthGroup _AuthGroup
_I_Project _I_Project
_ProjObjRoot _ProjObjRoot
_ProjectManager _ProjectManager
_Substitute _Substitute
@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
    
}  
       
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 /*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PPM_ISMYPROJECT",
"I_PPM_ISMYPROJECTASSUBSTITUTE",
"I_PPM_PROJECTSUMMARYTASK",
"I_PPM_PROTYPETEXT",
"I_PPM_TEXT",
"I_PPM_USER"
],
"ASSOCIATED":
[
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH",
"I_PPM_PROJECTRESPONSIBLE",
"I_PPM_SUBSTITUTE",
"I_PROJECTBASICDATA",
"I_WBSELEMENTBASICDATA"
],
"BASE":
[
"I_PPM_PROJECTSUMMARYTASK"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/