P_ENGMNTPROJSALESPLANDATA

DDL: P_ENGMNTPROJSALESPLANDATA SQL: PEPROJSLSPLDATA Type: view COMPOSITE Package: CPD_CDS_MONITOR

Enagement Project Sale and Actual Plan Data

P_ENGMNTPROJSALESPLANDATA is a Composite CDS View that provides data about "Enagement Project Sale and Actual Plan Data" in SAP S/4HANA. It reads from 1 data source (I_EngagementProject) and exposes 35 fields. It has 2 associations to related views. Part of development package CPD_CDS_MONITOR.

Data Sources (1)

SourceAliasJoin Type
I_EngagementProject EngagementProject from

Associations (2)

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

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

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 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.ActlRevnInCoCodeCrcy,
                            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'