P_ENGMNTPROJSALESPLANDATA
P_ENGMNTPROJSALESPLANDATA is a Composite CDS View in SAP S/4HANA. It reads from 1 data source (I_EngagementProject) and exposes 35 fields. It has 2 associations to related views.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| I_EngagementProject | EngagementProject | from |
Associations (2)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_ControllingArea | _ControllingArea | $projection.ControllingArea = _ControllingArea.ControllingArea |
| [0..1] | I_SalesOrderItem | _SalesOrderItem | $projection.SalesOrder = _SalesOrderItem.SalesOrder and $projection.SalesOrderItem = _SalesOrderItem.SalesOrderItem |
Annotations (9)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PEPROJSLSPLDATA | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AccessControl.authorizationCheck | #NOT_REQUIRED | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.private | true | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view |
Fields (35)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| EngagementProject | ||||
| ProjectStartDate | I_EngagementProject | ProjectStartDate | ||
| ProjectEndDate | I_EngagementProject | ProjectEndDate | ||
| Customer | I_EngagementProject | Customer | ||
| EngagementProjectType | I_EngagementProject | EngagementProjectType | ||
| EngagementProjectStage | I_EngagementProject | EngagementProjectStage | ||
| EngagementProjectServiceOrg | I_EngagementProject | EngagementProjectServiceOrg | ||
| EngagementProjectCategory | ProjectSalesMargin | EngagementProjectCategory | ||
| CompanyCode | I_EngagementProject | CompanyCode | ||
| Country | ||||
| SalesOrder | ProjectSalesMargin | SalesOrder | ||
| SalesOrderItem | ProjectSalesMargin | SalesOrderItem | ||
| SalesOrderItemCategory | _SalesOrderItem | SalesOrderItemCategory | ||
| ControllingArea | I_EngagementProject | ControllingArea | ||
| ControllingAreaCurrency | _ControllingArea | ControllingAreaCurrency | ||
| ProfitCenter | I_EngagementProject | ProfitCenter | ||
| EngmtProjEmployeeIsStaffed | ProjectSalesMargin | EngmtProjEmployeeIsStaffed | ||
| EngmtProjFinPlanVersion | ProjectSalesMargin | EngmtProjFinPlanVersion | ||
| AccountingDocumentStatus | ProjectSalesMargin | AccountingDocumentStatus | ||
| UnitOfMeasure | ProjectSalesMargin | UnitOfMeasure | ||
| BaseUnit | ProjectSalesMargin | BaseUnit | ||
| ActlEffortQty | ProjectSalesMargin | ActlEffortQty | ||
| BilledEffort | ProjectSalesMargin | BilledEffort | ||
| PlndEffortQty | ProjectSalesMargin | PlndEffortQty | ||
| FiscalPeriod | ProjectSalesMargin | FiscalPeriod | ||
| FiscalYear | ProjectSalesMargin | FiscalYear | ||
| FiscalYearPeriod | ProjectSalesMargin | FiscalYearPeriod | ||
| PersonnelNumber | ProjectSalesMargin | PersonnelNumber | ||
| Currency | ProjectSalesMargin | Currency | ||
| CompanyCodeCurrency | ProjectSalesMargin | CompanyCodeCurrency | ||
| ActlRevnInCoCodeCrcy | ProjectSalesMargin | ActlRevnInCoCodeCrcy | ||
| ActlCostInCoCodeCrcy | ProjectSalesMargin | ActlCostInCoCodeCrcy | ||
| EngmntProjPlanLineType | ProjectSalesMargin | EngmntProjPlanLineType | ||
| EngagementProjectResourceType | ProjectSalesMargin | EngagementProjectResourceType | ||
| IsMyProject | ProjectSalesMargin | IsMyProject |
@AbapCatalog.sqlViewName: 'PEPROJSLSPLDATA'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.viewType: #COMPOSITE
@VDM.private: true
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MIXED
define view P_ENGMNTPROJSALESPLANDATA
as select from I_EngagementProject as EngagementProject
left outer to many join P_EngmntProjSlsPlanActualData as ProjectSalesMargin on EngagementProject.EngagementProject = ProjectSalesMargin.EngagementProject
association [0..1] to I_ControllingArea as _ControllingArea on $projection.ControllingArea = _ControllingArea.ControllingArea
association [0..1] to I_SalesOrderItem as _SalesOrderItem on $projection.SalesOrder = _SalesOrderItem.SalesOrder
and $projection.SalesOrderItem = _SalesOrderItem.SalesOrderItem
{
cast(EngagementProject.EngagementProject as /cpd/project preserving type ) as EngagementProject,
EngagementProject.ProjectStartDate as ProjectStartDate,
EngagementProject.ProjectEndDate as ProjectEndDate,
EngagementProject.Customer as Customer,
EngagementProject.EngagementProjectType,
EngagementProject.EngagementProjectStage as EngagementProjectStage,
EngagementProject.EngagementProjectServiceOrg as EngagementProjectServiceOrg,
ProjectSalesMargin.EngagementProjectCategory,
EngagementProject.CompanyCode as CompanyCode,
EngagementProject._CompanyCode.Country as Country,
ProjectSalesMargin.SalesOrder as SalesOrder,
ProjectSalesMargin.SalesOrderItem as SalesOrderItem,
_SalesOrderItem.SalesOrderItemCategory as SalesOrderItemCategory,
EngagementProject.ControllingArea as ControllingArea,
_ControllingArea.ControllingAreaCurrency as ControllingAreaCurrency,
EngagementProject.ProfitCenter as ProfitCenter,
ProjectSalesMargin.EngmtProjEmployeeIsStaffed as EngmtProjEmployeeIsStaffed,
ProjectSalesMargin.EngmtProjFinPlanVersion as EngmtProjFinPlanVersion,
ProjectSalesMargin.AccountingDocumentStatus as AccountingDocumentStatus,
ProjectSalesMargin.UnitOfMeasure as UnitOfMeasure,
ProjectSalesMargin.BaseUnit as BaseUnit,
ProjectSalesMargin.ActlEffortQty as ActlEffortQty,
ProjectSalesMargin.BilledEffort as BilledEffort,
ProjectSalesMargin.PlndEffortQty as PlndEffortQty,
ProjectSalesMargin.FiscalPeriod as FiscalPeriod,
ProjectSalesMargin.FiscalYear as FiscalYear,
ProjectSalesMargin.FiscalYearPeriod as FiscalYearPeriod,
ProjectSalesMargin.PersonnelNumber as PersonnelNumber,
ProjectSalesMargin.Currency as Currency,
ProjectSalesMargin.CompanyCodeCurrency as CompanyCodeCurrency,
case
when ProjectSalesMargin.CompanyCodeCurrency = ProjectSalesMargin.Currency
then
ProjectSalesMargin.PlndCostAmt
else
currency_conversion( amount => ProjectSalesMargin.PlndCostAmt,
source_currency => ProjectSalesMargin.Currency,
target_currency => ProjectSalesMargin.CompanyCodeCurrency,
exchange_rate_date => EngagementProject.ProjectStartDate,
exchange_rate_type => 'M',
error_handling => 'SET_TO_NULL' )
end as PlndCostInCoCodeCrcy,
case
when ProjectSalesMargin.CompanyCodeCurrency = ProjectSalesMargin.Currency
then
ProjectSalesMargin.PlndRevnAmt
else
currency_conversion( amount => ProjectSalesMargin.PlndRevnAmt,
source_currency => ProjectSalesMargin.Currency,
target_currency => ProjectSalesMargin.CompanyCodeCurrency,
exchange_rate_date => EngagementProject.ProjectStartDate,
exchange_rate_type => 'M',
error_handling => 'SET_TO_NULL' )
end as PlndRevnInCoCodeCrcy,
ProjectSalesMargin.ActlRevnInCoCodeCrcy as ActlRevnInCoCodeCrcy,
ProjectSalesMargin.ActlCostInCoCodeCrcy as ActlCostInCoCodeCrcy,
ProjectSalesMargin.EngmntProjPlanLineType as EngmntProjPlanLineType,
ProjectSalesMargin.EngagementProjectResourceType,
case
when _ControllingArea.ControllingAreaCurrency = ProjectSalesMargin.Currency
then
ProjectSalesMargin.PlndCostAmt
else
currency_conversion( amount => ProjectSalesMargin.PlndCostAmt,
source_currency => ProjectSalesMargin.Currency,
target_currency => _ControllingArea.ControllingAreaCurrency,
exchange_rate_date => EngagementProject.ProjectStartDate,
exchange_rate_type => 'M',
error_handling => 'SET_TO_NULL' )
end as PlndCostAmtInCtrlgAreaCrcy,
case
when _ControllingArea.ControllingAreaCurrency = ProjectSalesMargin.Currency
then
ProjectSalesMargin.PlndRevnAmt
else
currency_conversion( amount => ProjectSalesMargin.PlndRevnAmt,
source_currency => ProjectSalesMargin.Currency,
target_currency => _ControllingArea.ControllingAreaCurrency,
exchange_rate_date => EngagementProject.ProjectStartDate,
exchange_rate_type => 'M',
error_handling => 'SET_TO_NULL' )
end as PlndRevenueAmtInCtrlgAreaCrcy,
case
when _ControllingArea.ControllingAreaCurrency = ProjectSalesMargin.CompanyCodeCurrency
then
ProjectSalesMargin.ActlRevnAmt
else
currency_conversion( amount => ProjectSalesMargin.ActlRevnAmt,
source_currency => ProjectSalesMargin.CompanyCodeCurrency,
target_currency => _ControllingArea.ControllingAreaCurrency,
exchange_rate_date => EngagementProject.ProjectStartDate,
exchange_rate_type => 'M',
error_handling => 'SET_TO_NULL' )
end as ActlRevenueAmtInCtrlgAreaCrcy,
ProjectSalesMargin.IsMyProject
}
where
ProjectSalesMargin.EngmtProjFinPlanVersion = '1'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_COMPANYCODE",
"I_CONTROLLINGAREA",
"I_ENGAGEMENTPROJECT",
"I_SALESORDERITEM",
"P_ENGMNTPROJSLSPLANACTUALDATA"
],
"ASSOCIATED":
[
"I_CONTROLLINGAREA",
"I_SALESORDERITEM"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
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