P_EngmntProjPlngData
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)
| Source | Alias | Join Type |
|---|---|---|
| I_EngmntProjAssgmtToSessionUsr | A | from |
| I_EngmntProjectPlanData | B | inner |
Annotations (12)
| Name | Value | Level | Field |
|---|---|---|---|
| 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)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| 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
}
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA