P_PPM_PrStCmrProjByKeyFigures

DDL: P_PPM_PRSTCMRPROJBYKEYFIGURES SQL: PPMPROJBYFIG Type: view COMPOSITE

P_PPM_PrStCmrProjByKeyFigures is a Composite CDS View in SAP S/4HANA. It reads from 2 data sources (I_ProjectOverallCost, I_PPM_ProjectSummaryTask) and exposes 55 fields with key fields ProjectUUID, ProjectFinPostingIsAvailable. It has 9 associations to related views.

Data Sources (2)

SourceAliasJoin Type
I_ProjectOverallCost _ProjectOverallCost left_outer
I_PPM_ProjectSummaryTask _ProjectSummary from

Associations (9)

CardinalityTargetAliasCondition
[0..1] I_PPM_Task _NextEssentialMlstn _NextEssentialMlstn.TaskUUID = $projection.NextEssentialMlstnUUID
[0..1] I_PPM_Task _NextRelevantMlstn _NextRelevantMlstn.TaskUUID = $projection.NextRelevantMlstnUUID
[0..*] I_ProjectProfileCodeText _ProjectProfileCodeText _ProjectProfileCodeText.ProjectProfileCode = $projection.ProjectProfileCode
[0..*] I_PPM_StatusAreaStatusText _AreaStatusText _AreaStatusText.Status = $projection.Status
[0..*] I_PPM_StatusAreaTrendText _AreaTrendText _AreaTrendText.StatusTrend = $projection.StatusTrend
[0..*] I_PPM_ProcessingStatusText _ProcessingStatusText _ProcessingStatusText.ProcessingStatus = $projection.ProcessingStatus
[0..1] I_PPM_TaskText _MlstnRelevantName _MlstnRelevantName.TaskUUID = $projection.NextRelevantMlstnUUID
[0..1] I_PPM_TaskText _NextEssentialMlstnName _NextEssentialMlstnName.TaskUUID = $projection.NextEssentialMlstnUUID
[0..*] I_Projecttypetext _ProjectTypeText $projection.ProjectType = _ProjectTypeText.ProjectType

Annotations (10)

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

Fields (55)

KeyFieldSource TableSource FieldDescription
KEY ProjectUUID I_PPM_ProjectSummaryTask ProjectUUID
KEY ProjectFinPostingIsAvailable
ProjectInternalID I_PPM_ProjectSummaryTask ProjectInternalID
Project _Project ProjectExternalID
ProjectSummaryTaskUUID I_PPM_ProjectSummaryTask ProjectSummaryTaskUUID
WBSElementInternalID I_PPM_ProjectSummaryTask WBSElementInternalID
ProjectType PS_RootWBS ProjectType
ProcessingStatus I_PPM_ProjectSummaryTask ProjectProcessingStatus
PriorityCode I_PPM_ProjectSummaryTask PriorityCode
ProjectStartDate I_PPM_ProjectSummaryTask LatestStartDate
ProjectEndDate I_PPM_ProjectSummaryTask LatestFinishDate
IsProjectSteeringCommitteeMbr IsPrjSteerMbr IsInRoleCategory
ProjectName ProjectName
StatusObject _Project ProjectObject
ControllingArea _Project ControllingArea
ProfitCenter _Project ProfitCenter
ProjectProfileCode _Project ProjectProfileCode
WBSElementProfitCenter PS_RootWBS ProfitCenter
OverallStatusAreaUUID _OverallStatusArea StatusAreaUUID
Status _OverallStatusArea Status
OverallProjectStsCriticality _OverallStatusArea Criticality
StatusTrend _OverallStatusArea StatusTrend
ProjectManagerUUID _Responsible BusinessPartnerUUID
ProjectManagerExternalID
BusinessPartnerFullName
NextEssentialMlstnUUID _MlstnEssential TaskUUID
NextEssentialMlstnDate _NextEssentialMlstn LatestFinishDate
NextEssentialMlstnName _NextEssentialMlstnName ObjectName
NextRelevantMlstnUUID _MlstnRelevant TaskUUID
NextRelevantMlstnDate _NextRelevantMlstn LatestFinishDate
NextRelevantMlstnName _MlstnRelevantName ObjectName
GlobalCurrency
ActualAmountInGlobalCurrency
PlanAmountInGlobalCurrency
CmtmtCostInGlobalCurrency
PredictedAmtInGlobalCurrency
BaselineAmtInGlobalCrcy
ActlPlnDiffAmtInGlobalCrcy
ActPlnDiffAmtInPercentage
_NextEssentialMlstn _NextEssentialMlstn
_NextRelevantMlstn _NextRelevantMlstn
_ProjectProfileCodeText _ProjectProfileCodeText
_AreaStatusText _AreaStatusText
_AreaTrendText _AreaTrendText
_ProcessingStatusText _ProcessingStatusText
_ProjectName _ProjectName
_MlstnRelevantName _MlstnRelevantName
_NextEssentialMlstnName _NextEssentialMlstnName
_ProjectTypeText _ProjectTypeText
_PriorityCodeText _PriorityText
_BusinessUser _Responsible _BusinessUser
_AuthUser I_PPM_ProjectSummaryTask _AuthUser
_AuthSubst I_PPM_ProjectSummaryTask _AuthSubst
_AuthRole I_PPM_ProjectSummaryTask _AuthRole
_AuthGroup I_PPM_ProjectSummaryTask _AuthGroup
@AbapCatalog.sqlViewName: 'PPMPROJBYFIG'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK


@ClientHandling.algorithm: #SESSION_VARIABLE

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

@VDM.viewType: #COMPOSITE
@VDM.private: true

define view P_PPM_PrStCmrProjByKeyFigures
  as select from  I_PPM_ProjectSummaryTask                                  as _ProjectSummary

    left outer join        I_ProjectOverallCost                                      as _ProjectOverallCost on _ProjectOverallCost.ProjectInternalID = _ProjectSummary.ProjectInternalID

  /* PS Project */
    left outer to one join I_ProjectBasicData                                        as _Project            on _Project.ProjectInternalID = _ProjectSummary.ProjectInternalID

  /* PS WBS Element */
    left outer to one join I_WBSElementBasicData                                     as PS_RootWBS          on PS_RootWBS.WBSElementInternalID = _ProjectSummary.WBSElementInternalID

  /*  Essential milestone */
    left outer to one join I_PPM_ProjectMilestEssent                                 as _MlstnEssential     on _ProjectSummary.ProjectUUID = _MlstnEssential.ProjectUUID

  /*  next released milestone */
    left outer to one join I_PPM_ProjectMilestRelNext                                as _MlstnRelevant      on _ProjectSummary.ProjectUUID = _MlstnRelevant.ProjectUUID

    left outer to one join I_PPM_ProjectStatusArea                                   as _OverallStatusArea  on  _ProjectSummary.ProjectUUID        = _OverallStatusArea.ProjectUUID
                                                                                                            and _OverallStatusArea.IsOverallStatus = 'X'

    left outer to one join I_PPM_SingleResponsibleForProj                            as _Responsible        on _Responsible.ProjectSummaryTaskUUID = _ProjectSummary.ProjectSummaryTaskUUID

  // Indicator for user being Project Steering Commitee Member

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


  association [0..1] to I_PPM_Task                 as _NextEssentialMlstn     on _NextEssentialMlstn.TaskUUID = $projection.NextEssentialMlstnUUID

  association [0..1] to I_PPM_Task                 as _NextRelevantMlstn      on _NextRelevantMlstn.TaskUUID = $projection.NextRelevantMlstnUUID


  association [0..*] to I_ProjectProfileCodeText   as _ProjectProfileCodeText on _ProjectProfileCodeText.ProjectProfileCode = $projection.ProjectProfileCode

  association [0..*] to I_PPM_StatusAreaStatusText as _AreaStatusText         on _AreaStatusText.Status = $projection.Status

  association [0..*] to I_PPM_StatusAreaTrendText  as _AreaTrendText          on _AreaTrendText.StatusTrend = $projection.StatusTrend

  association [0..*] to I_PPM_ProcessingStatusText as _ProcessingStatusText   on _ProcessingStatusText.ProcessingStatus = $projection.ProcessingStatus

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


  association [0..1] to I_PPM_TaskText             as _MlstnRelevantName      on _MlstnRelevantName.TaskUUID = $projection.NextRelevantMlstnUUID

  association [0..1] to I_PPM_TaskText             as _NextEssentialMlstnName on _NextEssentialMlstnName.TaskUUID = $projection.NextEssentialMlstnUUID

  association [0..*] to I_Projecttypetext          as _ProjectTypeText        on $projection.ProjectType = _ProjectTypeText.ProjectType

  //  association [0..*] to I_PPM_PriorityText         as _PriorityCodeText       on $projection.PriorityCode = _PriorityCodeText.PriorityCode

{
  key    _ProjectSummary.ProjectUUID,
  key    '1'                                                           as ProjectFinPostingIsAvailable,
         _ProjectSummary.ProjectInternalID,
         _Project.ProjectExternalID                                    as Project,
         _ProjectSummary.ProjectSummaryTaskUUID,
         _ProjectSummary.WBSElementInternalID,
         PS_RootWBS.ProjectType,
         _ProjectSummary.ProjectProcessingStatus                       as ProcessingStatus,
         _ProjectSummary.PriorityCode,

         _ProjectSummary.LatestStartDate                               as ProjectStartDate,
         _ProjectSummary.LatestFinishDate                              as ProjectEndDate,

         IsPrjSteerMbr.IsInRoleCategory                                as IsProjectSteeringCommitteeMbr,

         ProjectName,
         _Project.ProjectObject                                        as StatusObject,
         _Project.ControllingArea                                      as ControllingArea,
         _Project.ProfitCenter                                         as ProfitCenter,
         _Project.ProjectProfileCode,
         PS_RootWBS.ProfitCenter                                       as WBSElementProfitCenter,


         _OverallStatusArea.StatusAreaUUID                             as OverallStatusAreaUUID,
         _OverallStatusArea.Status,
         _OverallStatusArea.Criticality                                as OverallProjectStsCriticality, // obsolete should be removed

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


         //@ObjectModel.foreignKey.association: '_ProjectManager' commenting because to fix the ATC.

         _Responsible.BusinessPartnerUUID                              as ProjectManagerUUID,
         _Responsible._BPUsrExternalID.BPIdentificationNumber          as ProjectManagerExternalID,
         _Responsible._BusinessUser.PersonFullName                     as BusinessPartnerFullName,

         _MlstnEssential.TaskUUID                                      as NextEssentialMlstnUUID,

         _NextEssentialMlstn.LatestFinishDate                          as NextEssentialMlstnDate,
         _NextEssentialMlstnName.ObjectName                            as NextEssentialMlstnName,

         _MlstnRelevant.TaskUUID                                       as NextRelevantMlstnUUID,

         _NextRelevantMlstn.LatestFinishDate                           as NextRelevantMlstnDate,
         _MlstnRelevantName.ObjectName                                 as NextRelevantMlstnName,

         @Semantics.currencyCode:true
         _Project._ControllingArea.ControllingAreaCurrency             as GlobalCurrency,

         @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
         @DefaultAggregation: #SUM
         coalesce(_ProjectOverallCost.ActualAmountInGlobalCurrency, 0) as ActualAmountInGlobalCurrency,

         @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
         @DefaultAggregation: #SUM
         coalesce(_ProjectOverallCost.PlanAmountInGlobalCurrency, 0)   as PlanAmountInGlobalCurrency,

         @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
         @DefaultAggregation: #SUM
         coalesce(_ProjectOverallCost.CmtmtCostInGlobalCurrency, 0)    as CmtmtCostInGlobalCurrency,

         @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
         @DefaultAggregation: #SUM
         coalesce(_ProjectOverallCost.PredictedAmtInGlobalCurrency, 0) as PredictedAmtInGlobalCurrency,

         @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
         @DefaultAggregation: #SUM
         coalesce(_ProjectOverallCost.BaselineAmtInGlobalCrcy, 0)      as BaselineAmtInGlobalCrcy,

         @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
         @DefaultAggregation: #SUM
         coalesce(_ProjectOverallCost.ActlPlnDiffAmtInGlobalCrcy, 0)   as ActlPlnDiffAmtInGlobalCrcy,

         @DefaultAggregation: #SUM
         coalesce(_ProjectOverallCost.ActPlnDiffAmtInPercentage, 0)    as ActPlnDiffAmtInPercentage,

         _NextEssentialMlstn,
         _NextRelevantMlstn,

         // Text Associations

         _ProjectProfileCodeText,
         _AreaStatusText,
         _AreaTrendText,
         _ProcessingStatusText,
         _ProjectName,
         _MlstnRelevantName,
         _NextEssentialMlstnName,
         _ProjectTypeText,
         _PriorityText                                                 as _PriorityCodeText, // CE2011

         
         _Responsible._BusinessUser,
         _ProjectSummary._AuthUser,
         _ProjectSummary._AuthSubst,
         _ProjectSummary._AuthRole,
         _ProjectSummary._AuthGroup

}
where _Project.ProjectProfileCode <> 'YP01'
and _ProjectSummary.ProjectCategory <> '7'

//union all select from    I_PPM_ProjectSummaryTask                                  as _ProjectSummary

//

///* PS Project */

//  left outer to one join I_ProjectBasicData                                        as _Project           on _Project.ProjectInternalID = _ProjectSummary.ProjectInternalID

//

///* PS WBS Element */

//  left outer to one join I_WBSElementBasicData                                     as PS_RootWBS         on PS_RootWBS.WBSElementInternalID = _ProjectSummary.WBSElementInternalID

//

///*  Essential milestone */

//  left outer to one join I_PPM_ProjectMilestEssent                                 as _MlstnEssential    on _ProjectSummary.ProjectUUID = _MlstnEssential.ProjectUUID

//

///*  next released milestone */

//  left outer to one join I_PPM_ProjectMilestRelNext                                as _MlstnRelevant     on _ProjectSummary.ProjectUUID = _MlstnRelevant.ProjectUUID

//

//  left outer to one join I_PPM_ProjectStatusArea                                   as _OverallStatusArea on  _ProjectSummary.ProjectUUID        = _OverallStatusArea.ProjectUUID

//                                                                                                         and _OverallStatusArea.IsOverallStatus = 'X'

//

//  left outer to one join I_PPM_SingleResponsibleForProj                            as _Responsible       on _Responsible.ProjectSummaryTaskUUID = _ProjectSummary.ProjectSummaryTaskUUID

//

//// Indicator for user being Project Steering Commitee Member

//  left outer to one join I_PPM_TeamMemberIsInRole( P_ProjectRoleCategory : 'SCM' ) as IsPrjSteerMbr      on _ProjectSummary.ProjectUUID = IsPrjSteerMbr.ProjectUUID

//

//

//association [0..1] to I_PPM_Task                 as _NextEssentialMlstn     on _NextEssentialMlstn.TaskUUID = $projection.NextEssentialMlstnUUID

//

//association [0..1] to I_PPM_Task                 as _NextRelevantMlstn      on _NextRelevantMlstn.TaskUUID = $projection.NextRelevantMlstnUUID

//

//

//association [0..*] to I_ProjectProfileCodeText   as _ProjectProfileCodeText on _ProjectProfileCodeText.ProjectProfileCode = $projection.ProjectProfileCode

//

//association [0..*] to I_PPM_StatusAreaStatusText as _AreaStatusText         on _AreaStatusText.Status = $projection.Status

//

//association [0..*] to I_PPM_StatusAreaTrendText  as _AreaTrendText          on _AreaTrendText.StatusTrend = $projection.StatusTrend

//

//association [0..*] to I_PPM_ProcessingStatusText as _ProcessingStatusText   on _ProcessingStatusText.ProcessingStatus = $projection.ProcessingStatus

//

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

//

//association [0..1] to I_PPM_TaskText             as _MlstnRelevantName      on _MlstnRelevantName.TaskUUID = $projection.NextRelevantMlstnUUID

//

//association [0..1] to I_PPM_TaskText             as _NextEssentialMlstnName on _NextEssentialMlstnName.TaskUUID = $projection.NextEssentialMlstnUUID

//

//association [0..*] to I_Projecttypetext          as _ProjectTypeText        on $projection.ProjectType = _ProjectTypeText.ProjectType

//

////  association [0..*] to I_PPM_PriorityText         as _PriorityCodeText       on $projection.PriorityCode = _PriorityCodeText.PriorityCode

//{

//  key    _ProjectSummary.ProjectUUID,

//  key    '0' as ProjectFinPostingIsAvailable,

//         _ProjectSummary.ProjectInternalID,

//         _ProjectSummary.Project,

//         _ProjectSummary.ProjectSummaryTaskUUID,

//         _ProjectSummary.WBSElementInternalID,

//         PS_RootWBS.ProjectType,

//         _ProjectSummary.ProjectProcessingStatus           as ProcessingStatus,

//         _ProjectSummary.PriorityCode,

//

//         _ProjectSummary.LatestStartDate                   as ProjectStartDate,

//         _ProjectSummary.LatestFinishDate                  as ProjectEndDate,

//

//         IsPrjSteerMbr.IsInRoleCategory                    as IsProjectSteeringCommitteeMbr,

//

//         ProjectName,

//         _Project.ProjectObject                            as StatusObject,

//         _Project.ControllingArea                          as ControllingArea,

//         _Project.ProfitCenter                             as ProfitCenter,

//         _Project.ProjectProfileCode,

//         PS_RootWBS.ProfitCenter                           as WBSElementProfitCenter,

//

//

//         _OverallStatusArea.StatusAreaUUID                 as OverallStatusAreaUUID,

//         _OverallStatusArea.Status,

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

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

//

//         //@ObjectModel.foreignKey.association: '_ProjectManager' commenting because to fix the ATC.

//         _Responsible.BusinessPartnerUUID                  as ProjectManagerUUID,

//         _Responsible._BusinessUser.PersonFullName         as BusinessPartnerFullName,

//         _Responsible._BusinessUser.AuthorizationGroup,

//

//         _MlstnEssential.TaskUUID                          as NextEssentialMlstnUUID,

//

//         _NextEssentialMlstn.LatestFinishDate              as NextEssentialMlstnDate,

//         _NextEssentialMlstnName.ObjectName                as NextEssentialMlstnName,

//

//         _MlstnRelevant.TaskUUID                           as NextRelevantMlstnUUID,

//

//         _NextRelevantMlstn.LatestFinishDate               as NextRelevantMlstnDate,

//         _MlstnRelevantName.ObjectName                     as NextRelevantMlstnName,

//

//         @Semantics.currencyCode:true

//         _Project._ControllingArea.ControllingAreaCurrency as GlobalCurrency,

//

//         @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }

//         @DefaultAggregation: #SUM

//         cast ( 0 as fis_ksl )      as ActualAmountInGlobalCurrency,

//

//         @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }

//         @DefaultAggregation: #SUM

//         cast ( 0 as fis_ksl )      as PlanAmountInGlobalCurrency,

//

//         @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }

//         @DefaultAggregation: #SUM

//         cast ( 0 as fis_ksl )      as CmtmtCostInGlobalCurrency,

//

//         @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }

//         @DefaultAggregation: #SUM

//         cast ( 0 as fis_ksl )      as PredictedAmtInGlobalCurrency,

//

//         @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }

//         @DefaultAggregation: #SUM

//         cast ( 0 as fis_ksl )      as BaselineAmtInGlobalCrcy,

//

//         @Semantics: { amount : {currencyCode: 'GlobalCurrency'} }

//         @DefaultAggregation: #SUM

//         cast ( 0 as fis_ksl )      as ActlPlnDiffAmtInGlobalCrcy,

//

//         @DefaultAggregation: #SUM

//         cast ( 0 as fis_ksl )      as ActPlnDiffAmtInPercentage,

//

//         _NextEssentialMlstn,

//         _NextRelevantMlstn,

//

//         // Text Associations

//         _ProjectProfileCodeText,

//         _AreaStatusText,

//         _AreaTrendText,

//         _ProcessingStatusText,

//         _ProjectName,

//         _MlstnRelevantName,

//         _NextEssentialMlstnName,

//         _ProjectTypeText,

//         _PriorityText                                     as _PriorityCodeText, // CE2011

//

//         _ProjectSummary._AuthUser,

//         _ProjectSummary._AuthSubst,

//         _ProjectSummary._AuthRole,

//         _ProjectSummary._AuthGroup

//

//}

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BPUSREXTERNALID",
"I_BUSINESSUSERBASIC",
"I_CONTROLLINGAREA",
"I_PPM_PROJECTMILESTESSENT",
"I_PPM_PROJECTMILESTRELNEXT",
"I_PPM_PROJECTSTATUSAREA",
"I_PPM_PROJECTSUMMARYTASK",
"I_PPM_SINGLERESPONSIBLEFORPROJ",
"I_PPM_TASK",
"I_PPM_TASKTEXT",
"I_PPM_TEAMMEMBERISINROLE",
"I_PROJECTBASICDATA",
"I_PROJECTOVERALLCOST",
"I_WBSELEMENTBASICDATA"
],
"ASSOCIATED":
[
"I_BUSINESSUSERBASIC",
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH",
"I_PPM_PRIORITYTEXT",
"I_PPM_PROCESSINGSTATUSTEXT",
"I_PPM_STATUSAREASTATUSTEXT",
"I_PPM_STATUSAREATRENDTEXT",
"I_PPM_TASK",
"I_PPM_TASKTEXT",
"I_PPM_TEXT",
"I_PROJECTPROFILECODETEXT",
"I_PROJECTTYPETEXT"
],
"BASE":
[
"I_PPM_PROJECTSUMMARYTASK",
"I_PPM_SINGLERESPONSIBLEFORPROJ"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/