I_PPM_MostCriticalProject

DDL: I_PPM_MOSTCRITICALPROJECT SQL: IPPMMOSTCRITPRO Type: view COMPOSITE

My Projects - Critical

I_PPM_MostCriticalProject is a Composite CDS View that provides data about "My Projects - Critical" in SAP S/4HANA. It reads from 8 data sources and exposes 18 fields with key field ProjectUUID. It has 1 association to related views.

Data Sources (8)

SourceAliasJoin Type
I_PPM_IsMyProject IsMyProject left_outer
I_PPM_IsMyProjectAsSubstitute IsMyProjectAsSubstitute left_outer
I_PPM_ItemInfo Item left_outer
I_PPM_ProjectMilestEssent milestEssent left_outer
I_PPM_Task MilestEssentTask left_outer
I_PPM_Text NameUserLanguage left_outer
I_PPM_ProjectSummaryTask Project from
I_PPM_ObjectSeverity Severity left_outer

Associations (1)

CardinalityTargetAliasCondition
[0..1] I_PPM_ProjectPhaseCurrent _ProjectPhaseCurrent $projection.ProjectUUID = _ProjectPhaseCurrent.ProjectUUID

Annotations (13)

NameValueLevelField
EndUserText.label My Projects - Critical view
VDM.viewType #COMPOSITE view
AbapCatalog.sqlViewName IPPMMOSTCRITPRO view
AbapCatalog.compiler.compareFilter true view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MIXED view
ClientHandling.algorithm #SESSION_VARIABLE view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
AccessControl.personalData.blocking #NOT_REQUIRED view
ObjectModel.representativeKey ProjectUUID view
Metadata.allowExtensions true view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view

Fields (18)

KeyFieldSource TableSource FieldDescription
KEY ProjectUUID I_PPM_ProjectSummaryTask ProjectUUID
ProjectSummaryTaskUUID I_PPM_ProjectSummaryTask ProjectSummaryTaskUUID
PortfolioItemUUID I_PPM_ItemInfo PortfolioItemUUID
PortfolioUUID I_PPM_ItemInfo PortfolioUUID
ProjectProcessingStatus I_PPM_ProjectSummaryTask ProjectProcessingStatus
ProjectNameUserLanguage I_PPM_Text ObjectName
ProjectNameMasterLanguage ProjectName
Project Project
ProjectType ProjectType
LaunchDate I_PPM_Task LatestFinishDate
CriticalityCode I_PPM_ObjectSeverity CriticalityCode
Severity I_PPM_ObjectSeverity Severity
_SeverityText I_PPM_ObjectSeverity _SeverityText
_ProjectPhaseCurrent _ProjectPhaseCurrent
_AuthUser I_PPM_ProjectSummaryTask _AuthUser
_AuthSubst I_PPM_ProjectSummaryTask _AuthSubst
_AuthRole I_PPM_ProjectSummaryTask _AuthRole
_AuthGroup I_PPM_ProjectSummaryTask _AuthGroup
@EndUserText.label: 'My Projects - Critical'
@VDM.viewType: #COMPOSITE
@AbapCatalog.sqlViewName: 'IPPMMOSTCRITPRO'
@AbapCatalog.compiler.compareFilter: true

@ObjectModel.usageType.serviceQuality: #X
// size L because of underlying data to be searched

@ObjectModel.usageType.sizeCategory:  #L
@ObjectModel.usageType.dataClass:  #MIXED

@ClientHandling.algorithm: #SESSION_VARIABLE

@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@AccessControl.personalData.blocking: #NOT_REQUIRED

@ObjectModel.semanticKey:  [ 'Project' ] 
@ObjectModel.representativeKey: 'ProjectUUID'
@ObjectModel.alternativeKey: [{
    id: 'ProjectSummaryTaskUUID',
    element: ['ProjectSummaryTaskUUID'],
    uniqueness: #UNIQUE
}]

@Metadata.allowExtensions: true
@VDM.lifecycle.contract.type:  #SAP_INTERNAL_API

define view I_PPM_MostCriticalProject as select from I_PPM_ProjectSummaryTask as Project

    // retrieve portfolio info

    left outer join I_PPM_ItemInfo as Item 
                    on ( Project.ProjectUUID = Item.ProjectUUID )  
                                                    
    // retrieve Milestone info                                       

    left outer join I_PPM_ProjectMilestEssent as milestEssent
                    on ( Project.ProjectUUID = milestEssent.ProjectUUID )  
    left outer join I_PPM_Task as MilestEssentTask     
                    on ( MilestEssentTask.TaskUUID = milestEssent.TaskUUID )
                    
    // Retrieve current phase

//    left outer join I_PPM_ProjectPhaseCurrent as PhaseCurrent     

//                    on ( Project.ProjectUUID = PhaseCurrent.ProjectUUID ) 

                     
//    left outer join I_PPM_Task as PhaseCurrentTask     

//                    on ( PhaseCurrentTask.TaskUUID = PhaseCurrent.TaskUUID )                     

//    left outer join I_PPM_Text as PhaseCurrentTextUserLang 

//                    on ( PhaseCurrentTextUserLang.LanguageCode = $session.system_language )

//                   and ( PhaseCurrentTextUserLang.ReferencedObjectUUID = PhaseCurrent.TaskUUID )

                   
//    left outer join I_PPM_Text as PhaseCurrentTextMasterLang 

//                    on (PhaseCurrentTextMasterLang.LanguageCode = Project.MasterLanguage )

//                   and ( PhaseCurrentTextMasterLang.ReferencedObjectUUID = PhaseCurrent.TaskUUID )                    

                    
    // Severity                                         

    left outer join I_PPM_ObjectSeverity as Severity 
                    on ( Project.ProjectSummaryTaskUUID = Severity.ReferencedObjectUUID )
                    
    left outer join I_PPM_Text as NameUserLanguage 
                 on ( NameUserLanguage.LanguageCode = $session.system_language )
                and ( NameUserLanguage.ReferencedObjectUUID = Project.ProjectSummaryTaskUUID )
                
     // 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
                    
    association [0..1] to I_PPM_ProjectPhaseCurrent as _ProjectPhaseCurrent
                      on $projection.ProjectUUID      = _ProjectPhaseCurrent.ProjectUUID 
    
{
    @Consumption.semanticObject: 'EnterpriseProject'
    key Project.ProjectUUID, 

    Project.ProjectSummaryTaskUUID,
    
    // fields only used by navigation

    Item.PortfolioItemUUID,
    Item.PortfolioUUID,
    
    Project.ProjectProcessingStatus,    
 
    NameUserLanguage.ObjectName as ProjectNameUserLanguage,

    ProjectName as ProjectNameMasterLanguage,
    
    @EndUserText: { label: 'Project name', quickInfo: 'Project name' }

    cast( case 
           when NameUserLanguage.ObjectName > '' then 
                NameUserLanguage.ObjectName
           else ProjectName           
    end as /s4ppm/tv_project_name preserving type ) as ProjectName,

    Project, 
           
    ProjectType,
    
//    ProjectTypeName,


//    cast( case 

//           when PhaseCurrentTextUserLang.ObjectName > '' then 

//                PhaseCurrentTextUserLang.ObjectName

//           else PhaseCurrentTask.TaskName

//           end

//    as /s4ppm/tv_description preserving type ) as CurrentPhaseName,

//        

//    PhaseCurrentTextUserLang.ObjectName as CurrentPhaseNameUserLanguage,

//    

//// replaced by primary DB fallback in 1911    

////    PhaseCurrentTextMasterLang.ObjectName as CurrentPhaseNameMasterLanguage,

//    PhaseCurrentTask.TaskName as CurrentPhaseNameMasterLanguage,

//    

//    @Semantics.businessDate.to: true   

//// 

//    PhaseCurrentTask.LatestFinishDate as CurrentPhaseEndDate, 

   
    @Semantics.businessDate.at: true
// r     

      MilestEssentTask.LatestFinishDate as LaunchDate,
       
    // criticality

    Severity.CriticalityCode,   
    
    // Severtiy  

    // @ObjectModel.foreignKey.association: '_SeverityText' // only on UI layer to avoid ATC errors

    @ObjectModel.text.association: '_SeverityText'   
    Severity.Severity,
    Severity._SeverityText,

    _ProjectPhaseCurrent,
    
    Project._AuthUser,
    Project._AuthSubst,
    Project._AuthRole,
    Project._AuthGroup  
          
} where (
// All active Status: Partially Released, Released, Released (Processing has begun), Locked, Locked (Released First)

 ProjectProcessingStatus between '10' and '21'
        ) and Project.ProjectVersionNumber = '' // active projects do not have a version!     

        and ( IsMyProject.IsMyProject = 'X' // only show 'My' or MeAsSubstitute

            or IsMyProjectAsSubstitute.IsMyProject = 'X' )    
                                                                                                                                                                                                           
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 /*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PPM_ISMYPROJECT",
"I_PPM_ISMYPROJECTASSUBSTITUTE",
"I_PPM_ITEMINFO",
"I_PPM_OBJECTSEVERITY",
"I_PPM_PROJECTMILESTESSENT",
"I_PPM_PROJECTSUMMARYTASK",
"I_PPM_TASK",
"I_PPM_TEXT"
],
"ASSOCIATED":
[
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH",
"I_PPM_PROJECTPHASECURRENT",
"I_PPM_SEVERITYTEXT"
],
"BASE":
[
"I_PPM_OBJECTSEVERITY",
"I_PPM_PROJECTSUMMARYTASK"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/