P_EngmntProjPlngData

DDL: P_ENGMNTPROJPLNGDATA Type: view COMPOSITE Package: CPD_CDS

Engagement Project Planning data

P_EngmntProjPlngData is a Composite CDS View that provides data about "Engagement Project Planning data" in SAP S/4HANA. It reads from 2 data sources (I_EngmntProjAssgmtToSessionUsr, I_EngmntProjectPlanData) and exposes 50 fields with key field EngagementProject. Part of development package CPD_CDS.

Data Sources (2)

SourceAliasJoin Type
I_EngmntProjAssgmtToSessionUsr A from
I_EngmntProjectPlanData B inner

Annotations (12)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName PEPPLNGDATA 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 #NOT_REQUIRED view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.dataClass #MASTER view
Metadata.ignorePropagatedAnnotations true view

Fields (50)

KeyFieldSource TableSource FieldDescription
KEY EngagementProject I_EngmntProjAssgmtToSessionUsr EngagementProject
Customer I_EngmntProjAssgmtToSessionUsr Customer
EngmntProjReviewYearPeriod I_EngmntProjAssgmtToSessionUsr EngmntProjReviewYearPeriod
EngagementProjectReviewStatus I_EngmntProjAssgmtToSessionUsr EngagementProjectReviewStatus
EngagementProjectCategory I_EngmntProjAssgmtToSessionUsr EngagementProjectCategory
EngagementProjectType I_EngmntProjAssgmtToSessionUsr EngagementProjectType
EngagementProjectStage I_EngmntProjAssgmtToSessionUsr EngagementProjectStage
CurrentYearPeriod I_EngmntProjAssgmtToSessionUsr CurrentYearPeriod
ProjectManagerExternalID I_EngmntProjAssgmtToSessionUsr ProjectManagerExternalID
ProjectAccountantExternalID I_EngmntProjAssgmtToSessionUsr ProjectAccountantExternalID
ProjectControllerExternalID I_EngmntProjAssgmtToSessionUsr ProjectControllerExternalID
ProjectPartnerExternalID I_EngmntProjAssgmtToSessionUsr ProjectPartnerExternalID
ProjectManager I_EngmntProjAssgmtToSessionUsr ProjManagerUserID
ProjectAccountant I_EngmntProjAssgmtToSessionUsr ProjAccountantUserID
ProjectController I_EngmntProjAssgmtToSessionUsr ProjControllerUserID
Projectpartner I_EngmntProjAssgmtToSessionUsr ProjPartnerUserID
ProjectManagerName I_EngmntProjAssgmtToSessionUsr ProjectManagerName
ProjectAccountantName I_EngmntProjAssgmtToSessionUsr ProjectAccountantName
ProjectControllerName I_EngmntProjAssgmtToSessionUsr ProjectControllerName
ProjectPartnerName I_EngmntProjAssgmtToSessionUsr ProjectPartnerName
IsMyProject I_EngmntProjAssgmtToSessionUsr IsMyProject
EngagementProjectServiceOrg I_EngmntProjAssgmtToSessionUsr EngagementProjectServiceOrg
WorkPackage I_EngmntProjectPlanData WorkPackage
EngagementProjFinPlanUUID I_EngmntProjAssgmtToSessionUsr EngagementProjFinPlanUUID
EngmtProjFinPlanVersion I_EngmntProjectPlanData EngmtProjFinPlanVersion
BillingControlCategory I_EngmntProjectPlanData BillingControlCategory
PlndCostAmt I_EngmntProjectPlanData PlndCostAmt
PlndRevnAmt I_EngmntProjectPlanData PlndRevnAmt
PlndEffortQty I_EngmntProjectPlanData PlndEffortQty
ResourceDemandUUID I_EngmntProjectPlanData ResourceDemandUUID
ResourceDemand I_EngmntProjectPlanData ResourceDemand
ResourceSupply I_EngmntProjectPlanData ResourceSupply
EngagementProjectResource I_EngmntProjectPlanData EngagementProjectResource
UnitOfMeasureendasWorkPackageUnitUoM
UnitOfMeasure I_EngmntProjectPlanData UnitOfMeasure
EngagementProjectResourceType I_EngmntProjectPlanData EngagementProjectResourceType
WorkItem I_EngmntProjectPlanData WorkItem
EmploymentInternalID I_EngmntProjectPlanData EmploymentInternalID
EngmtProjEmployeeIsStaffed I_EngmntProjectPlanData EngmtProjEmployeeIsStaffed
FiscalYear I_EngmntProjectPlanData FiscalYear
FiscalPeriod I_EngmntProjectPlanData FiscalPeriod
Currency I_EngmntProjAssgmtToSessionUsr Currency
EngmntProjPlanLineType I_EngmntProjectPlanData EngmntProjPlanLineType
EngmntProjectDeliveryOrg SupplyEmployeeDelOrg EngagementProjectServiceOrg
IsUnitBased I_EngmntProjectPlanData IsUnitBased
ProjectVisibility I_EngmntProjAssgmtToSessionUsr ProjectVisibility
ProjectProfileCode I_EngmntProjAssgmtToSessionUsr ProjectProfileCode
EngmntProjectHeaderCompanyCode I_EngmntProjAssgmtToSessionUsr EngmntProjectHeaderCompanyCode
EngagementProjectCostCenter I_EngmntProjAssgmtToSessionUsr EngagementProjectCostCenter
ProfitCenter I_EngmntProjAssgmtToSessionUsr ProfitCenter
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog:{
    sqlViewName: 'PEPPLNGDATA',
    compiler.compareFilter: true,
    preserveKey: true
}
@VDM: {
    viewType: #COMPOSITE,
    private: true,
    lifecycle.contract.type: #NONE
}
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ObjectModel: {
    usageType: {
        sizeCategory: #XL,
        serviceQuality: #C,
        dataClass: #MASTER
    }
}
@Metadata: {
    ignorePropagatedAnnotations: true
}
define view P_EngmntProjPlngData
  as select from           I_EngmntProjAssgmtToSessionUsr as A
    inner join             I_EngmntProjectPlanData        as B                    on A.EngagementProject = B.EngagementProject
    left outer to one join P_EngmntProjSupEmplDelivOrg    as SupplyEmployeeDelOrg on  B.EngagementProject       = SupplyEmployeeDelOrg.EngagementProject
                                                                                  and B.WorkPackage             = SupplyEmployeeDelOrg.WorkPackage
                                                                                  and B.ResourceDemandUUID      = SupplyEmployeeDelOrg.ResourceDemandUUID
                                                                                  and B.EngmtProjFinPlanVersion = SupplyEmployeeDelOrg.EngmtProjFinPlanVersion 
                                                                                  and A.EngagementProjectServiceOrg    = SupplyEmployeeDelOrg.CustomerProjectServiceOrg
                                                                                  and A.IsMyProject                    = SupplyEmployeeDelOrg.IsMyProject
                                                                                  and A.EngmntProjReviewYearPeriod     = SupplyEmployeeDelOrg.EngmntProjReviewYearPeriod
                                                                                  and A.EngagementProjectReviewStatus  = SupplyEmployeeDelOrg.EngagementProjectReviewStatus
                                                                                  and A.EngagementProjectCategory      = SupplyEmployeeDelOrg.EngagementProjectCategory
                                                                                  and A.EngagementProjectStage         = SupplyEmployeeDelOrg.EngagementProjectStage
                                                                                  and A.Customer                       = SupplyEmployeeDelOrg.Customer
                                                                                  and A.ProjectManagerExternalID       = SupplyEmployeeDelOrg.ProjectManagerExternalID
                                                                                  and A.ProjectAccountantExternalID    = SupplyEmployeeDelOrg.ProjectAccountantExternalID
                                                                                  and A.ProjectControllerExternalID    = SupplyEmployeeDelOrg.ProjectControllerExternalID
                                                                                  and A.ProjectPartnerExternalID       = SupplyEmployeeDelOrg.ProjectPartnerExternalID
                                                                                  and A.ProjectVisibility              = SupplyEmployeeDelOrg.ProjectVisibility
                                                                                  and A.ProjectProfileCode             = SupplyEmployeeDelOrg.ProjectProfileCode
                                                                                  and A.EngmntProjectHeaderCompanyCode = SupplyEmployeeDelOrg.EngmntProjectHeaderCompanyCode
                                                                                  and A.EngagementProjectCostCenter    = SupplyEmployeeDelOrg.EngagementProjectCostCenter
                                                                                  and A.ProfitCenter                   = SupplyEmployeeDelOrg.ProfitCenter 
                                                                                                                                                                 
{
  key A.EngagementProject,
      A.Customer,
      A.EngmntProjReviewYearPeriod,
      A.EngagementProjectReviewStatus,
      A.EngagementProjectCategory,
      A.EngagementProjectType,
      A.EngagementProjectStage,
      A.CurrentYearPeriod,
      A.ProjectManagerExternalID,
      A.ProjectAccountantExternalID,
      A.ProjectControllerExternalID,
      A.ProjectPartnerExternalID,
      A.ProjManagerUserID                              as ProjectManager,
      A.ProjAccountantUserID                           as ProjectAccountant,
      A.ProjControllerUserID                           as ProjectController,
      A.ProjPartnerUserID                              as Projectpartner,
      A.ProjectManagerName,
      A.ProjectAccountantName,
      A.ProjectControllerName,
      A.ProjectPartnerName,
      A.IsMyProject,
      A.EngagementProjectServiceOrg,
      B.WorkPackage,
      A.EngagementProjFinPlanUUID,
      B.EngmtProjFinPlanVersion,
      B.BillingControlCategory,
      B.PlndCostAmt,
      B.PlndRevnAmt,
      B.PlndEffortQty,
      B.ResourceDemandUUID,
      B.ResourceDemand,
      B.ResourceSupply,

      case when B.IsUnitBased = 'X'
      then B.EngagementProjectResource end             as WorkPackageUnit,

      //      case when IsUnitBased <> 'X'

      //      then EngagementProjectResource end                                  as EngagementProjectResource,

      B.EngagementProjectResource,


      case when B.IsUnitBased = 'X'
      then B.UnitOfMeasure end                         as WorkPackageUnitUoM,


      //      case when IsUnitBased <> 'X'

      //      then UnitOfMeasure end                                              as UnitOfMeasure,

      B.UnitOfMeasure,

      B.EngagementProjectResourceType,
      B.WorkItem,
      B.EmploymentInternalID,
      B.EngmtProjEmployeeIsStaffed,
      B.FiscalYear,
      B.FiscalPeriod,

      A.Currency,
      B.EngmntProjPlanLineType,

      case
      when  B.EngmntProjPlanLineType = 'D'
      then B.EngagementProjectServiceOrg
      end                                              as DeliveryOrganization,

      //      case

      //      when  B.EngmntProjPlanLineType = 'S'

      //      then B.EngagementProjectServiceOrg

      //      end                                                                 as EngmntProjectDeliveryOrg,

      SupplyEmployeeDelOrg.EngagementProjectServiceOrg as EngmntProjectDeliveryOrg,



      case when ( B.EngmntProjPlanLineType = 'U' and B.EngagementProjectResourceType = '0ACT' ) or
      ( B.EngmntProjPlanLineType = 'D' and B.EngagementProjectResourceType = '0ADL' )
      then PlndEffortQty
      else cast ('0' as megxxx ) end                   as RemainingDemandEffortQty,


      case when B.EngmntProjPlanLineType = 'S' and B.EngagementProjectResourceType = '0ACT'
      then B.PlndEffortQty
      else cast ('0' as megxxx ) end                   as SupplyEffortQty,


      case when ( B.EngmntProjPlanLineType = 'U' and B.EngagementProjectResourceType = '0ACT' ) or
      ( B.EngmntProjPlanLineType = 'D' and B.EngagementProjectResourceType = '0ADL' )
      then B.PlndCostAmt
      else cast ('0' as /cpd/pfp_curr ) end            as RemainingDemandCostAmt,


      case when B.EngmntProjPlanLineType = 'S' and B.EngagementProjectResourceType = '0ACT'
      then B.PlndCostAmt
      else cast ('0' as /cpd/pfp_curr ) end            as SupplyCostAmt,


      case when ( B.EngmntProjPlanLineType = 'U' and B.EngagementProjectResourceType = '0ACT' ) or
      ( B.EngmntProjPlanLineType = 'D' and B.EngagementProjectResourceType = '0ADL' )
      then PlndRevnAmt
      else cast ('0' as /cpd/pfp_curr ) end            as RemainingDemandRevnAmt,


      case when B.EngmntProjPlanLineType = 'S' and B.EngagementProjectResourceType = '0ACT'
      then B.PlndRevnAmt
      else cast ('0' as /cpd/pfp_curr ) end            as SupplyRevnAmt,


      case when B.EngmntProjPlanLineType = 'D' and B.EngagementProjectResourceType = '0EXP'
      then B.PlndCostAmt
      else cast ('0' as /cpd/pfp_curr ) end            as PlannedExpenseCost,


      case when B.EngmntProjPlanLineType = 'D' and B.EngagementProjectResourceType = '0EXP'
      then B.PlndRevnAmt
      else cast ('0' as /cpd/pfp_curr ) end            as PlannedExpenseRevenue,


      case when B.EngmntProjPlanLineType = 'D' and B.EngagementProjectResourceType = '0ACT' and B.IsUnitBased <> 'X'
      then B.PlndEffortQty
      else cast ('0' as megxxx ) end                   as DemandEffortQty,

      case when B.EngmntProjPlanLineType = 'D' and B.EngagementProjectResourceType = '0ACT' and B.IsUnitBased <> 'X'
      then B.PlndCostAmt
      else cast ('0' as /cpd/pfp_curr ) end            as DemandCostAmt,


      case when B.EngmntProjPlanLineType = 'D' and B.IsUnitBased = 'X'
      then B.PlndRevnAmt
      else cast ('0' as /cpd/pfp_curr ) end            as PlannedUnitRevenue,


      case when B.EngmntProjPlanLineType = 'D' and B.IsUnitBased = 'X'
      then B.PlndEffortQty
      else cast ('0' as megxxx ) end                   as PlanUnitQuantity,


      case when B.EngmntProjPlanLineType = 'D'
      then B.ActualPlanDeviationEffort
      else cast ('0' as megxxx ) end                   as ActualPlanDeviationEffort,


      case when B.EngmntProjPlanLineType = 'D'
      then B.ActualPlanDeviationCost
      else cast ('0' as /cpd/pfp_curr ) end            as ActualPlanDeviationCost,


      case when B.EngmntProjPlanLineType = 'U' and B.EngagementProjectResourceType = '0ACT'
      then B.PlndEffortQty
      else cast ('0' as megxxx ) end                   as RscePlannedQuantity,
      B.IsUnitBased,
      
      A.ProjectVisibility,
      A.ProjectProfileCode,      
      A.EngmntProjectHeaderCompanyCode,
      A.EngagementProjectCostCenter,
      A.ProfitCenter      
}