C_EntProjCtrlProfnlSrvcTP

DDL: C_ENTPROJCTRLPROFNLSRVCTP Type: view_entity CONSUMPTION

Project Control Profnl Services Projects

C_EntProjCtrlProfnlSrvcTP is a Consumption CDS View that provides data about "Project Control Profnl Services Projects" in SAP S/4HANA. It reads from 1 data source (I_EnterpriseProjectTP_2) and exposes 38 fields with key field ProjectUUID. It has 8 associations to related views. It is exposed through 1 OData service (UI_ENTPROJCTRLPROFNLSRVC).

Data Sources (1)

SourceAliasJoin Type
I_EnterpriseProjectTP_2 I_EnterpriseProjectTP_2 projection

Associations (8)

CardinalityTargetAliasCondition
[0..1] C_EntProjMemberContactCard _ProjectManager _ProjectManager.BusinessPartnerUUID = $projection.businesspartneruuid
[0..1] C_EntProjCustomerContactCard _Customer _Customer.Customer = $projection.customer
[0..1] C_EntProjCostCtrCntctCard _CostCenter _CostCenter.ControllingArea = $projection.ControllingArea and _CostCenter.CostCenter = $projection.CostCenter
[0..1] C_EntProjSrvcOrgCntctCard _ServiceOrganization _ServiceOrganization.EnterpriseProjectServiceOrg = $projection.EnterpriseProjectServiceOrg
[0..1] C_EntProjPrftCtrCntctCard _ProfitCenterContactCard _ProfitCenterContactCard.ControllingArea = $projection.ControllingArea and _ProfitCenterContactCard.ProfitCenter = $projection.ProfitCenter
[1..*] C_EnterpriseProjectEntitlement _EnterpriseProjectEntitlement _EnterpriseProjectEntitlement.ProjectUUID = $projection.ProjectUUID
[0..*] C_EntProjProfnlSrvcBillgElmnt _EntProjProfnlSrvcBillgElmnt _EntProjProfnlSrvcBillgElmnt.ProjectUUID = $projection.ProjectUUID
[0..*] C_EntProjProfnlSrvcBillgDoc _EntProjProfnlSrvcBillgDoc _EntProjProfnlSrvcBillgDoc.ProjectUUID = $projection.ProjectUUID

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
VDM.viewType #CONSUMPTION view
EndUserText.label Project Control Profnl Services Projects view
Metadata.allowExtensions true view

OData Services (1)

ServiceBindingVersionContractRelease
UI_ENTPROJCTRLPROFNLSRVC UI_ENTPROJCTRLPROFNLSRVC V4 C1 NOT_RELEASED

Fields (38)

KeyFieldSource TableSource FieldDescription
KEY ProjectUUID ProjectUUID
Project Project
char40
ProjectName ProjectDescription
ProjectInternalID ProjectInternalID
EnterpriseProjectServiceOrg EnterpriseProjectServiceOrg
CostCenter ResponsibleCostCenter
ProfitCenter ProfitCenter
ProjectStartDate ProjectStartDate
ProjectEndDate ProjectEndDate
ProjectCurrency ProjectCurrency
ProcessingStatus ProcessingStatus
ProjectProfileCode ProjectProfileCode
EntProjectIsConfidential EntProjectIsConfidential
CompanyCode CompanyCode
ControllingArea ControllingArea
ProjectCategory ProjectCategory
ProjectLastChangedDateTime ProjectLastChangedDateTime
BusinessSolutionOrder
BusinessSolutionOrderItem
BusinessPartnerUUID
Customer _CustomerToBusinessPartner Customer
ProjectProfileCodeTextlocalized
ProcessingStatusTextlocalized
char40
char10
UserID _EnterpriseProjectForUser UserID
virtualIsMyProjectboolean
virtualProjectIsInternalboolean
_ProjectManager _ProjectManager
_Customer _Customer
_EnterpriseProjectForUser _EnterpriseProjectForUser
_CostCenter _CostCenter
_ServiceOrganization _ServiceOrganization
_ProfitCenterContactCard _ProfitCenterContactCard
_EnterpriseProjectEntitlement _EnterpriseProjectEntitlement
_EntProjProfnlSrvcBillgElmnt _EntProjProfnlSrvcBillgElmnt
_EntProjProfnlSrvcBillgDoc _EntProjProfnlSrvcBillgDoc
@AccessControl: {
    authorizationCheck: #MANDATORY,
    personalData.blocking:  #BLOCKED_DATA_EXCLUDED
}
@ObjectModel: {
      usageType: {
      dataClass:       #TRANSACTIONAL,
      serviceQuality:  #C,
      sizeCategory:    #XL
     },
     semanticKey: ['Project']
}

@VDM.viewType: #CONSUMPTION
@EndUserText.label: 'Project Control Profnl Services Projects'
@Metadata : {
  allowExtensions: true
}
define root view entity C_EntProjCtrlProfnlSrvcTP
  provider contract transactional_query
  as projection on I_EnterpriseProjectTP_2 as Project
  association [0..1] to C_EntProjMemberContactCard     as _ProjectManager               on  _ProjectManager.BusinessPartnerUUID = $projection.businesspartneruuid
  association [0..1] to C_EntProjCustomerContactCard   as _Customer                     on  _Customer.Customer = $projection.customer
  association [0..1] to C_EntProjCostCtrCntctCard      as _CostCenter                   on  _CostCenter.ControllingArea = $projection.ControllingArea
                                                                                        and _CostCenter.CostCenter      = $projection.CostCenter

  association [0..1] to C_EntProjSrvcOrgCntctCard      as _ServiceOrganization          on  _ServiceOrganization.EnterpriseProjectServiceOrg = $projection.EnterpriseProjectServiceOrg
  association [0..1] to C_EntProjPrftCtrCntctCard      as _ProfitCenterContactCard      on  _ProfitCenterContactCard.ControllingArea = $projection.ControllingArea
                                                                                        and _ProfitCenterContactCard.ProfitCenter    = $projection.ProfitCenter
  association [1..*] to C_EnterpriseProjectEntitlement as _EnterpriseProjectEntitlement on  _EnterpriseProjectEntitlement.ProjectUUID = $projection.ProjectUUID
  association [0..*] to C_EntProjProfnlSrvcBillgElmnt  as _EntProjProfnlSrvcBillgElmnt  on  _EntProjProfnlSrvcBillgElmnt.ProjectUUID = $projection.ProjectUUID
  association [0..*] to C_EntProjProfnlSrvcBillgDoc    as _EntProjProfnlSrvcBillgDoc    on  _EntProjProfnlSrvcBillgDoc.ProjectUUID = $projection.ProjectUUID

{

  key            ProjectUUID           as ProjectUUID,
                 @ObjectModel:{
                   text.element: ['ProjectDescription']
                 }
                 Project,
                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
  virtual        ProjectDescription : abap.char(40),
                 //virtual field ProjectDescription field must be reverted back to normal field and Project Name must be removed.

                 //Also, remove its implementation from class: CL_EPPM_PROJ_CTRL_PROFNL_SRVC

                 //All this has to be done once project description for all projects is saved correctly in /S4PPM/TASK table

                 //Due to SDM error for some projects it was not saving the name in /S4PPM/TASK table


                 ProjectDescription    as ProjectName,
                 ProjectInternalID,
                 @ObjectModel:{
                        foreignKey.association: '_ServiceOrganization'
                 }
                 EnterpriseProjectServiceOrg,
                 @ObjectModel: {
                       foreignKey : { association: '_CostCenter'}
                 }
                 ResponsibleCostCenter as CostCenter,
                 @ObjectModel: {
                        foreignKey:{association: '_ProfitCenterContactCard'}
                 }
                 ProfitCenter,
                 ProjectStartDate,
                 ProjectEndDate,
                 ProjectCurrency,
                 @ObjectModel:{
                   text:{element: ['ProcessingStatusText']}
                 }
                 ProcessingStatus,
                 @ObjectModel:{
                   text:{element: ['ProjectProfileCodeText']}
                 }
                 ProjectProfileCode,
                 EntProjectIsConfidential,
                 CompanyCode,
                 ControllingArea,
                 ProjectCategory,
                 ProjectLastChangedDateTime,
                 @ObjectModel.sort.enabled: false
                 _EntProjProjectObjectLink[1: EntProjectObjectLinkType = 'SOLO']._EntProjBusSolnOrderLinkTP
                 [1: ProjectUUID = $projection.projectuuid].BusinessSolutionOrder,

                 @ObjectModel:{
                   text:{element: ['BusinessSolutionOrder']}
                 }
                 _EntProjProjectObjectLink[1: EntProjectObjectLinkType = 'SOLO']._EntProjBusSolnOrderLinkTP
                 [1: ProjectUUID = $projection.projectuuid].BusinessSolutionOrderItem,


                 @ObjectModel: {
                       foreignKey.association: '_ProjectManager'
                 }

                 _EntProjRoleStaffing[1: ProjectRoleType = 'YP_RL_0001']._BusinessPartner.BusinessPartnerUUID,
                 @ObjectModel:{
                       foreignKey.association: '_Customer'
                  }

                 _CustomerToBusinessPartner.Customer,
                 _ProjectProfileText.ProjectProfileCodeText         : localized,
                 _EntProjProfnlSrvcProjStgeTxt.ProcessingStatusText : localized,


                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
  virtual        SemanticObject     : abap.char(40),

                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
  virtual        SalesOrder         : abap.char(10),

                 _EnterpriseProjectForUser.UserID,
                 @ObjectModel:{
                   filter: {
                     enabled: true,
                     transformedBy: 'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
                   }
                 }
                 @Consumption :{
                  filter : {
                    selectionType: #SINGLE,
                    multipleSelections: false
                  }
                 }
                 @ObjectModel.sort.enabled: false
  virtual        IsMyProject        : boolean,

                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
  virtual        ProjectIsInternal      : boolean,

                 @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_EPPM_PROJ_CTRL_PROFNL_SRVC'
  virtual        ProjectHasOldBillingProcess       : boolean,
  
                 _ProjectManager,
                 _Customer,
                 _EnterpriseProjectForUser,
                 _CostCenter,
                 _ServiceOrganization,
                 _ProfitCenterContactCard,
                 _EnterpriseProjectEntitlement,
                 _EntProjProfnlSrvcBillgElmnt,
                 _EntProjProfnlSrvcBillgDoc

}

where

  ProjectCategory = '7'