I_EngmntProjSalesPlanData
Enagement Project Sale and Actual Plan Data
I_EngmntProjSalesPlanData is a Composite CDS View (Fact) that provides data about "Enagement Project Sale and Actual Plan Data" in SAP S/4HANA. It reads from 2 data sources (I_EngagementProject, I_EngmntProjSlsPlanActualData) and exposes 50 fields. It has 16 associations to related views. Part of development package CPD_CDS.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_EngagementProject | EngagementProject | from |
| I_EngmntProjSlsPlanActualData | ProjectSalesMargin | left_outer |
Associations (16)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_EngagementProject | _EngagementProject | $projection.EngagementProject = _EngagementProject.EngagementProject |
| [0..1] | I_EngmntProjCustInfo | _Customer | $projection.Customer = _Customer.Customer |
| [0..1] | I_EngagementProjectSrvcOrg | _EngagementProjectSrvcOrg | $projection.EngagementProjectServiceOrg = _EngagementProjectSrvcOrg.EngagementProjectServiceOrg |
| [0..1] | I_EngagementProjectStage | _EngagementProjectStage | $projection.EngagementProjectStage = _EngagementProjectStage.EngagementProjectStage |
| [0..1] | I_ControllingArea | _ControllingArea | $projection.ControllingArea = _ControllingArea.ControllingArea |
| [0..*] | I_ProfitCenter | _ProfitCenter | $projection.ControllingArea = _ProfitCenter.ControllingArea and $projection.ProfitCenter = _ProfitCenter.ProfitCenter |
| [0..1] | I_SalesOrder | _SalesOrder | $projection.SalesOrder = _SalesOrder.SalesOrder |
| [0..1] | I_SalesOrderItem | _SalesOrderItem | $projection.SalesOrder = _SalesOrderItem.SalesOrder and $projection.SalesOrderItem = _SalesOrderItem.SalesOrderItem |
| [0..1] | I_SalesDocumentItemCategory | _ItemCategory | $projection.SalesOrderItemCategory = _ItemCategory.SalesDocumentItemCategory |
| [0..1] | I_Currency | _Currency | $projection.Currency = _Currency.Currency |
| [0..1] | I_Currency | _CompanyCodeCurrency | $projection.CompanyCodeCurrency = _CompanyCodeCurrency.Currency |
| [0..1] | I_UnitOfMeasure | _UnitOfMeasure | $projection.UnitOfMeasure = _UnitOfMeasure.UnitOfMeasure |
| [0..1] | I_UnitOfMeasure | _BaseUnit | $projection.BaseUnit = _BaseUnit.UnitOfMeasure |
| [0..1] | I_CompanyCode | _CompanyCode | $projection.CompanyCode = _CompanyCode.CompanyCode |
| [0..1] | I_Country | _Country | $projection.Country = _Country.Country |
| [1..1] | E_CustomerProject | _Extension | $projection.EngagementProject = _Extension.CustomerProject |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IEPROJSLSPLDATA | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| Analytics.dataCategory | #FACT | view | |
| VDM.viewType | #COMPOSITE | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| EndUserText.label | Enagement Project Sale and Actual Plan Data | view | |
| AccessControl.personalData.blocking | #NOT_REQUIRED | view |
Fields (50)
| 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 | I_EngagementProject | EngagementProjectCategory | ||
| CompanyCode | I_EngagementProject | CompanyCode | ||
| Country | ||||
| SalesOrder | I_EngmntProjSlsPlanActualData | SalesOrder | ||
| SalesOrderItem | I_EngmntProjSlsPlanActualData | SalesOrderItem | ||
| SalesOrderItemCategory | _SalesOrderItem | SalesOrderItemCategory | ||
| ControllingArea | I_EngagementProject | ControllingArea | ||
| ControllingAreaCurrency | _ControllingArea | ControllingAreaCurrency | ||
| ProfitCenter | I_EngagementProject | ProfitCenter | ||
| EngmtProjEmployeeIsStaffed | I_EngmntProjSlsPlanActualData | EngmtProjEmployeeIsStaffed | ||
| EngmtProjFinPlanVersion | I_EngmntProjSlsPlanActualData | EngmtProjFinPlanVersion | ||
| AccountingDocumentStatus | I_EngmntProjSlsPlanActualData | AccountingDocumentStatus | ||
| UnitOfMeasure | I_EngmntProjSlsPlanActualData | UnitOfMeasure | ||
| BaseUnit | I_EngmntProjSlsPlanActualData | BaseUnit | ||
| ActlEffortQty | I_EngmntProjSlsPlanActualData | ActlEffortQty | ||
| BilledEffort | I_EngmntProjSlsPlanActualData | BilledEffort | ||
| PlndEffortQty | I_EngmntProjSlsPlanActualData | PlndEffortQty | ||
| FiscalPeriod | I_EngmntProjSlsPlanActualData | FiscalPeriod | Month | |
| FiscalYear | I_EngmntProjSlsPlanActualData | FiscalYear | Year | |
| FiscalYearPeriod | I_EngmntProjSlsPlanActualData | FiscalYearPeriod | Year/Month | |
| PersonnelNumber | I_EngmntProjSlsPlanActualData | PersonnelNumber | ||
| Currency | I_EngmntProjSlsPlanActualData | Currency | ||
| CompanyCodeCurrency | I_EngmntProjSlsPlanActualData | CompanyCodeCurrency | ||
| ActlRevnInCoCodeCrcy | I_EngmntProjSlsPlanActualData | ActlRevnInCoCodeCrcy | ||
| ActlCostInCoCodeCrcy | I_EngmntProjSlsPlanActualData | ActlCostInCoCodeCrcy | ||
| EngmntProjPlanLineType | I_EngmntProjSlsPlanActualData | EngmntProjPlanLineType | ||
| EngagementProjectResourceType | I_EngmntProjSlsPlanActualData | EngagementProjectResourceType | ||
| IsMyProject | I_EngmntProjSlsPlanActualData | IsMyProject | ||
| _EngagementProject | _EngagementProject | |||
| _Customer | _Customer | |||
| _EngagementProjectSrvcOrg | _EngagementProjectSrvcOrg | |||
| _EngagementProjectStage | _EngagementProjectStage | |||
| _SalesOrder | _SalesOrder | |||
| _SalesOrderItem | _SalesOrderItem | |||
| _ItemCategory | _ItemCategory | |||
| _ControllingArea | _ControllingArea | |||
| _ProfitCenter | _ProfitCenter | |||
| _Currency | _Currency | |||
| _CompanyCodeCurrency | _CompanyCodeCurrency | |||
| _UnitOfMeasure | _UnitOfMeasure | |||
| _BaseUnit | _BaseUnit | |||
| _CompanyCode | _CompanyCode | |||
| _Country | _Country |
@AbapCatalog.sqlViewName: 'IEPROJSLSPLDATA'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.authorizationCheck: #CHECK
@Analytics: { dataCategory: #FACT}
@VDM.viewType: #COMPOSITE
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MIXED
@EndUserText.label: 'Enagement Project Sale and Actual Plan Data'
@AccessControl: {
personalData: {
blocking: #NOT_REQUIRED
}
}
define view I_EngmntProjSalesPlanData
as select from I_EngagementProject as EngagementProject
left outer join I_EngmntProjSlsPlanActualData as ProjectSalesMargin on EngagementProject.EngagementProject = ProjectSalesMargin.EngagementProject
association [0..1] to I_EngagementProject as _EngagementProject on $projection.EngagementProject = _EngagementProject.EngagementProject
association [0..1] to I_EngmntProjCustInfo as _Customer on $projection.Customer = _Customer.Customer
association [0..1] to I_EngagementProjectSrvcOrg as _EngagementProjectSrvcOrg on $projection.EngagementProjectServiceOrg = _EngagementProjectSrvcOrg.EngagementProjectServiceOrg
association [0..1] to I_EngagementProjectStage as _EngagementProjectStage on $projection.EngagementProjectStage = _EngagementProjectStage.EngagementProjectStage
association [0..1] to I_ControllingArea as _ControllingArea on $projection.ControllingArea = _ControllingArea.ControllingArea
association [0..*] to I_ProfitCenter as _ProfitCenter on $projection.ControllingArea = _ProfitCenter.ControllingArea
and $projection.ProfitCenter = _ProfitCenter.ProfitCenter
association [0..1] to I_SalesOrder as _SalesOrder on $projection.SalesOrder = _SalesOrder.SalesOrder
association [0..1] to I_SalesOrderItem as _SalesOrderItem on $projection.SalesOrder = _SalesOrderItem.SalesOrder
and $projection.SalesOrderItem = _SalesOrderItem.SalesOrderItem
association [0..1] to I_SalesDocumentItemCategory as _ItemCategory on $projection.SalesOrderItemCategory = _ItemCategory.SalesDocumentItemCategory
association [0..1] to I_Currency as _Currency on $projection.Currency = _Currency.Currency
association [0..1] to I_Currency as _CompanyCodeCurrency on $projection.CompanyCodeCurrency = _CompanyCodeCurrency.Currency
association [0..1] to I_UnitOfMeasure as _UnitOfMeasure on $projection.UnitOfMeasure = _UnitOfMeasure.UnitOfMeasure
association [0..1] to I_UnitOfMeasure as _BaseUnit on $projection.BaseUnit = _BaseUnit.UnitOfMeasure
association [0..1] to I_CompanyCode as _CompanyCode on $projection.CompanyCode = _CompanyCode.CompanyCode
association [0..1] to I_Country as _Country on $projection.Country = _Country.Country
association [1..1] to E_CustomerProject as _Extension on $projection.EngagementProject = _Extension.CustomerProject
{
@ObjectModel.foreignKey.association: '_EngagementProject'
cast(EngagementProject.EngagementProject as /cpd/project preserving type ) as EngagementProject,
EngagementProject.ProjectStartDate as ProjectStartDate,
EngagementProject.ProjectEndDate as ProjectEndDate,
@ObjectModel.foreignKey.association: '_Customer'
EngagementProject.Customer as Customer,
EngagementProject.EngagementProjectType,
@ObjectModel.foreignKey.association: '_EngagementProjectStage'
EngagementProject.EngagementProjectStage as EngagementProjectStage,
@ObjectModel.foreignKey.association: '_EngagementProjectSrvcOrg'
EngagementProject.EngagementProjectServiceOrg as EngagementProjectServiceOrg,
EngagementProject.EngagementProjectCategory as EngagementProjectCategory,
@ObjectModel.foreignKey.association: '_CompanyCode'
EngagementProject.CompanyCode as CompanyCode,
@ObjectModel.foreignKey.association: '_Country'
EngagementProject._CompanyCode.Country as Country,
@ObjectModel.foreignKey.association: '_SalesOrder'
ProjectSalesMargin.SalesOrder as SalesOrder,
@ObjectModel.foreignKey.association: '_SalesOrderItem'
ProjectSalesMargin.SalesOrderItem as SalesOrderItem,
@ObjectModel.foreignKey.association: '_ItemCategory'
_SalesOrderItem.SalesOrderItemCategory as SalesOrderItemCategory,
@ObjectModel.foreignKey.association: '_ControllingArea'
EngagementProject.ControllingArea as ControllingArea,
@Semantics.currencyCode: true
_ControllingArea.ControllingAreaCurrency as ControllingAreaCurrency,
@ObjectModel.foreignKey.association: '_ProfitCenter'
EngagementProject.ProfitCenter as ProfitCenter,
ProjectSalesMargin.EngmtProjEmployeeIsStaffed as EngmtProjEmployeeIsStaffed,
ProjectSalesMargin.EngmtProjFinPlanVersion as EngmtProjFinPlanVersion,
ProjectSalesMargin.AccountingDocumentStatus as AccountingDocumentStatus,
@ObjectModel.foreignKey.association: '_UnitOfMeasure'
@Semantics.unitOfMeasure: true
ProjectSalesMargin.UnitOfMeasure as UnitOfMeasure,
@ObjectModel.foreignKey.association: '_BaseUnit'
@Semantics.unitOfMeasure: true
ProjectSalesMargin.BaseUnit as BaseUnit,
@Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
@DefaultAggregation: #SUM
ProjectSalesMargin.ActlEffortQty as ActlEffortQty,
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
@DefaultAggregation: #SUM
ProjectSalesMargin.BilledEffort as BilledEffort,
@Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
@DefaultAggregation: #SUM
ProjectSalesMargin.PlndEffortQty as PlndEffortQty,
@EndUserText.label: 'Month'
ProjectSalesMargin.FiscalPeriod as FiscalPeriod,
@EndUserText.label: 'Year'
ProjectSalesMargin.FiscalYear as FiscalYear,
@EndUserText.label: 'Year/Month'
ProjectSalesMargin.FiscalYearPeriod as FiscalYearPeriod,
ProjectSalesMargin.PersonnelNumber as PersonnelNumber,
@ObjectModel.foreignKey.association: '_Currency'
@Semantics.currencyCode: true
ProjectSalesMargin.Currency as Currency,
@ObjectModel.foreignKey.association: '_CompanyCodeCurrency'
@Semantics.currencyCode: true
ProjectSalesMargin.CompanyCodeCurrency as CompanyCodeCurrency,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
@DefaultAggregation: #SUM
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,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
@DefaultAggregation: #SUM
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,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
@DefaultAggregation: #SUM
ProjectSalesMargin.ActlRevnInCoCodeCrcy as ActlRevnInCoCodeCrcy,
@Semantics.amount.currencyCode: 'CompanyCodeCurrency'
@DefaultAggregation: #SUM
ProjectSalesMargin.ActlCostInCoCodeCrcy as ActlCostInCoCodeCrcy,
ProjectSalesMargin.EngmntProjPlanLineType as EngmntProjPlanLineType,
ProjectSalesMargin.EngagementProjectResourceType,
@Semantics.amount.currencyCode: 'ControllingAreaCurrency'
@DefaultAggregation: #SUM
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,
@Semantics.amount.currencyCode: 'ControllingAreaCurrency'
@DefaultAggregation: #SUM
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,
@Semantics.amount.currencyCode: 'ControllingAreaCurrency'
@DefaultAggregation: #SUM
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 as IsMyProject,
_EngagementProject,
_Customer,
_EngagementProjectSrvcOrg,
_EngagementProjectStage,
_SalesOrder,
_SalesOrderItem,
_ItemCategory,
_ControllingArea,
_ProfitCenter,
_Currency,
_CompanyCodeCurrency,
_UnitOfMeasure,
_BaseUnit,
_CompanyCode,
_Country
}
where
ProjectSalesMargin.EngmtProjFinPlanVersion = '1'
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