P_ENTPROJECTPLNCOSTS

DDL: P_ENTPROJECTPLNCOSTS SQL: PENTPROJPLNCST Type: view COMPOSITE Package: ODATA_PS_COS_PROJFIN_MNTR

Project Cost Line Items with Planning Category Costs

P_ENTPROJECTPLNCOSTS is a Composite CDS View that provides data about "Project Cost Line Items with Planning Category Costs" in SAP S/4HANA. It reads from 4 data sources (P_IsLeadingLedger, I_FinancialPlanningEntryItem, P_PROJWITHPROJCAT6, P_PROJECTSEMTAGACC) and exposes 11 fields with key fields Project, ProjectInternalID. It has 4 associations to related views. Part of development package ODATA_PS_COS_PROJFIN_MNTR.

Data Sources (4)

SourceAliasJoin Type
P_IsLeadingLedger Ledger inner
I_FinancialPlanningEntryItem ProjCstLineItm inner
P_PROJWITHPROJCAT6 Project from
P_PROJECTSEMTAGACC SemanticTag inner

Parameters (1)

NameTypeDefault
P_PlanningCategory fcom_category

Associations (4)

CardinalityTargetAliasCondition
[0..1] I_PPM_AuthznByUsrH _AuthUserFin _AuthUserFin.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID and _AuthUserFin.UserID = $session.user and _AuthUserFin.Activity = 'Financials'
[0..*] I_PPM_AuthznBySubstitH _AuthSubstFin _AuthSubstFin.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID and _AuthSubstFin.UserID = $session.user and _AuthSubstFin.Activity = 'Financials'
[0..*] I_PPM_AuthznByUserRoleH _AuthRoleFin _AuthRoleFin.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID and _AuthRoleFin.UserID = $session.user and _AuthRoleFin.Activity = 'Financials'
[0..*] I_PPM_AuthznByUsrGrpH _AuthGroupFin _AuthGroupFin.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID and _AuthGroupFin.UserID = $session.user

Annotations (12)

NameValueLevelField
AbapCatalog.sqlViewName PENTPROJPLNCST view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
AbapCatalog.buffering.status #NOT_ALLOWED view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #D view
VDM.viewType #COMPOSITE view
VDM.private true view
ClientHandling.algorithm #SESSION_VARIABLE view

Fields (11)

KeyFieldSource TableSource FieldDescription
KEY Project
KEY ProjectInternalID P_PROJWITHPROJCAT6 ProjectInternalID
ProjectSummaryTaskUUID ProjectSummaryTaskUUID
ProjectUUID ProjectUUID
GlobalCurrency GlobalCurrency
PlanAmountInGlobalCurrency
PlanningCategory I_FinancialPlanningEntryItem PlanningCategory
_AuthUserFin _AuthUserFin
_AuthSubstFin _AuthSubstFin
_AuthRoleFin _AuthRoleFin
_AuthGroupFin _AuthGroupFin
@AbapCatalog.sqlViewName: 'PENTPROJPLNCST'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@AbapCatalog.buffering.status: #NOT_ALLOWED
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass:  #MIXED
@ObjectModel.usageType.serviceQuality: #D
@VDM.viewType: #COMPOSITE
@VDM.private: true
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_ENTPROJECTPLNCOSTS
  with parameters
    P_PlanningCategory : fcom_category
  as select from P_PROJWITHPROJCAT6           as Project
//    inner join   I_FinancialPlanningEntryItem as ProjCstLineItm on  ProjCstLineItm.WBSElementInternalID = Project.WBSElementInternalID

//                                                                and ProjCstLineItm.ProjectInternalID    = Project.ProjectInternalID

    inner join   I_FinancialPlanningEntryItem as ProjCstLineItm on ProjCstLineItm.ProjectInternalID    = Project.ProjectInternalID                                                           
    inner join   P_IsLeadingLedger            as Ledger         on ProjCstLineItm.Ledger = Ledger.Ledger
    inner join   P_PROJECTSEMTAGACC           as SemanticTag    on  SemanticTag.ControllingArea    = ProjCstLineItm.ControllingArea
                                                                and SemanticTag.HierarchyNodeVal   = ProjCstLineItm.GLAccount
                                                                and SemanticTag.HierarchyNodeClass = ProjCstLineItm.ChartOfAccounts
  association [0..1] to I_PPM_AuthznByUsrH      as _AuthUserFin  on  _AuthUserFin.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID
                                                                 and _AuthUserFin.UserID               = $session.user
                                                                 and _AuthUserFin.Activity             = 'Financials'
  association [0..*] to I_PPM_AuthznBySubstitH  as _AuthSubstFin on  _AuthSubstFin.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID
                                                                 and _AuthSubstFin.UserID               = $session.user
                                                                 and _AuthSubstFin.Activity             = 'Financials'
  association [0..*] to I_PPM_AuthznByUserRoleH as _AuthRoleFin  on  _AuthRoleFin.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID
                                                                 and _AuthRoleFin.UserID               = $session.user
                                                                 and _AuthRoleFin.Activity             = 'Financials'
  association [0..*] to I_PPM_AuthznByUsrGrpH   as _AuthGroupFin on  _AuthGroupFin.ReferencedObjectUUID = $projection.ProjectSummaryTaskUUID
                                                                 and _AuthGroupFin.UserID               = $session.user


{
  key ProjCstLineItm._ProjectBasicData.ProjectExternalID as Project,

  key Project.ProjectInternalID,
      ProjectSummaryTaskUUID,
      ProjectUUID,
      @Semantics.currencyCode:true
      GlobalCurrency,
      @Semantics: { amount : {currencyCode: 'GlobalCurrency'}}
      sum(AmountInGlobalCurrency)                        as PlanAmountInGlobalCurrency,
      ProjCstLineItm.PlanningCategory,
      _AuthUserFin,
      _AuthSubstFin,
      _AuthRoleFin,
      _AuthGroupFin

}
where
//    ProjCstLineItm.WBSElementInternalID = Project.WBSElementInternalID

      ProjCstLineItm.ProjectInternalID    = Project.ProjectInternalID
  and PlanningCategory                    = $parameters.P_PlanningCategory
group by

  ProjCstLineItm._ProjectBasicData.ProjectExternalID,

  Project.ProjectInternalID,
  ProjectSummaryTaskUUID,
  ProjectUUID,
  GlobalCurrency,
  ProjCstLineItm.PlanningCategory