I_EngmntProjFcstCube_2

DDL: I_ENGMNTPROJFCSTCUBE_2 SQL: IEPFCSTCUBE2 Type: view COMPOSITE

Forecast Info for Engmnt Project - Cube

I_EngmntProjFcstCube_2 is a Composite CDS View (Cube) that provides data about "Forecast Info for Engmnt Project - Cube" in SAP S/4HANA. It reads from 6 data sources and exposes 63 fields. It has 21 associations to related views.

Data Sources (6)

SourceAliasJoin Type
I_EngagementProject EngagementProject from
I_EngagementProjFinancialPlan EngagementProjFinancialPlan inner
P_EngmntProjPlnActlAsSoldRevn EngmntProjWrkPckgPlanActual inner
I_EngmntProjUnitCompltnPct I_EngmntProjUnitCompltnPct left_outer
I_SalesOrderItem SalesOrderItem left_outer
I_WorkPackage WorkPackage inner

Parameters (1)

NameTypeDefault
P_Language sylangu

Associations (21)

CardinalityTargetAliasCondition
[0..1] I_EngagementProject _EngagementProject $projection.EngagementProject = _EngagementProject.EngagementProject
[0..1] I_Customer _Customer $projection.Customer = _Customer.Customer
[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..*] I_CostCenter _CostCenter $projection.CostCenter = _CostCenter.CostCenter and $projection.ControllingArea = _CostCenter.ControllingArea
[0..1] I_CompanyCode _CompanyCode $projection.CompanyCode = _CompanyCode.CompanyCode
[0..1] I_WorkPackage _WorkPackage $projection.WorkPackage = _WorkPackage.WorkPackage
[0..1] I_SalesOrder _SalesOrder $projection.SalesOrder = _SalesOrder.SalesOrder
[0..1] I_SalesOrderItem _SalesOrderItem $projection.SalesOrderItem = _SalesOrderItem.SalesOrderItem and $projection.SalesOrder = _SalesOrderItem.SalesOrder
[0..1] I_EngagementProjectResource _EngagementProjectResource $projection.EngagementProjectResource = _EngagementProjectResource.EngagementProjectResource and $projection.EngagementProjectResourceType = _EngagementProjectResource.EngagementProjectResourceType
[0..1] I_WorkPackageWorkItem _WorkItem $projection.WorkItem = _WorkItem.WorkItem and $projection.WorkPackage = _WorkItem.WorkPackage
[0..1] I_Currency _Currency $projection.Currency = _Currency.Currency
[0..1] I_UnitOfMeasure _UnitOfMeasure $projection.UnitOfMeasure = _UnitOfMeasure.UnitOfMeasure
[0..1] I_UnitOfMeasure _WorkPackageUnitUoM $projection.WorkPackageUnitUoM = _WorkPackageUnitUoM.UnitOfMeasure
[0..1] I_EngagementProjectSrvcOrg _EngmntProjectDeliveryOrg $projection.EngmntProjectDeliveryOrg = _EngmntProjectDeliveryOrg.EngagementProjectServiceOrg
[0..1] I_EngagementProjectSrvcOrg _EngagementProjectSrvcOrg $projection.EngagementProjectServiceOrg = _EngagementProjectSrvcOrg.EngagementProjectServiceOrg
[0..1] I_EngmntProjResourceType _EngagementProjectResourceType $projection.EngagementProjectResourceType = _EngagementProjectResourceType.EngagementProjectResourceType
[0..1] I_WBSElementBasicData _WBSElementBasicData $projection.WBSElement = _WBSElementBasicData.WBSElementInternalID
[0..1] I_WBSElementBasicData _WBSElementBasicData_2 $projection.WBSElementInternalID = _WBSElementBasicData_2.WBSElementInternalID
[0..1] I_EngmntProjFinPlanStatus _EngmntProjFinPlanStatus $projection.EngagementProjectReviewStatus = _EngmntProjFinPlanStatus.EngagementProjectReviewStatus

Annotations (14)

NameValueLevelField
AbapCatalog.sqlViewName IEPFCSTCUBE2 view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.compiler.compareFilter true view
VDM.viewType #COMPOSITE view
Analytics.dataCategory #CUBE view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Forecast Info for Engmnt Project - Cube view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
AccessControl.personalData.blocking #NOT_REQUIRED view
Metadata.allowExtensions true view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.modelingPattern #ANALYTICAL_CUBE view

Fields (63)

KeyFieldSource TableSource FieldDescription
EngagementProject Project
EngagementProjectName I_EngagementProject EngagementProjectName Cust.Proj. Name
EngagementProjectServiceOrg P_EngmntProjPlnActlAsSoldRevn CustomerProjectServiceOrg
ProjectProfileCode P_EngmntProjPlnActlAsSoldRevn ProjectProfileCode
EngagementProjFinPlanUUID P_EngmntProjPlnActlAsSoldRevn EngagementProjFinPlanUUID
LastChangeDateTime P_EngmntProjPlnActlAsSoldRevn LastChangeDateTime
WorkPackage
WorkPackageName I_WorkPackage WorkPackageName
WorkPackageStartDate I_WorkPackage WorkPackageStartDate
WorkPackageEndDate I_WorkPackage WorkPackageEndDate
WorkItem
EngagementProjectResourceType P_EngmntProjPlnActlAsSoldRevn EngagementProjectResourceType
EngagementProjectResource
FiscalPeriod P_EngmntProjPlnActlAsSoldRevn FiscalPeriod Month
FiscalYear P_EngmntProjPlnActlAsSoldRevn FiscalYear Year
FiscalYearPeriod P_EngmntProjPlnActlAsSoldRevn FiscalYearPeriod Year / Month
Currency P_EngmntProjPlnActlAsSoldRevn Currency
PlndCostAmt
SupplyEffortQty Staffed Effort
UnitOfMeasureendasUnitOfMeasure
ActualPlanDeviationCost P_EngmntProjPlnActlAsSoldRevn ActualPlanDeviationCost Cost Deviation
ActualPlanDeviationEffort P_EngmntProjPlnActlAsSoldRevn ActualPlanDeviationEffort Effort Deviation
EngmntProjectDeliveryOrg P_EngmntProjPlnActlAsSoldRevn EngagementProjectServiceOrg Delivery Organization
SalesOrder P_EngmntProjPlnActlAsSoldRevn SalesOrder
SalesOrderItem P_EngmntProjPlnActlAsSoldRevn SalesOrderItem
SalesOrderItemText I_SalesOrderItem SalesOrderItemText
WBSElement I_SalesOrderItem WBSElement
WBSElementInternalID I_SalesOrderItem WBSElementInternalID
WBSElementExternalID _WBSElementBasicData_2 WBSElementExternalID
EngmntProjPlanLineType P_EngmntProjPlnActlAsSoldRevn EngmntProjPlanLineType
WorkPackageTypeelseendasWorkPackageType Work Package Type
ProjectVisibility P_EngmntProjPlnActlAsSoldRevn ProjectVisibility Confidential Project
IsMyProject P_EngmntProjPlnActlAsSoldRevn IsMyProject My Projects
RevenueAsSoldAmount P_EngmntProjPlnActlAsSoldRevn TotalNetAmount
EngagementProjectType P_EngmntProjPlnActlAsSoldRevn EngagementProjectType
EngagementProjectStage P_EngmntProjPlnActlAsSoldRevn EngagementProjectStage
EngagementProjectCategory P_EngmntProjPlnActlAsSoldRevn EngagementProjectCategory
Customer P_EngmntProjPlnActlAsSoldRevn Customer
ControllingArea P_EngmntProjPlnActlAsSoldRevn ControllingArea
ProfitCenter P_EngmntProjPlnActlAsSoldRevn ProfitCenter
CostCenter
CompanyCode P_EngmntProjPlnActlAsSoldRevn EngmntProjectHeaderCompanyCode
_EngagementProject _EngagementProject
_WorkPackage _WorkPackage
_WorkItem _WorkItem
_EngagementProjectResourceType _EngagementProjectResourceType
_EngagementProjectResource _EngagementProjectResource
_Currency _Currency
_UnitOfMeasure _UnitOfMeasure
_EngagementProjectSrvcOrg _EngagementProjectSrvcOrg
_SalesOrder _SalesOrder
_SalesOrderItem _SalesOrderItem
_EngmntProjectDeliveryOrg _EngmntProjectDeliveryOrg
_WorkPackageUnitUoM _WorkPackageUnitUoM
_EngmntProjFinPlanStatus _EngmntProjFinPlanStatus
_WBSElementBasicData _WBSElementBasicData
_WBSElementBasicData_2 _WBSElementBasicData_2
_EngagementProjectStage _EngagementProjectStage
_Customer _Customer
_ControllingArea _ControllingArea
_ProfitCenter _ProfitCenter
_CostCenter _CostCenter
_CompanyCode _CompanyCode
@AbapCatalog.sqlViewName: 'IEPFCSTCUBE2'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@VDM.viewType: #COMPOSITE
@Analytics: { dataCategory: #CUBE }
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Forecast Info for Engmnt Project - Cube'
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MIXED
@AccessControl.personalData.blocking: #NOT_REQUIRED
@Metadata.allowExtensions:true
@Metadata.ignorePropagatedAnnotations:true
@ObjectModel: {modelingPattern: #ANALYTICAL_CUBE,
               supportedCapabilities: [#ANALYTICAL_PROVIDER]
}
@AbapCatalog: { dbHints: [{dbSystem: #HDB, hint:'OPTIMIZATION_LEVEL(RULE_BASED)'}]}
@Consumption.dbHints: ['NO_USE_OLAP_PLAN']
define view I_EngmntProjFcstCube_2
  with parameters
    P_FiscalYearPeriod : /cpd/pfp_review_year_period,
    @Consumption.hidden: true
    @Environment.systemField: #SYSTEM_LANGUAGE
    P_Language         : sylangu
  as select from    I_EngagementProject                                                              as EngagementProject
    inner join      I_EngagementProjFinancialPlan                                                    as EngagementProjFinancialPlan on EngagementProject.EngagementProjectUUID = EngagementProjFinancialPlan.EngagementProjectUUID
    inner join      P_EngmntProjPlnActlAsSoldRevn                                                    as EngmntProjWrkPckgPlanActual on EngagementProject.EngagementProject = EngmntProjWrkPckgPlanActual.EngagementProject
    inner join      I_WorkPackage                                                                    as WorkPackage                 on EngmntProjWrkPckgPlanActual.WorkPackage = WorkPackage.WorkPackage
//    left outer join I_EngmntProjFinPlanStatus                                                        as InitialStatus               on InitialStatus.EngmntProjReviewStsIsInitial = 'X'

    left outer join I_EngmntProjUnitCompltnPct (P_FiscalYearPeriod : $parameters.P_FiscalYearPeriod) as EngmntProjUnitCompltnPct    on  EngmntProjWrkPckgPlanActual.EngagementProject               = EngmntProjUnitCompltnPct.EngagementProject
                                                                                                                                    and EngmntProjWrkPckgPlanActual.IsMyProject                     = EngmntProjUnitCompltnPct.IsMyProject
                                                                                                                                    and EngmntProjWrkPckgPlanActual.EngagementProjectCategory       = EngmntProjUnitCompltnPct.EngagementProjectCategory
                                                                                                                                    and EngmntProjWrkPckgPlanActual.CustomerProjectServiceOrg       = EngmntProjUnitCompltnPct.CustomerProjectServiceOrg
                                                                                                                                    and EngmntProjWrkPckgPlanActual.Customer                        = EngmntProjUnitCompltnPct.Customer
                                                                                                                                    and EngmntProjWrkPckgPlanActual.ProjectVisibility               = EngmntProjUnitCompltnPct.ProjectVisibility
                                                                                                                                    and EngmntProjWrkPckgPlanActual.EngagementProjectStage          = EngmntProjUnitCompltnPct.EngagementProjectStage
                                                                                                                                    and EngmntProjWrkPckgPlanActual.ProjectProfileCode              = EngmntProjUnitCompltnPct.ProjectProfileCode
                                                                                                                                    and EngmntProjWrkPckgPlanActual.EngagementProjectType           = EngmntProjUnitCompltnPct.EngagementProjectType
                                                                                                                                    and EngmntProjWrkPckgPlanActual.EngmntProjectHeaderCompanyCode  = EngmntProjUnitCompltnPct.EngmntProjectHeaderCompanyCode
                                                                                                                                    and EngmntProjWrkPckgPlanActual.EngagementProjectCostCenter     = EngmntProjUnitCompltnPct.EngagementProjectCostCenter
                                                                                                                                    and EngmntProjWrkPckgPlanActual.ProfitCenter                    = EngmntProjUnitCompltnPct.ProfitCenter
                                                                                                                                    and EngmntProjWrkPckgPlanActual.WorkPackage                     = EngmntProjUnitCompltnPct.WorkPackage
                                                                                                                                    and EngmntProjWrkPckgPlanActual.EngmtProjFinPlanVersion         = EngmntProjUnitCompltnPct.EngmtProjFinPlanVersion
                                                                                                                                    and EngmntProjWrkPckgPlanActual.LastChangeDateTime              = EngmntProjUnitCompltnPct.LastChangeDateTime

    left outer join I_SalesOrderItem                                                                 as SalesOrderItem              on  WorkPackage.SalesOrder     = SalesOrderItem.SalesOrder
                                                                                                                                    and WorkPackage.SalesOrderItem = SalesOrderItem.SalesOrderItem
  association [0..1] to I_EngagementProject         as _EngagementProject             on  $projection.EngagementProject = _EngagementProject.EngagementProject

  association [0..1] to I_Customer                  as _Customer                      on  $projection.Customer = _Customer.Customer

  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..*] to I_CostCenter                as _CostCenter                    on  $projection.CostCenter      = _CostCenter.CostCenter
                                                                                      and $projection.ControllingArea = _CostCenter.ControllingArea

  association [0..1] to I_CompanyCode               as _CompanyCode                   on  $projection.CompanyCode = _CompanyCode.CompanyCode

  association [0..1] to I_WorkPackage               as _WorkPackage                   on  $projection.WorkPackage = _WorkPackage.WorkPackage

  association [0..1] to I_SalesOrder                as _SalesOrder                    on  $projection.SalesOrder = _SalesOrder.SalesOrder

  association [0..1] to I_SalesOrderItem            as _SalesOrderItem                on  $projection.SalesOrderItem = _SalesOrderItem.SalesOrderItem
                                                                                      and $projection.SalesOrder     = _SalesOrderItem.SalesOrder

  association [0..1] to I_EngagementProjectResource as _EngagementProjectResource     on  $projection.EngagementProjectResource     = _EngagementProjectResource.EngagementProjectResource
                                                                                      and $projection.EngagementProjectResourceType = _EngagementProjectResource.EngagementProjectResourceType

  association [0..1] to I_WorkPackageWorkItem       as _WorkItem                      on  $projection.WorkItem    = _WorkItem.WorkItem
                                                                                      and $projection.WorkPackage = _WorkItem.WorkPackage

  association [0..1] to I_Currency                  as _Currency                      on  $projection.Currency = _Currency.Currency

  association [0..1] to I_UnitOfMeasure             as _UnitOfMeasure                 on  $projection.UnitOfMeasure = _UnitOfMeasure.UnitOfMeasure

  association [0..1] to I_UnitOfMeasure             as _WorkPackageUnitUoM            on  $projection.WorkPackageUnitUoM = _WorkPackageUnitUoM.UnitOfMeasure

  association [0..1] to I_EngagementProjectSrvcOrg  as _EngmntProjectDeliveryOrg      on  $projection.EngmntProjectDeliveryOrg = _EngmntProjectDeliveryOrg.EngagementProjectServiceOrg

  association [0..1] to I_EngagementProjectSrvcOrg  as _EngagementProjectSrvcOrg      on  $projection.EngagementProjectServiceOrg = _EngagementProjectSrvcOrg.EngagementProjectServiceOrg

  association [0..1] to I_EngmntProjResourceType    as _EngagementProjectResourceType on  $projection.EngagementProjectResourceType = _EngagementProjectResourceType.EngagementProjectResourceType

  association [0..1] to I_WBSElementBasicData       as _WBSElementBasicData           on  $projection.WBSElement = _WBSElementBasicData.WBSElementInternalID

  association [0..1] to I_WBSElementBasicData       as _WBSElementBasicData_2         on  $projection.WBSElementInternalID = _WBSElementBasicData_2.WBSElementInternalID

  association [0..1] to I_EngmntProjFinPlanStatus   as _EngmntProjFinPlanStatus       on  $projection.EngagementProjectReviewStatus = _EngmntProjFinPlanStatus.EngagementProjectReviewStatus
{
  @ObjectModel.foreignKey.association: '_EngagementProject'
  @EndUserText.label: 'Project'
  cast(EngmntProjWrkPckgPlanActual.EngagementProject as /cpd/project )          as EngagementProject,

  @EndUserText.label: 'Cust.Proj. Name'
  EngagementProject.EngagementProjectName                                       as EngagementProjectName,


  @ObjectModel.foreignKey.association: '_EngmntProjFinPlanStatus'
  case when EngagementProjFinancialPlan.EngagementProjectReviewStatus <> ''
  then EngagementProjFinancialPlan.EngagementProjectReviewStatus
  else cast('0INI' as /cpd/pfp_status_id ) end                                  as EngagementProjectReviewStatus,


  @ObjectModel.foreignKey.association: '_EngagementProjectSrvcOrg'
  EngmntProjWrkPckgPlanActual.CustomerProjectServiceOrg                         as EngagementProjectServiceOrg,

  @Consumption.hidden: true
  EngmntProjWrkPckgPlanActual.ProjectProfileCode,

  EngmntProjWrkPckgPlanActual.EngagementProjFinPlanUUID,

  @Semantics.dateTime:true
  @Semantics.systemDateTime.lastChangedAt:true
  EngmntProjWrkPckgPlanActual.LastChangeDateTime,

  @ObjectModel.foreignKey.association: '_WorkPackage'
  cast (WorkPackage.WorkPackage as /cpd/workpackage)                            as WorkPackage,

  WorkPackage.WorkPackageName                                                   as WorkPackageName,

  WorkPackage.WorkPackageStartDate                                              as WorkPackageStartDate,

  WorkPackage.WorkPackageEndDate                                                as WorkPackageEndDate,

  @ObjectModel.foreignKey.association: '_WorkItem'
  cast(EngmntProjWrkPckgPlanActual.WorkItem as  /cpd/workitem )                 as WorkItem,

  @Analytics.internalName: #LOCAL
  @ObjectModel.foreignKey.association: '_EngagementProjectResourceType'
  EngmntProjWrkPckgPlanActual.EngagementProjectResourceType                     as EngagementProjectResourceType,

  @ObjectModel.foreignKey.association: '_EngagementProjectResource'
  cast (EngmntProjWrkPckgPlanActual.EngagementProjectResource as /cpd/resource) as EngagementProjectResource,

  @EndUserText.label: 'Month'
  EngmntProjWrkPckgPlanActual.FiscalPeriod                                      as FiscalPeriod,

  @EndUserText.label: 'Year'
  EngmntProjWrkPckgPlanActual.FiscalYear                                        as FiscalYear,

  @EndUserText.label: 'Year / Month'
  EngmntProjWrkPckgPlanActual.FiscalYearPeriod                                  as FiscalYearPeriod,

  @ObjectModel.foreignKey.association: '_Currency'
  @Semantics.currencyCode: true
  EngmntProjWrkPckgPlanActual.Currency                                          as Currency,

  @DefaultAggregation: #SUM
  @Semantics.amount.currencyCode: 'Currency'
  cast(EngmntProjWrkPckgPlanActual.PlndCostAmt as /cpd/plan_cost)               as PlndCostAmt,

  @DefaultAggregation: #SUM
  @Semantics.amount.currencyCode: 'Currency'
  case when EngmntProjWrkPckgPlanActual.FiscalYearPeriod <= :P_FiscalYearPeriod
  then
  EngmntProjWrkPckgPlanActual.ActlCostAmt
  else cast(0 as /cpd/actual_cost)
  end                                                                           as ActlCostAmt,

  @EndUserText.label: 'Staffed Effort'
  @DefaultAggregation: #SUM
  @Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
  cast(EngmntProjWrkPckgPlanActual.SupplyEffortQty as /cpd/planned_effort)      as SupplyEffortQty,

  @EndUserText.label: 'Work Package UoM'
  @ObjectModel.foreignKey.association: '_WorkPackageUnitUoM'
  @Semantics.unitOfMeasure:true
  case
  when EngmntProjWrkPckgPlanActual.EngagementProjectResourceType = '0SRV'
  then EngmntProjUnitCompltnPct.WorkPackageUnitUoM
  end                                                                           as WorkPackageUnitUoM,

  @ObjectModel.foreignKey.association: '_UnitOfMeasure'
  @Semantics.unitOfMeasure:true
  case
  when EngmntProjWrkPckgPlanActual.EngagementProjectResourceType != '0SRV'
  then EngmntProjWrkPckgPlanActual.UnitOfMeasure
  end                                                                           as UnitOfMeasure,

  @DefaultAggregation: #SUM
  @Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
  case
  when EngmntProjWrkPckgPlanActual.EngagementProjectResourceType = '0ACT'
  then cast(EngmntProjWrkPckgPlanActual.PlndEffortQty as /cpd/planned_effort)
  end                                                                           as PlndEffortQty,

  @EndUserText.label: 'Planned Qty (Addl Res.)'
  @DefaultAggregation: #SUM
  @Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
  case
  when EngmntProjWrkPckgPlanActual.EngagementProjectResourceType = '0ADL'
  then EngmntProjWrkPckgPlanActual.PlndEffortQty
  end                                                                           as AddlResourcePlannedQuantity,

  @EndUserText.label: 'Planned Qty (Service)'
  @DefaultAggregation: #SUM
  @Semantics.quantity.unitOfMeasure: 'WorkPackageUnitUoM'
  case
  when EngmntProjWrkPckgPlanActual.EngagementProjectResourceType = '0SRV'
  then cast(EngmntProjWrkPckgPlanActual.PlndEffortQty as /cpd/planned_effort)
  end                                                                           as PlanUnitQuantity,

  @DefaultAggregation: #SUM
  @Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
  case
  when EngmntProjWrkPckgPlanActual.FiscalYearPeriod <= :P_FiscalYearPeriod and EngmntProjWrkPckgPlanActual.EngagementProjectResourceType = '0ACT'
  then
  cast(EngmntProjWrkPckgPlanActual.ActlEffortQty as /cpd/actual_effort)
  end                                                                           as ActlEffortQty,

  @EndUserText.label: 'Actual Qty (Addl Res.)'
  @DefaultAggregation: #SUM
  @Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
  case
  when EngmntProjWrkPckgPlanActual.FiscalYearPeriod <= :P_FiscalYearPeriod and EngmntProjWrkPckgPlanActual.EngagementProjectResourceType = '0ADL'
  then EngmntProjWrkPckgPlanActual.ActlEffortQty
  end                                                                           as AddlResourceActualQuantity,

  @EndUserText.label: 'Actual Qty (Service)'
  @DefaultAggregation: #SUM
  @Semantics.quantity.unitOfMeasure: 'WorkPackageUnitUoM'
  case
  when EngmntProjWrkPckgPlanActual.EngagementProjectResourceType = '0SRV' and EngmntProjWrkPckgPlanActual.FiscalYearPeriod <= :P_FiscalYearPeriod
  then cast(EngmntProjWrkPckgPlanActual.ActlEffortQty as /cpd/planned_effort)
  end                                                                           as ActualUnitQty,

  @EndUserText.label: 'Cost Deviation'
  @DefaultAggregation: #SUM
  @Semantics.amount.currencyCode: 'Currency'
  EngmntProjWrkPckgPlanActual.ActualPlanDeviationCost                           as ActualPlanDeviationCost,

  @EndUserText.label: 'Effort Deviation'
  @DefaultAggregation: #SUM
  @Semantics.quantity.unitOfMeasure: 'UnitOfMeasure'
  EngmntProjWrkPckgPlanActual.ActualPlanDeviationEffort                         as ActualPlanDeviationEffort,

  @EndUserText.label: 'Delivery Organization'
  @ObjectModel.foreignKey.association: '_EngmntProjectDeliveryOrg'
  EngmntProjWrkPckgPlanActual.EngagementProjectServiceOrg                       as EngmntProjectDeliveryOrg,

  @ObjectModel.foreignKey.association: '_SalesOrder'
  EngmntProjWrkPckgPlanActual.SalesOrder                                        as SalesOrder,

  @ObjectModel.foreignKey.association: '_SalesOrderItem'
  EngmntProjWrkPckgPlanActual.SalesOrderItem                                    as SalesOrderItem,

  SalesOrderItem.SalesOrderItemText                                             as SalesOrderItemText,

  @Consumption.hidden: true
  @API.element.releaseState: #DEPRECATED
  @API.element.successor: 'WBSElementInternalID'
  SalesOrderItem.WBSElement,

  @Consumption.hidden: true
  SalesOrderItem.WBSElementInternalID,

  _WBSElementBasicData_2.WBSElementExternalID                                   as WBSElementExternalID,

  EngmntProjWrkPckgPlanActual.EngmntProjPlanLineType                            as EngmntProjPlanLineType,

  @DefaultAggregation: #MAX
  case
  when WorkPackage.WorkPackageType = 'U' then
  cast(EngmntProjUnitCompltnPct.UnitCompltnRateInPercent as /cpd/sc_completionrate)
  end                                                                           as UnitCompltnRateInPercent,

  @DefaultAggregation: #MAX
  @VDM.lifecycle.status: #DEPRECATED
  @VDM.lifecycle.successor: 'RsceIsServiceBasedWorkPackage'
  case
  when WorkPackage.WorkPackageType = 'U' and EngmntProjWrkPckgPlanActual.EngagementProjectResourceType != '0SRV'
  then cast(1 as /cpd/planned_effort)
  else cast(0 as /cpd/planned_effort)
  end                                                                           as ResourceIsOfUnitWorkPackage,

  @DefaultAggregation: #MAX
  case
  when WorkPackage.WorkPackageType = 'U' and EngmntProjWrkPckgPlanActual.EngagementProjectResourceType != '0SRV'
  then 1
  else 0
  end                                                                           as RsceIsServiceBasedWorkPackage,

  @EndUserText.label: 'Work Package Type'
  case
  when WorkPackage.WorkPackageType = 'U'
  then WorkPackage.WorkPackageType
  else ''
  end                                                                           as WorkPackageType,

  @EndUserText.label:'Confidential Project'
  @Analytics.internalName: #LOCAL
  EngmntProjWrkPckgPlanActual.ProjectVisibility                                 as ProjectVisibility,

  @EndUserText.label: 'My Projects'
  @Analytics.internalName: #LOCAL
  @Semantics.booleanIndicator:true
  EngmntProjWrkPckgPlanActual.IsMyProject,

  @EndUserText.label: 'Forecast Year'
  substring(EngagementProjFinancialPlan.EngmntProjReviewYearPeriod, 1, 4)       as EngagementProjectForecastYear,

  @EndUserText.label: 'Forecast Month'
  substring(EngagementProjFinancialPlan.EngmntProjReviewYearPeriod, 6, 2)       as EngagementProjectForecastMonth,

  @DefaultAggregation: #SUM
  @Semantics.amount.currencyCode: 'Currency'
  EngmntProjWrkPckgPlanActual.TotalNetAmount                                    as RevenueAsSoldAmount,


  EngmntProjWrkPckgPlanActual.EngagementProjectType,
  @ObjectModel.foreignKey.association: '_EngagementProjectStage'
  EngmntProjWrkPckgPlanActual.EngagementProjectStage,
  EngmntProjWrkPckgPlanActual.EngagementProjectCategory,
  @ObjectModel.foreignKey.association: '_Customer'
  EngmntProjWrkPckgPlanActual.Customer,
  @ObjectModel.foreignKey.association: '_ControllingArea'
  EngmntProjWrkPckgPlanActual.ControllingArea,
  @ObjectModel.foreignKey.association: '_ProfitCenter'
  EngmntProjWrkPckgPlanActual.ProfitCenter,
  @ObjectModel.foreignKey.association: '_CostCenter'
  cast(EngmntProjWrkPckgPlanActual.EngagementProjectCostCenter as kostl)       as CostCenter,
  @ObjectModel.foreignKey.association: '_CompanyCode'
  EngmntProjWrkPckgPlanActual.EngmntProjectHeaderCompanyCode                    as CompanyCode,

  _EngagementProject,
  _WorkPackage,
  _WorkItem,
  _EngagementProjectResourceType,
  _EngagementProjectResource,
  _Currency,
  _UnitOfMeasure,
  _EngagementProjectSrvcOrg,
  _SalesOrder,
  _SalesOrderItem,
  _EngmntProjectDeliveryOrg,
  _WorkPackageUnitUoM,
  _EngmntProjFinPlanStatus,
  @API.element.releaseState: #DEPRECATED
  @API.element.successor: '_WBSElementBasicData_2'
  _WBSElementBasicData,
  _WBSElementBasicData_2,
  _EngagementProjectStage,
  _Customer,
  _ControllingArea,
  _ProfitCenter,
  _CostCenter,
  _CompanyCode
}
where
  EngmntProjWrkPckgPlanActual.EngmtProjFinPlanVersion = '1'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ENGAGEMENTPROJECT",
"I_ENGAGEMENTPROJFINANCIALPLAN",
"I_ENGMNTPROJUNITCOMPLTNPCT",
"I_SALESORDERITEM",
"I_WBSELEMENTBASICDATA",
"I_WORKPACKAGE",
"P_ENGMNTPROJPLNACTLASSOLDREVN"
],
"ASSOCIATED":
[
"I_COMPANYCODE",
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_CURRENCY",
"I_CUSTOMER",
"I_ENGAGEMENTPROJECT",
"I_ENGAGEMENTPROJECTRESOURCE",
"I_ENGAGEMENTPROJECTSRVCORG",
"I_ENGAGEMENTPROJECTSTAGE",
"I_ENGMNTPROJFINPLANSTATUS",
"I_ENGMNTPROJRESOURCETYPE",
"I_PROFITCENTER",
"I_SALESORDER",
"I_SALESORDERITEM",
"I_UNITOFMEASURE",
"I_WBSELEMENTBASICDATA",
"I_WORKPACKAGE",
"I_WORKPACKAGEWORKITEM"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/