P_PPM_PROJECT

CDS View

P_PPM_PROJECT is a CDS View in S/4HANA. It contains 6 fields. 1 CDS views read from this table.

CDS Views using this table (1)

ViewTypeJoinVDMDescription
I_PPM_Project view from COMPOSITE Project

Fields (6)

KeyField CDS FieldsUsed in Views
KEY ProjectUUID ProjectUUID 1
ProjectCategory ProjectCategory 1
ProjectInternalID ProjectInternalID 1
ProjectName ProjectName 1
ResponsibleCostCenter ResponsibleCostCenter 1
WBSElementInternalID WBSElementInternalID 1
@VDM.private: true
@VDM.viewType: #COMPOSITE

@AbapCatalog: {
    sqlViewName: 'PPPMPROJECT',
    compiler.compareFilter: true,
    preserveKey:true
}


@ClientHandling.algorithm: #SESSION_VARIABLE

@AccessControl: {
    authorizationCheck:     #NOT_REQUIRED,
    personalData.blocking:  #BLOCKED_DATA_EXCLUDED,
    privilegedAssociations: ['_ProjectType']
}

@ObjectModel: {
   semanticKey:       [ 'Project' ],
   representativeKey: 'ProjectUUID',
   alternativeKey: [ { id : 'ProjectSummaryTaskUUID', uniqueness: #UNIQUE, element: 'ProjectSummaryTaskUUID' },
                     { id : 'ProjectInternalID'     , uniqueness: #UNIQUE, element: 'ProjectInternalID' }       ],
   usageType: {
     serviceQuality:  #X,
     dataClass:       #MIXED,
     sizeCategory:    #L
   }
}

/* @EndUserText.label: 'Project'  */
define view P_PPM_Project
  as select from    I_PPM_ProjectSummaryTask                                  as Project
  /* PS Project */
    left outer join I_ProjectBasicData                                        as PS_Project              on(
                   PS_Project.ProjectInternalID = Project.ProjectInternalID
                 )

  /* PS Root WBS Element */
    left outer join I_WBSElementBasicData                                     as PS_RootWBS              on(
                   PS_RootWBS.WBSElementInternalID = Project.WBSElementInternalID
                 )

  /*  Essential milestone */
    left outer join I_PPM_ProjectMilestEssent                                 as MlstnEssential // Next only

                                                                                                         on(
                                                                                                           Project.ProjectUUID = MlstnEssential.ProjectUUID
                                                                                                         )

  /*  next released milestone */
    left outer join I_PPM_ProjectMilestRelNext                                as MlstnRelevant           on(
                Project.ProjectUUID = MlstnRelevant.ProjectUUID
              )

  /* Build association [0..1] to OverallStatusArea of Project */
    left outer join I_PPM_ProjectStatusArea                                   as OverallStatusArea       on  Project.ProjectUUID               = OverallStatusArea.ProjectUUID
                                                                                                         and OverallStatusArea.IsOverallStatus = 'X'

    
  // 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

  // Indicator for user being Project Steering Commitee Member

    left outer join I_PPM_TeamMemberIsInRole( P_ProjectRoleCategory : 'SCM' ) as IsPrjSteerMbr           on Project.ProjectUUID = IsPrjSteerMbr.ProjectUUID

  // Indicator for user being Project Steering Commitee Member

    left outer join I_PPM_TeamMemberIsInRole( P_ProjectRoleCategory : 'PFC' ) as IsPrjFinCtrlr           on Project.ProjectUUID = IsPrjFinCtrlr.ProjectUUID

  // Indicator for user being Project Manager

    left outer join I_PPM_TeamMemberIsInRole( P_ProjectRoleCategory : 'PM' )  as IsPrjManager            on Project.ProjectUUID = IsPrjManager.ProjectUUID

  association [0..1] to I_PPM_SingleResponsibleForProj                            as Responsible             on Responsible.ProjectSummaryTaskUUID = Project.ProjectSummaryTaskUUID

  association [0..*] to I_PPM_Task                 as _ProjectTask               on  _ProjectTask.ProjectUUID = $projection.ProjectUUID

  association [0..1] to I_PPM_ProjectProcgStatusVH as _ProcessingStatus          on  _ProcessingStatus.ProcessingStatus = $projection.ProcessingStatus
  association [0..*] to I_PPM_ProcessingStatusText as _ProcessingStatusText      on  _ProcessingStatusText.ProcessingStatus = $projection.ProcessingStatus
  association [0..1] to I_PPM_ProjectType          as _ProjectType               on  _ProjectType.ProjectType = $projection.ProjectType
  association [0..*] to I_PPM_ProTypeText          as _ProTypeName               on  _ProTypeName.ProjectType = $projection.ProjectType
  association [0..1] to I_PPM_Task                 as _NextEssentialMlstn        on  _NextEssentialMlstn.TaskUUID = $projection.NextEssentialMlstnUUID
                                                                                and  _NextEssentialMlstn.ProjectUUID = $projection.ProjectUUID
  association [0..1] to I_PPM_Task                 as _NextRelevantMlstn         on  _NextRelevantMlstn.TaskUUID = $projection.NextRelevantMlstnUUID
                                                                                and  _NextRelevantMlstn.ProjectUUID = $projection.ProjectUUID
  association [0..1] to I_BusinessUser             as _ProjectManager            on  _ProjectManager.BusinessPartnerUUID = $projection.ProjectManagerUUID
                                                                                
  association [0..*] to I_StatusObjectStatusBasic  as _StatusObjectData          on  _StatusObjectData.StatusObject = $projection.StatusObject

  association [0..1] to I_PPM_StatusAreaStatus     as _AreaStatus                on  _AreaStatus.Status = $projection.OverallProjectStatus
  association [0..*] to I_PPM_StatusAreaStatusText as _AreaStatusText            on  _AreaStatusText.Status = $projection.OverallProjectStatus
  association [0..1] to I_PPM_StatusAreaTrend      as _AreaTrend                 on  _AreaTrend.StatusTrend = $projection.StatusTrend
  association [0..*] to I_PPM_StatusAreaTrendText  as _AreaTrendText             on  _AreaTrendText.StatusTrend = $projection.StatusTrend

  association [0..*] to I_PPM_ProjectResponsible   as _ProjectResponsible        on  _ProjectResponsible.ProjectUUID = $projection.ProjectUUID
  association [0..1] to I_PPM_Substitute           as _Substitute                on  _Substitute.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID

  association [0..1] to I_PPM_TaskText             as _ProjectName               on  _ProjectName.TaskUUID = $projection.ProjectSummaryTaskUUID


  association [0..1] to I_ControllingArea          as _ControllingArea           on  _ControllingArea.ControllingArea = $projection.ControllingArea
  association [0..1] to I_CompanyCode              as _CompanyCode               on  _CompanyCode.CompanyCode = $projection.CompanyCode
  association [0..*] to I_CostCenter               as _CostCenter                on  _CostCenter.CostCenter      = $projection.CostCenter
                                                                                 and _CostCenter.ControllingArea = $projection.ControllingArea
  association [0..1] to I_Plant                    as _Plant                     on  _Plant.Plant = $projection.Plant
  association [0..1] to I_ProjectProfileCode       as _ProjectProfileCode        on  _ProjectProfileCode.ProjectProfileCode = $projection.ProjectProfileCode
  association [0..1] to I_FunctionalArea           as _FunctionalArea            on  _FunctionalArea.FunctionalArea = $projection.FunctionalArea
  association [0..*] to I_ProfitCenter             as _ProfitCenter              on  _ProfitCenter.ProfitCenter    = $projection.ProfitCenter
                                                                                 and _ProfitCenter.ControllingArea = $projection.ControllingArea
  association [0..1] to I_Projecttype              as _EnterpriseProjectType     on  _EnterpriseProjectType.ProjectType = $projection.EnterpriseProjectType
  association [0..*] to I_Projecttypetext          as _EnterpriseProjectTypeText on  _EnterpriseProjectTypeText.ProjectType = $projection.EnterpriseProjectType
  
{
  key Project.ProjectUUID,
  key Project.ProjectSummaryTaskUUID,

      @EndUserText: {     label:    'Project ID',
                      quickInfo:    'Unique identification of the project'
      }
      Project.Project,
      Project.ProjectName,

      Project.ProjectInternalID,
      Project.WBSElementInternalID,

      @ObjectModel.foreignKey.association: '_ProcessingStatus'
      @ObjectModel.text.association: '_ProcessingStatusText'
      Project.ProjectProcessingStatus                      as ProcessingStatus,

      Project.ProjectTemplateUUID,
      Project.ProjectCategory,
      
      @ObjectModel.foreignKey.association: '_StatusObjectData'
      PS_Project.ProjectObject                             as StatusObject,
//    hierarchical settlement changes

      PS_Project.EntProjectSettlementType,
      PS_RootWBS.EntProjectSettlementElement,
      
// result analysis key changes

      PS_RootWBS.ResultAnalysisInternalID,
       
      PS_Project.Location,
      PS_Project.ProjectCurrency,
      // Tax Jurisdiction Code

      PS_Project.TaxJurisdiction,
      // TODO: text and code list

      PS_Project.ProjectProfileCode,
      // TODO: foreing key

      PS_RootWBS.ResponsibleCostCenter,
      // TODO: foreing key

      PS_RootWBS.ProfitCenter,
      // TODO: text and code list

      PS_RootWBS.CompanyCode,
      PS_RootWBS.ControllingArea,
      PS_RootWBS.FunctionalArea,
      PS_RootWBS.Plant,
      PS_RootWBS.FactoryCalendar,
      PS_RootWBS.CostingSheet,
      PS_RootWBS.CostCenter,
      PS_RootWBS.WBSElementIsBillingElement                as IsBillingRelevant,
      PS_RootWBS.WBSIsStatisticalWBSElement                as IsStatistical,
      //  PS_RootWBS.WBSElementObject,

      PS_RootWBS.InvestmentProfile,
      //  PS_RootWBS.WBSIsStatisticalWBSElement,

      // 2005 Functional Location Changes

      PS_RootWBS.FunctionalLocation,

      /* Overall Project Status information */
      OverallStatusArea.StatusAreaUUID                     as OverallStatusAreaUUID,
      OverallStatusArea.Status                             as OverallProjectStatus, // obsolete should be removed

      OverallStatusArea.Criticality                        as OverallProjectStsCriticality, // obsolete should be removed

      OverallStatusArea.StatusTrend                        as StatusTrend, // obsolete should be removed


      /*  Admin data needed for Draft */
      Project.ProjectLastChangedByUser                     as LastChangedByUser,
      Project.ProjectLastChangedDateTime                   as LastChangeDateTime,
      Project.CreatedByUser,
      Project.CreationDateTime,

      Project.MasterLanguage,

      @ObjectModel.foreignKey.association: '_ProjectType'
      Project.ProjectType,
      Project.ProjectVersionNumber,

      Project.PriorityCode,
      //2102 Ent Project Multiple SO item indicator

      Project.EntProjIsMultiSlsOrdItmsEnbld,
      
      @ObjectModel.foreignKey.association: '_EnterpriseProjectType'
      @ObjectModel.text.association: '_EnterpriseProjectTypeText'
      PS_RootWBS.ProjectType                               as EnterpriseProjectType,
      
   

      @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,

      @EndUserText: {     label:    'My Project (Steering Committee Member)',
                      quickInfo:    'My Project (Steering Committee Member)'
      }
      case when IsPrjSteerMbr.IsInRoleCategory is null
       then
          ' '
       else
          IsPrjSteerMbr.IsInRoleCategory
       end                                                 as IsProjectSteeringCommitteeMbr,

      @EndUserText: {     label:    'My Project (Project Financial Controller)',
                      quickInfo:    'My Project (Project Financial Controller)'
      }
      case when IsPrjFinCtrlr.IsInRoleCategory is null
       then
          ' '
       else
          IsPrjFinCtrlr.IsInRoleCategory
       end                                                 as IsProjectFinancialController,

      @EndUserText: {     label:    'My Project (Project Manager)',
                      quickInfo:    'My Project (Project Manager)'
      }
      case when IsPrjManager.IsInRoleCategory is null
       then
          ' '
       else
          IsPrjManager.IsInRoleCategory
       end                                                 as EntProjectIsProjectManager,

      Responsible.BusinessPartnerUUID                      as ProjectManagerUUID,

      @EndUserText: {     label:    'Project Start',
                      quickInfo:    'Project Start'
      }
      Project.LatestStartDate                              as ProjectStartDate,


      @EndUserText: {     label:    'Project Finish',
                      quickInfo:    'Project Finish'
      }
      Project.LatestFinishDate                             as ProjectEndDate,   
         
      
      Project.ForecastedStartDate                          as ForecastedStartDate,

      @EndUserText: {     label:    'Forecasted Finish',
                      quickInfo:    'Forecasted Finish'
      }
      Project.ForecastedStartDate                          as ForecastedEndDate,

      Project.ProjectElementDuration,
      //  Project.StartConstraintDateTime,

      //  Project.FinishConstraintDateTime,

      //  Project.EarliestStartDateTime,

      //  Project.ActualStartDateTime,

      //  Project.LatestStartDateTime as PlannedStartDate,

      //  Project.EarliestFinishDateTime,

      //  Project.ActualFinishDateTime,

      //  Project.LatestFinishDateTime as PlannedFinishDate,

      
      //CE2011 ACTUAL DATES

      Project.ActualStartDate                              as  ActualStartDate,
      Project.ActualFinishDate                             as  ActualEndDate,
      //CE2011 ACTUAL DATES

      

      /* Essential milestone */
      MlstnEssential.TaskUUID                              as NextEssentialMlstnUUID,

      /* Next released milestone */
      MlstnRelevant.TaskUUID                               as NextRelevantMlstnUUID,

      PS_Project.AvailabilityControlProfile,
      PS_Project.AvailabilityControlIsActive,
      
      //CE2208 Enabling Project Stock

      PS_Project.EntProjHasProjectStockEnabled,
      

      /* Assocations */
      _ProjectTask,
      _ProcessingStatus,
      _ProcessingStatusText,
      _ProjectType,
      _ProTypeName,
      _NextEssentialMlstn,
      _NextRelevantMlstn,
      _ProjectManager,
      _ProjectResponsible,
      _Substitute,
      _StatusObjectData,
      _AreaStatus,
      _AreaStatusText,
      _AreaTrend,
      _AreaTrendText,
      _ProjectName,
      _ControllingArea,
      _ResponsibleCostCenter,
      _CompanyCode,
      _CostCenter,
      _Plant,
      _ProjectProfileCode,
      _FunctionalArea,
      _ProfitCenter,
      _Priority,
      _PriorityText,
      _EnterpriseProjectType,
      _EnterpriseProjectTypeText,
      //hierarchical settlement changes

      _EntProjectSettlementType,

      Project._CreatedByUser,
      Project._ProjectLastChangedByUser,

      Project._AuthUser,
      Project._AuthSubst,
      Project._AuthRole,
      Project._AuthGroup,

      Project._I_Project,
      Project._ProjObjRoot

}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PPM_ISMYPROJECT",
"I_PPM_ISMYPROJECTASSUBSTITUTE",
"I_PPM_PROJECTMILESTESSENT",
"I_PPM_PROJECTMILESTRELNEXT",
"I_PPM_PROJECTSTATUSAREA",
"I_PPM_PROJECTSUMMARYTASK",
"I_PPM_SINGLERESPONSIBLEFORPROJ",
"I_PPM_TEAMMEMBERISINROLE",
"I_PROJECTBASICDATA",
"I_WBSELEMENTBASICDATA"
],
"ASSOCIATED":
[
"I_BUSINESSUSER",
"I_COMPANYCODE",
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_ENTPROJECTSETTLEMENTTYPE",
"I_FUNCTIONALAREA",
"I_PLANT",
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH",
"I_PPM_PRIORITY",
"I_PPM_PRIORITYTEXT",
"I_PPM_PROCESSINGSTATUSTEXT",
"I_PPM_PROJECTPROCGSTATUSVH",
"I_PPM_PROJECTRESPONSIBLE",
"I_PPM_PROJECTTYPE",
"I_PPM_PROTYPETEXT",
"I_PPM_SINGLERESPONSIBLEFORPROJ",
"I_PPM_STATUSAREASTATUS",
"I_PPM_STATUSAREASTATUSTEXT",
"I_PPM_STATUSAREATREND",
"I_PPM_STATUSAREATRENDTEXT",
"I_PPM_SUBSTITUTE",
"I_PPM_TASK",
"I_PPM_TASKTEXT",
"I_PPM_USER",
"I_PROFITCENTER",
"I_PROJECTBASICDATA",
"I_PROJECTPROFILECODE",
"I_PROJECTTYPE",
"I_PROJECTTYPETEXT",
"I_STATUSOBJECTSTATUSBASIC",
"I_USER",
"I_WBSELEMENTBASICDATA"
],
"BASE":
[
"I_PPM_PROJECTSUMMARYTASK",
"I_PROJECTBASICDATA",
"I_WBSELEMENTBASICDATA"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/