I_EngmntProjSalesPlanData

DDL: I_ENGMNTPROJSALESPLANDATA SQL: IEPROJSLSPLDATA Type: view COMPOSITE Package: CPD_CDS

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)

SourceAliasJoin Type
I_EngagementProject EngagementProject from
I_EngmntProjSlsPlanActualData ProjectSalesMargin left_outer

Associations (16)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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'