C_EntProjProfnlSrvcProjKPIs

DDL: C_ENTPROJPROFNLSRVCPROJKPIS Type: view_entity CONSUMPTION Package: ODATA_PPM_PRO_CTRL_PROFNL_SRVC

Enterprise Project Header KPIs

C_EntProjProfnlSrvcProjKPIs is a Consumption CDS View that provides data about "Enterprise Project Header KPIs" in SAP S/4HANA. It reads from 1 data source (I_EnterpriseProject) and exposes 31 fields with key field ProjectUUID. It has 2 associations to related views. It is exposed through 1 OData service (UI_ENTPROJCTRLPROFNLSRVC). Part of development package ODATA_PPM_PRO_CTRL_PROFNL_SRVC.

Data Sources (1)

SourceAliasJoin Type
I_EnterpriseProject I_EnterpriseProject from

Associations (2)

CardinalityTargetAliasCondition
[1..1] I_EnterpriseProject _EnterpriseProject $projection.ProjectUUID = _EnterpriseProject.ProjectUUID
[0..1] I_EnterpriseProjectForUser _EnterpriseProjectForUser $projection.ProjectUUID = _EnterpriseProjectForUser.ProjectUUID

Annotations (9)

NameValueLevelField
EndUserText.label Enterprise Project Header KPIs view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED view
Metadata.ignorePropagatedAnnotations true view
Metadata.allowExtensions true view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
VDM.viewType #CONSUMPTION view

OData Services (1)

ServiceBindingVersionContractRelease
UI_ENTPROJCTRLPROFNLSRVC UI_ENTPROJCTRLPROFNLSRVC V4 C1 NOT_TO_BE_RELEASED_STABLE

Fields (31)

KeyFieldSource TableSource FieldDescription
KEY ProjectUUID ProjectUUID
Project Project
ProjectInternalID ProjectInternalID
ProjectProfileCode ProjectProfileCode
ProcessingStatus ProcessingStatus
Currency Currency
UnitOfMeasure
HoursUnitOfMeasure
PercentageOfCompletion
EstimateToCompleteEffort
EstimateToCompleteCost
EstimateAtCompletionEffort
EstimateAtCompletionCost
ActlCostAmt
RecognizedRevenueAmount
RecognizedMarginPercent
PlndEffortQty
PlndCostAmt Planned Cost
PlndRevnAmt
PlannedExpenseCost
TotalStaffedEfforts
UnstaffedEffort
TotalMissingHours
ActlEffortQty
ActualExpenseCost
BilledRevenueAmtInProjCrcy
UnbilldRevnAmountInProjCrcy
TotalReceivablesAmount
TotalUnapprovedHours
_EnterpriseProject _EnterpriseProject
_EnterpriseProjectForUser _EnterpriseProjectForUser
@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'