@AbapCatalog.sqlViewName: 'PENGPRJPLNITEM'
@AbapCatalog.compiler.compareFilter: true
@VDM.private: true
@VDM.viewType: #COMPOSITE
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@AccessControl.authorizationCheck: #NOT_REQUIRED
define view P_EngmntProjPlanLineItemKPI
as select from I_EngmntProjPlnDataUnitVers
{
EngagementProject,
WorkPackageUUID,
WorkPackage,
//EngagementProjFinPlanUUID,
EngmtProjFinPlanVersion,
BillingControlCategory,
ResourceDemandUUID,
EngagementProjectServiceOrg,
case when IsUnitBased = 'X'
then EngagementProjectResource end as WorkPackageUnit,
case when IsUnitBased <> 'X'
then EngagementProjectResource end as EngagementProjectResource,
case when IsUnitBased = 'X'
then UnitOfMeasure end as WorkPackageUnitUoM,
case when IsUnitBased <> 'X'
then UnitOfMeasure end as UnitOfMeasure,
EngagementProjectResourceType,
WorkItem,
EmploymentInternalID,
EngmtProjEmployeeIsStaffed,
FiscalYear,
FiscalPeriod,
Currency,
EngmntProjPlanLineType,
case when ( EngmntProjPlanLineType = 'U' and EngagementProjectResourceType = '0ACT' ) or
( EngmntProjPlanLineType = 'D' and EngagementProjectResourceType = '0ADL' )
then PlndEffortQty
else cast ( cast ('0' as abap.quan( 15, 3 )) as megxxx ) end as RemainingDemandEffortQty,
case when EngmntProjPlanLineType = 'S' and EngagementProjectResourceType = '0ACT'
then PlndEffortQty
else cast ( cast ('0' as abap.quan( 15, 3 )) as megxxx ) end as SupplyEffortQty,
case when ( EngmntProjPlanLineType = 'U' and EngagementProjectResourceType = '0ACT' ) or
( EngmntProjPlanLineType = 'D' and EngagementProjectResourceType = '0ADL' )
then PlndCostAmt
else cast ( cast ('0' as abap.curr( 23,2)) as /cpd/pfp_curr ) end as RemainingDemandCostAmt,
case when EngmntProjPlanLineType = 'S' and EngagementProjectResourceType = '0ACT'
then PlndCostAmt
else cast ( cast ('0' as abap.curr( 23,2)) as /cpd/pfp_curr ) end as SupplyCostAmt,
case when ( EngmntProjPlanLineType = 'U' and EngagementProjectResourceType = '0ACT' ) or
( EngmntProjPlanLineType = 'D' and EngagementProjectResourceType = '0ADL' )
then PlndRevnAmt
else cast ( cast ('0' as abap.curr( 23,2)) as /cpd/pfp_curr ) end as RemainingDemandRevnAmt,
case when EngmntProjPlanLineType = 'S' and EngagementProjectResourceType = '0ACT'
then PlndRevnAmt
else cast ( cast ('0' as abap.curr( 23,2)) as /cpd/pfp_curr ) end as SupplyRevnAmt,
case when EngmntProjPlanLineType = 'D' and EngagementProjectResourceType = '0EXP'
then PlndCostAmt
else cast ( cast ('0' as abap.curr( 23,2)) as /cpd/pfp_curr ) end as PlannedExpenseCost,
case when EngmntProjPlanLineType = 'D' and EngagementProjectResourceType = '0EXP'
then PlndRevnAmt
else cast ( cast ('0' as abap.curr( 23,2)) as /cpd/pfp_curr ) end as PlannedExpenseRevenue,
case when EngmntProjPlanLineType = 'D' and ( EngagementProjectResourceType = '0ACT' or EngagementProjectResourceType = '0ADL' ) and
IsUnitBased <> 'X'
then PlndEffortQty
else cast ( cast ('0' as abap.quan( 15, 3 )) as megxxx ) end as DemandEffortQty,
case when EngmntProjPlanLineType = 'D' and ( EngagementProjectResourceType = '0ACT' or EngagementProjectResourceType = '0ADL' )
and IsUnitBased <> 'X'
then PlndCostAmt
else cast ( cast ('0' as abap.curr( 23,2)) as /cpd/pfp_curr ) end as DemandCostAmt,
case when EngmntProjPlanLineType = 'D' and IsUnitBased = 'X'
then PlndRevnAmt
else cast ( cast ('0' as abap.curr( 23,2)) as /cpd/pfp_curr ) end as PlannedUnitRevenue,
case when EngmntProjPlanLineType = 'D' and IsUnitBased = 'X'
then PlndEffortQty
else cast ( cast ('0' as abap.quan( 15, 3 )) as megxxx ) end as PlanUnitQuantity,
case when EngmntProjPlanLineType = 'D'
then ActualPlanDeviationEffort
else cast ( cast ('0' as abap.curr( 23,2)) as megxxx ) end as ActualPlanDeviationEffort,
case when EngmntProjPlanLineType = 'D'
then ActualPlanDeviationCost
else cast ( cast ('0' as abap.curr( 23,2)) as /cpd/pfp_curr ) end as ActualPlanDeviationCost,
case when EngmntProjPlanLineType = 'U' and EngagementProjectResourceType = '0ACT'
then PlndEffortQty
else cast ( cast ('0' as abap.quan( 15, 3 )) as megxxx ) end as RscePlannedQuantity,
case when EngmntProjPlanLineType = 'U' and EngagementProjectResourceType = '0ACT'
then PlndCostAmt
else cast ( cast ('0' as abap.curr( 23,2)) as /cpd/pfp_curr ) end as RemainingRoleCostAmt,
IsUnitBased,
_EngagementProject
}