C_EntProjectBriefHeaderTP

DDL: C_ENTPROJECTBRIEFHEADERTP Type: view_entity CONSUMPTION

Enterprise Project Brief Header

C_EntProjectBriefHeaderTP is a Consumption CDS View that provides data about "Enterprise Project Brief Header" in SAP S/4HANA. It reads from 1 data source (I_EnterpriseProjectTP_2) and exposes 51 fields with key field ProjectUUID. It has 2 associations to related views. It is exposed through 1 OData service (UI_ENTPROJECTBRIEF).

Data Sources (1)

SourceAliasJoin Type
I_EnterpriseProjectTP_2 I_EnterpriseProjectTP_2 projection

Associations (2)

CardinalityTargetAliasCondition
[0..*] C_EnterpriseProjectBriefCost _ProjectCostLineItem _ProjectCostLineItem.ProjectInternalID = $projection.ProjectInternalID
[0..1] C_PPM_ProjectMemberContactCard _Manager _Manager.BusinessPartnerUUID = $projection.businesspartneruuid

Annotations (10)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
EndUserText.label Enterprise Project Brief Header view
Metadata.allowExtensions true view
VDM.viewType #CONSUMPTION view
ObjectModel.representativeKey ProjectUUID view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.sizeCategory #L view
Search.searchable true view

OData Services (1)

ServiceBindingVersionContractRelease
UI_ENTPROJECTBRIEF UI_ENTPROJECTBRIEF V2 C1 NOT_RELEASED

Fields (51)

KeyFieldSource TableSource FieldDescription
KEY ProjectUUID ProjectUUID
ProjectSummaryTaskUUID ProjectSummaryTaskUUID
ProjectInternalID ProjectInternalID
WBSElementInternalID WBSElementInternalID
Project PROJECT Project
ProjectDescription ProjectDescription
OverallProjectStatus
StatusTrend
OverallProjectStsCriticality
StatusTrendCriticality
OverallProjectStatusSort
StatusTrendSort
StatusDescription
StatusTrendDescription
NextRelevantMlstnDate _NextRlvtMilestone NextRelevantMlstnDate
NextRelevantMlstnName _NextRlvtMilestone NextRelevantMlstnName
NextEssentialMlstnDate _NextEsnlMilestone NextEssentialMlstnDate
NextEssentialMlstnName _NextEsnlMilestone NextEssentialMlstnName
ProjectStartDate ProjectStartDate
ProjectEndDate ProjectEndDate
ActualStartDate ActualStartDate
ActualEndDate ActualEndDate
ProcessingStatus ProcessingStatus
PriorityCode PriorityCode
EnterpriseProjectType EnterpriseProjectType
EntProjectObjectWorkflowStatus _EntProjWorkflowOverview EntProjectObjectWorkflowStatus
EntProjObjWorkflowStatusText _EntProjWorkflowOverview EntProjObjWorkflowStatusText
GlobalCurrency _ControllingArea ControllingAreaCurrency
BusinessPartnerUUID
PersonFullName
virtualIsMyProjectabap_boolean
curr252
curr252
curr252
curr252
curr252
char1
ProjectCategory ProjectCategory
EntProjectIsConfidential EntProjectIsConfidential
EnterpriseProjectServiceOrg EnterpriseProjectServiceOrg
ProjectProfileCode ProjectProfileCode
CompanyCode CompanyCode
Plant Plant
FunctionalArea FunctionalArea
ResponsibleCostCenter ResponsibleCostCenter
ProfitCenter ProfitCenter
ControllingArea ControllingArea
_Manager _Manager
_ProjectCostLineItem _ProjectCostLineItem
_EnterpriseProjectTypeText _EnterpriseProjectTypeText
_EnterpriseProjectForUser _EnterpriseProjectForUser
@AccessControl: {
    authorizationCheck:     #CHECK,
    personalData.blocking:  #BLOCKED_DATA_EXCLUDED
}
@EndUserText.label: 'Enterprise Project Brief Header'

@Metadata.allowExtensions: true
@VDM: {
    viewType: #CONSUMPTION
}
@VDM.usage.type:[#TRANSACTIONAL_PROCESSING_SERVICE]

@ObjectModel: {
   semanticKey:       [ 'ProjectUUID'],
   representativeKey: 'ProjectUUID',
   alternativeKey: [ { id : 'ProjectSummaryTaskUUID', uniqueness: #UNIQUE } ],
   usageType: {
       serviceQuality:  #D,
       dataClass:       #MIXED,
       sizeCategory:    #L
   }
}

@UI.presentationVariant:[ { 
    requestAtLeast:  [ 'EntProjectIsDraftMigrated' ] 
 } ] 
 
@Search.searchable: true

define root view entity C_EntProjectBriefHeaderTP
  provider contract transactional_query
  as projection on I_EnterpriseProjectTP_2 as PROJECT
  association [0..*] to C_EnterpriseProjectBriefCost   as _ProjectCostLineItem on _ProjectCostLineItem.ProjectInternalID = $projection.ProjectInternalID
  association [0..1] to C_PPM_ProjectMemberContactCard as _Manager             on _Manager.BusinessPartnerUUID = $projection.businesspartneruuid

{
                 @UI.hidden: true
  key            ProjectUUID,
                 @UI.hidden: true
                 ProjectSummaryTaskUUID,
                 @UI.hidden: true
                 ProjectInternalID,
                 @UI.hidden: true
                 WBSElementInternalID,
                 // Semantic Identification

                 @ObjectModel.text.element: [ 'ProjectDescription' ]
                 @Search.defaultSearchElement: true
                 @Consumption.valueHelpDefinition: [{ entity : {name: 'C_EnterpriseProjectVH', element: 'Project'  }}]
                 PROJECT.Project,
                 @EndUserText: { label: 'Project Name', quickInfo: 'Project Name' }
                 ProjectDescription,

                 @ObjectModel.text.element:['StatusDescription']
                 _StatusAreaData[ IsOverallStatus = 'X' ].StatusAreaStatus              as OverallProjectStatus,
                 @ObjectModel.text.element:['StatusTrendDescription']
                 _StatusAreaData[ IsOverallStatus = 'X' ].StatusTrend,
                 _StatusAreaData[ IsOverallStatus = 'X' ]._StatusAreaStatus.Criticality as OverallProjectStsCriticality,
                 _StatusAreaData[ IsOverallStatus = 'X' ]._StatusAreaTrend.Criticality  as StatusTrendCriticality,
                 @UI.hidden: true
                 _StatusAreaData[ IsOverallStatus = 'X' ]._StatusAreaCode.SortField     as OverallProjectStatusSort,
                 @UI.hidden: true
                 _StatusAreaData[ IsOverallStatus = 'X' ]._StatusAreaTrend.SortField    as StatusTrendSort,
                 @UI.hidden: true
                 _StatusAreaData[ IsOverallStatus = 'X' ]._StatusAreaStatus.StatusDescription,
                 @UI.hidden: true
                 _StatusAreaData[ IsOverallStatus = 'X' ]._StatusAreaTrend.StatusTrendDescription,

                 _NextRlvtMilestone.NextRelevantMlstnDate,
                 _NextRlvtMilestone.NextRelevantMlstnName,

                 _NextEsnlMilestone.NextEssentialMlstnDate,
                 _NextEsnlMilestone.NextEssentialMlstnName,

                 ProjectStartDate,
                 ProjectEndDate,
                 ActualStartDate,
                 ActualEndDate,
                 @ObjectModel.text.element:['ProcessingStatusText']
                 @UI.textArrangement: #TEXT_ONLY
                 @Consumption.valueHelpDefinition: [{ entity : {name: 'I_PPM_ProjectProcgStatusVH', element: 'ProcessingStatus'  } }]
                 ProcessingStatus,
                 @UI.hidden: true
                 _ProcessingStatusText.ProcessingStatusText                             as ProcessingStatusText : localized,

                 @Consumption.valueHelpDefinition: [{ entity : {name: 'C_EnterpriseProjectPriorityVH', element: 'PriorityCode'  } }]
                 PriorityCode,

                 @ObjectModel.text.element:['ProjectTypeName']
                 @Consumption.valueHelpDefinition: [{ entity : {name: 'I_Projecttype', element: 'ProjectType' } }]
                 EnterpriseProjectType,

                 //Workflow status fields

                 @ObjectModel.text.element:['EntProjObjWorkflowStatusText']
                 _EntProjWorkflowOverview.EntProjectObjectWorkflowStatus                as EntProjectObjectWorkflowStatus,

                 _EntProjWorkflowOverview.EntProjObjWorkflowStatusText                  as EntProjObjWorkflowStatusText,
                 @UI.hidden: true
                 _ControllingArea.ControllingAreaCurrency                               as GlobalCurrency,
                 
                 @Consumption.filter.hidden: true
                 @UI.textArrangement: #TEXT_ONLY
                 @ObjectModel: { text.element: [ 'PersonFullName' ] ,
                                 foreignKey.association: '_Manager' }
                 _EntProjRoleStaffing[1:ProjectRoleType = 'YP_RL_0001'].BusinessPartnerUUID,


                 //@Semantics.name.fullName: true

                 @UI.hidden: true
                 _EntProjRoleStaffing[1:ProjectRoleType = 'YP_RL_0001']._BusinessPartner.PersonFullName,


                 @ObjectModel.virtualElement: true 
                 @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PPM_PROJ_ISMYPROJECT'
  virtual        IsMyProject                   : abap_boolean,


                 @ObjectModel.virtualElement: true 
                 @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PPM_PROJ_ISMYPROJECT'
  virtual        IsProjectSteeringCommitteeMbr : abap_boolean,

                 @Semantics.amount.currencyCode: 'GlobalCurrency'
                 @EndUserText: {
                    label:      'Actual Cost',
                    quickInfo:  'Actual Cost'
                 }
                 @ObjectModel: {
                    sort.enabled: false,
                    filter.enabled: false,
                    virtualElement: true,
                    virtualElementCalculatedBy: 'ABAP:CL_PPM_PROJ_COST_RAP'
                 }
  virtual        ActualCost                    : abap.curr( 25, 2 ),

                 @Semantics.amount.currencyCode: 'GlobalCurrency'
                 @EndUserText: {
                    label:      'Planned Cost',
                    quickInfo:  'Planned Cost'
                 }
                 @ObjectModel: {
                    sort.enabled: false,
                    filter.enabled: false,
                    virtualElement: true,
                    virtualElementCalculatedBy: 'ABAP:CL_PPM_PROJ_COST_RAP'
                 }
  virtual        PlannedCost                   : abap.curr( 25, 2 ),

                 @Semantics.amount.currencyCode: 'GlobalCurrency'
                 @EndUserText: {
                    label:      'Actual Cost to Date',
                    quickInfo:  'Actual Cost to Date'
                 }
                 @ObjectModel: {
                    sort.enabled: false,
                    filter.enabled: false,
                    virtualElement: true,
                    virtualElementCalculatedBy: 'ABAP:CL_PPM_PROJ_COST_RAP'
                 }
  virtual        ActualCostUpToCurPerd         : abap.curr( 25, 2 ),

                 @Semantics.amount.currencyCode: 'GlobalCurrency'
                 @EndUserText: {
                    label:      'Planned Cost to Date',
                    quickInfo:  'Planned Cost to Date'
                 }
                 @ObjectModel: {
                    sort.enabled: false,
                    filter.enabled: false,
                    virtualElement: true,
                    virtualElementCalculatedBy: 'ABAP:CL_PPM_PROJ_COST_RAP'
                 }
  virtual        PlannedCostUpToCurPerd        : abap.curr( 25, 2 ),

                 @Semantics.amount.currencyCode: 'GlobalCurrency'
                 @EndUserText: {
                    label:      'Actual Cost Variance to Date',
                    quickInfo:  'Actual Cost Variance to Date'
                 }
                 @ObjectModel: {
                    sort.enabled: false,
                    filter.enabled: false,
                    virtualElement: true,
                    virtualElementCalculatedBy: 'ABAP:CL_PPM_PROJ_COST_RAP'
                 }
  virtual        CostDvtnUpToCurrentPeriod     : abap.curr( 25, 2 ),

                 @ObjectModel: {
                    sort.enabled: false,
                    filter.enabled: false,
                    virtualElement: true,
                    virtualElementCalculatedBy: 'ABAP:CL_PPM_PROJ_COST_RAP'
                 }
  virtual        CostDvtnUpToCurPerdCritlty    : abap.char( 1 ),

      
      @UI.hidden: true    
      @ObjectModel.virtualElement: true 
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EPPM_BRIEF_ISDRAFTMIGRATED'
      virtual EntProjectIsDraftMigrated : abap_boolean,
      
                 @UI.hidden: true
                 _EnterpriseProjectTypeText.ProjectTypeName                             as ProjectTypeName      : localized,
                 @UI.hidden: true
                 ProjectCategory,
                 @UI.hidden: true
                 EntProjectIsConfidential,
                 @UI.hidden: true
                 EnterpriseProjectServiceOrg,
                 @UI.hidden: true
                 ProjectProfileCode,
                 @UI.hidden: true
                 CompanyCode,
                 @UI.hidden: true
                 Plant,
                 @UI.hidden: true
                 FunctionalArea,  
                 @UI.hidden: true               
                 ResponsibleCostCenter,
                 @UI.hidden: true
                 ProfitCenter,
                 @UI.hidden: true
                 ControllingArea,

                 _Manager,
                 @ObjectModel.filter.enabled: false
                 _ProjectCostLineItem,
                 _EnterpriseProjectTypeText,
                 _EnterpriseProjectForUser,
                 _EnterpriseProjectElement : redirected to composition child C_EntProjectBriefMilestoneTP,
                 _EntProjProjectObjectLink : redirected to composition child C_EntProjectBriefObjectLinkTP,
                 _EntProjStatusArea        : redirected to composition child C_EntProjectBriefStatusAreaTP,
                 _EntProjRoleStaffing      : redirected to composition child C_EntProjBriefRoleStaffingTP
}
where
  ProjectCategory = '6'