@AbapCatalog.viewEnhancementCategory: [#NONE]
@EndUserText.label : 'Enterprise Project Header KPIs'
@AccessControl: {
authorizationCheck: #MANDATORY,
personalData.blocking: #NOT_REQUIRED
}
@Metadata.ignorePropagatedAnnotations: true
@Metadata.allowExtensions: true
@ObjectModel.usageType:{
serviceQuality: #B,
sizeCategory: #L,
dataClass: #TRANSACTIONAL
}
@VDM.viewType: #CONSUMPTION
define view entity C_EntProjProfnlSrvcProjKPIs
as select from I_EnterpriseProject
association [1..1] to I_EnterpriseProject as _EnterpriseProject on $projection.ProjectUUID = _EnterpriseProject.ProjectUUID
association [0..1] to I_EnterpriseProjectForUser as _EnterpriseProjectForUser on $projection.ProjectUUID = _EnterpriseProjectForUser.ProjectUUID
{
key ProjectUUID,
Project,
ProjectInternalID,
ProjectProfileCode,
ProcessingStatus,
Currency,
cast ( '%' as abap.unit ( 3 ) ) as UnitOfMeasure,
cast ( 'H' as abap.unit ( 3 ) ) as HoursUnitOfMeasure,
// As per GTNC this field is candidate for deprecation. Will confirm whether we can use any other field
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.dec ( 5, 2 ) ) as PercentageOfCompletion,
@Semantics.quantity.unitOfMeasure : 'HoursUnitOfMeasure'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.quan ( 30, 3 ) ) as EstimateToCompleteEffort,
@Semantics.amount.currencyCode : 'Currency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.curr ( 30, 2 ) ) as EstimateToCompleteCost,
@Semantics.quantity.unitOfMeasure : 'HoursUnitOfMeasure'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.quan ( 30, 3 ) ) as EstimateAtCompletionEffort,
@Semantics.amount.currencyCode : 'Currency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.curr ( 30, 2 ) ) as EstimateAtCompletionCost,
@Semantics.amount.currencyCode : 'Currency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.curr ( 30, 2 ) ) as ActlCostAmt,
@Semantics.amount.currencyCode : 'Currency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.curr ( 30, 2 ) ) as RecognizedRevenueAmount,
@Semantics.quantity.unitOfMeasure : 'UnitOfMeasure'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.dec ( 30, 2 ) ) as RecognizedMarginPercent,
@Semantics.quantity.unitOfMeasure : 'HoursUnitOfMeasure'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.quan ( 30, 3 ) ) as PlndEffortQty,
@EndUserText.label : 'Planned Cost'
@Semantics.amount.currencyCode : 'Currency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.curr ( 30, 2 ) ) as PlndCostAmt,
@Semantics.amount.currencyCode : 'Currency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.curr ( 30, 2 ) ) as PlndRevnAmt,
@Semantics.amount.currencyCode : 'Currency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.curr ( 30, 2 ) ) as PlannedExpenseCost,
@Semantics.quantity.unitOfMeasure : 'HoursUnitOfMeasure'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.quan ( 30, 3 ) ) as TotalStaffedEfforts,
@Semantics.quantity.unitOfMeasure : 'HoursUnitOfMeasure'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.quan ( 30, 3 ) ) as UnstaffedEffort,
@Semantics.quantity.unitOfMeasure : 'HoursUnitOfMeasure'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.quan ( 30, 3 ) ) as TotalMissingHours,
@Semantics.quantity.unitOfMeasure : 'HoursUnitOfMeasure'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.quan ( 30, 3 ) ) as ActlEffortQty,
@Semantics.amount.currencyCode : 'Currency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.curr ( 30, 2 ) ) as ActualExpenseCost,
@Semantics.amount.currencyCode : 'Currency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.curr ( 30, 2 ) ) as BilledRevenueAmtInProjCrcy,
@Semantics.amount.currencyCode : 'Currency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.curr ( 30, 2 ) ) as UnbilldRevnAmountInProjCrcy,
@Semantics.amount.currencyCode : 'Currency'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.curr ( 30, 2 ) ) as TotalReceivablesAmount,
@Semantics.quantity.unitOfMeasure : 'HoursUnitOfMeasure'
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy :'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
cast ( 0 as abap.quan ( 30, 3 ) ) as TotalUnapprovedHours,
// Association
_EnterpriseProject,
_EnterpriseProjectForUser
}
where
ProjectCategory = '7'
Depth:
1
2
3
4
5
All
Reload
C_EntProjProfnlSrvcProjKPIs view_entity