P_EngmntProjPlnAggrgnByPerd

DDL: P_ENGMNTPROJPLNAGGRGNBYPERD Type: view COMPOSITE

P_EngmntProjPlnAggrgnByPerd is a Composite CDS View in SAP S/4HANA. It reads from 2 data sources (P_EngmntProjPlnDataByRsceType, I_Ledger) and exposes 71 fields with key fields EngagementProject, EngagementProjFinPlanUUID.

Data Sources (2)

SourceAliasJoin Type
P_EngmntProjPlnDataByRsceType A from
I_Ledger Ledger inner

Annotations (12)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName PEPPLNDTABYPRD view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
VDM.viewType #COMPOSITE view
VDM.private true view
VDM.lifecycle.contract.type #NONE view
AccessControl.authorizationCheck #CHECK view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.dataClass #MIXED view
Metadata.ignorePropagatedAnnotations true view

Fields (71)

KeyFieldSource TableSource FieldDescription
KEY EngagementProject EngagementProject
KEY EngagementProjFinPlanUUID EngagementProjFinPlanUUID
Customer Customer
EngagementProjectCategory EngagementProjectCategory
EngagementProjectReviewStatus EngagementProjectReviewStatus
EngagementProjectStage EngagementProjectStage
EngagementProjectType EngagementProjectType
EngmntProjReviewYearPeriod EngmntProjReviewYearPeriod
WorkPackage WorkPackage
WorkItem WorkItem
Currency Currency
EngagementProjectResource EngagementProjectResource
EngagementProjectResourceType EngagementProjectResourceType
UnitOfMeasure UnitOfMeasure
EngagementProjectServiceOrg EngagementProjectServiceOrg
EngmntProjectDeliveryOrg EngmntProjectDeliveryOrg
GLAccount GLAccount
EngmntProjPlanLineType
ResourceIsOfUnitWorkPackage ResourceIsOfUnitWorkPackage
IsMyProject IsMyProject
IsUnitBased IsUnitBased
ProjectManager ProjectManager
ProjectAccountant ProjectAccountant
ProjectController ProjectController
Projectpartner Projectpartner
ProjectManagerName ProjectManagerName
ProjectAccountantName ProjectAccountantName
ProjectControllerName ProjectControllerName
ProjectPartnerName ProjectPartnerName
ProjectManagerExternalID ProjectManagerExternalID
ProjectAccountantExternalID ProjectAccountantExternalID
ProjectControllerExternalID ProjectControllerExternalID
ProjectPartnerExternalID ProjectPartnerExternalID
ProjectVisibility ProjectVisibility
ProjectProfileCode ProjectProfileCode
EngmntProjectHeaderCompanyCode EngmntProjectHeaderCompanyCode
EngagementProjectCostCenter EngagementProjectCostCenter
ProfitCenter ProfitCenter
PlanUnitQuantity
PlndEffortQty
PlndEffortUpToCurPerd
BaselinePlndEffortQty
PlndEffortQtyUpToRevPerd
AddlResourcePlannedQuantity
BaselinePlannedQuantity
ActualPlanDeviationEffort
AddlRsceActlPlanDeviationQty
SupplyEffortQty
AdjustedPlndEffort
AdjustedOthRscePlndQty
AddlRsceCalcdEstToCmpltQty
PlannedEffortCostAmt
PlndCostAmt
PlannedCostUpToCurPerd
PlndCostAmtUpToRevPerd
AddlResourcePlannedCostAmount
BaselinePlndCostAmt
BaselinePlndRevnAmt
PlndRevnAmt
PlndRevnAmtUpToRevPerd
PlannedRevnUpToCurPerd
PlannedExpenseCost
ActualPlanDeviationExpnCost
PlndExpCostUpToCurPerd
PlndExpenseCostUpToRevPerd
AdjustedExpnCost
AdjustedPlndCost
UnitCompltnRateUpToCurPerd
UnitCompltnRateUpToRevPerd
ActualPlanDeviationCost
Ledger I_Ledger Ledger
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog:{
    sqlViewName: 'PEPPLNDTABYPRD',
    compiler.compareFilter: true,
    preserveKey: true
}
@VDM: {
    viewType: #COMPOSITE,
    private: true,
    lifecycle.contract.type: #NONE
}
@AccessControl.authorizationCheck: #CHECK
@ObjectModel: {
    usageType: {
        sizeCategory: #XL,
        serviceQuality: #D,
        dataClass: #MIXED
    }
}
@Metadata: {
    ignorePropagatedAnnotations: true
}

define view P_EngmntProjPlnAggrgnByPerd
  as select from P_EngmntProjPlnDataByRsceType as A
    inner join   I_Ledger                      as Ledger on Ledger.IsLeadingLedger = 'X'
{
  key EngagementProject,
  key EngagementProjFinPlanUUID,
      Customer,
      EngagementProjectCategory,
      EngagementProjectReviewStatus,
      EngagementProjectStage,
      EngagementProjectType,
      EngmntProjReviewYearPeriod,
      WorkPackage,
      WorkItem,
      //@Semantics.currencyCode: true

      Currency,
      EngagementProjectResource,
      EngagementProjectResourceType,
      @Semantics.unitOfMeasure: true
      UnitOfMeasure,
      EngagementProjectServiceOrg,
      EngmntProjectDeliveryOrg,
      GLAccount, //This is added for revenue recognition to work

      '1'                                as EngmntProjPlanLineType,
      ResourceIsOfUnitWorkPackage,
      IsMyProject,
      IsUnitBased,
      ProjectManager,
      ProjectAccountant,
      ProjectController,
      Projectpartner,
      ProjectManagerName,
      ProjectAccountantName,
      ProjectControllerName,
      ProjectPartnerName,
      ProjectManagerExternalID,
      ProjectAccountantExternalID,
      ProjectControllerExternalID,
      ProjectPartnerExternalID,
      ProjectVisibility,
      ProjectProfileCode,
      EngmntProjectHeaderCompanyCode,
      EngagementProjectCostCenter,
      ProfitCenter,

      //Quantity Fields - Plan

      sum(PlanUnitQuantity)              as PlanUnitQuantity,
      sum(PlndEffortQty)                 as PlndEffortQty,
      sum(PlndEffortUpToCurPerd)         as PlndEffortUpToCurPerd,
      sum(BaselinePlndEffortQty)         as BaselinePlndEffortQty,
      sum(PlndEffortQtyUpToRevPerd)      as PlndEffortQtyUpToRevPerd,
      sum(AddlResourcePlannedQuantity)   as AddlResourcePlannedQuantity,
      sum(BaselinePlannedQuantity)       as BaselinePlannedQuantity,

      //Quantity Fields - Deviation

      sum(ActualPlanDeviationEffort)     as ActualPlanDeviationEffort,
      sum(AddlRsceActlPlanDeviationQty)  as AddlRsceActlPlanDeviationQty,
      sum(SupplyEffortQty)               as SupplyEffortQty,

      //Adjusted Quantity

      sum(AdjustedPlndEffort)            as AdjustedPlndEffort,
      sum(AdjustedOthRscePlndQty)        as AdjustedOthRscePlndQty,

      //Calculated ETC Qty for additional resource

      sum(AddlRsceCalcdEstToCmpltQty)    as AddlRsceCalcdEstToCmpltQty,

      //Planned Cost

      sum(PlannedEffortCostAmt)          as PlannedEffortCostAmt,
      sum(PlndCostAmt)                   as PlndCostAmt,
      sum(PlannedCostUpToCurPerd)        as PlannedCostUpToCurPerd,
      sum(PlndCostAmtUpToRevPerd)        as PlndCostAmtUpToRevPerd,
      sum(AddlResourcePlannedCostAmount) as AddlResourcePlannedCostAmount,

      //Baseline caost

      sum(BaselinePlndCostAmt)           as BaselinePlndCostAmt,
      sum(BaselinePlndRevnAmt)           as BaselinePlndRevnAmt,

      //PLanned Revenue

      sum(PlndRevnAmt)                   as PlndRevnAmt,
      sum(PlndRevnAmtUpToRevPerd)        as PlndRevnAmtUpToRevPerd,
      sum(PlannedRevnUpToCurPerd)        as PlannedRevnUpToCurPerd,

      //Expense Cost

      sum(PlannedExpenseCost)            as PlannedExpenseCost,
      sum(ActualPlanDeviationExpnCost)   as ActualPlanDeviationExpnCost,
      sum(PlndExpCostUpToCurPerd)        as PlndExpCostUpToCurPerd,
      sum(PlndExpenseCostUpToRevPerd)    as PlndExpenseCostUpToRevPerd,
      sum(AdjustedExpnCost)              as AdjustedExpnCost,
      sum(AdjustedPlndCost)              as AdjustedPlndCost,

      //Unit Completion Rate

      max(UnitCompltnRateUpToCurPerd)    as UnitCompltnRateUpToCurPerd,
      max(UnitCompltnRateUpToRevPerd)    as UnitCompltnRateUpToRevPerd,

      sum(ActualPlanDeviationCost)       as ActualPlanDeviationCost,

      Ledger.Ledger

      //max(EngmntProjectDeliveryOrg) as EngmntProjectDeliveryOrg


}
group by
  EngagementProject,
  EngagementProjFinPlanUUID,
  Customer,
  EngagementProjectCategory,
  EngagementProjectReviewStatus,
  EngagementProjectStage,
  EngagementProjectType,
  EngmntProjReviewYearPeriod,
  WorkPackage,
  WorkItem,
  Currency,
  EngagementProjectResource,
  EngagementProjectResourceType,
  UnitOfMeasure,
  EngagementProjectServiceOrg,
  EngmntProjectDeliveryOrg,
  GLAccount,
  ResourceIsOfUnitWorkPackage,
  IsMyProject,
  IsUnitBased,
  ProjectManager,
  ProjectAccountant,
  ProjectController,
  Projectpartner,
  ProjectManagerName,
  ProjectAccountantName,
  ProjectControllerName,
  ProjectPartnerName,
  ProjectManagerExternalID,
  ProjectAccountantExternalID,
  ProjectControllerExternalID,
  ProjectPartnerExternalID,
  ProjectVisibility,
  ProjectProfileCode,
  EngmntProjectHeaderCompanyCode,
  EngagementProjectCostCenter,
  ProfitCenter,
  Ledger.Ledger
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_LEDGER",
"P_ENGMNTPROJPLNDATABYRSCETYPE"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/