C_EntProjectBriefHeaderTP

DDL: C_ENTPROJECTBRIEFHEADERTP Type: view_entity CONSUMPTION Package: ODATA_PPM_PRO_PROJECT_BRIEF

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 53 fields with key field ProjectUUID. It has 2 associations to related views. It is exposed through 1 OData service (UI_ENTPROJECTBRIEF). It is used in 1 Fiori application: Project Briefs. Part of development package ODATA_PPM_PRO_PROJECT_BRIEF.

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.ProjectManagerUUID

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 #C 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

Fiori Apps (1)

App IDApp NameTypeDescription
F2602 Project Briefs Transactional

Project Briefs

Business Role: Project Manager

With this app, you can edit and display key attributes of the enterprise projects that you are authorized to access or maintain either as a project financial controller or because you are assigned to the project. You can display an overview with summary information about all your projects, and drill down to obtain further details about individual projects. As the project manager or financial controller of a project, you can plan milestones, staff the project, and document its progress and performance in the project brief. In this way, you summarize the information essential for project reviews in steering committee meetings. As a member of the project steering committee, you can display this information in the project brief.

Key Features: You can use this app to do the following: Get an overview of your projects and their most important attributes at a glance, for example: Name and ID of the project Project manager Planned finish of the earliest main milestone defined for the project and its WBS elements In active projects, the planned finish of the earliest upcoming or overdue milestone defined for the project and its active WBS elements. A milestone is upcoming or overdue if no actual date has been recorded for it yet. A project or WBS element is active if it has the processing status Partially Released or Released. Overall project status Actual versus planned project cost up to the current date By default, the projects are sorted by their overall status and its current trend. Drill down to a specific project brief to display further details, such as: A summary of the most important project attributes as listed above General project information, such as project dates, type and priority Detailed status information, such as: The overall project status with its current trend and related comments All detailed status areas active in your solution, such as Schedule or Cost, with their status values, trend and comments Information about all milestones, including the main milestones, that are defined at project level, such as: Their planned, forecasted, and actual finish Their approval status Information about project costs: View a chart showing the actual cost of the project excluding assigned orders in relation to the planned cost per period. Drill further down to the Project Cost Report app to display cost details of the selected project. Note, however, that resources assigned to the Team Member role are not authorized to display project costs. The responsibilities defined for the project by assigning resources to project roles, such as Project Financial Controller or Steering Committee Member Information about objects that are related to the project. Currently, only one object of type Collaborative Project in SAP Project and Resource Management or type Collaboration in SAP Intelligent Product Design can be linked to a project as a related object. You can access the related object from the project brief. For more information, see Project Collaboration. The documents and URLs attached to the project You can open the attachments from the project brief. Navigate to the Change Documents - Projects app to display the changes made to a project. Open related apps, such as the Monitor Project Progress app or the My Projects - Key Figures app, for one or more projects. As the financial controller or project manager assigned to a project, or as a financial controller whose area of responsibility includes maintenance rights for the project, you can also use this app to: Edit data of projects that are neither locked nor completed or closed: Change project name and dates Enter or change a project type and priority to categorize projects for reporting purposes Enter or change status values, trends, and comments. Create new milestones at project level, change existing milestones, and record their current approval status. Record actual dates for milestones in active projects. A project is active if it has the processing status Partially Released or Released. Note When you set the actual finish date for a milestone that is used in a billing plan, the billing block for the relevant billing plan item is automatically removed. The entry in the Used for Billing column indicates if the milestone is used in a billing plan. Define project responsibilities by assigning resources to project roles except the Project Manager role. Create a related object of type Collaborative Project in SAP Project and Resource Management or type Collaboration in SAP Intelligent Product Design for the project. For more information, see Project Collaboration. Add documents or URLs as attachments to a projects, and manage existing attachments. For more information, see Attachments. Change the processing status of a project when it has reached a new stage in its lifecycle. For more information, see Processing Status for Projects and WBS Elements. Navigate to the Project Planning or Project Control - Enterprise Projects app to maintain the work breakdown structure of a project or to edit the master data of the project and its WBS elements. Delete projects that have not yet been released. With this feature, you delete the entire project including its WBS elements and links to related objects. Note, however, that the linked object itself is not automatically deleted along with the project.

Fields (53)

KeyFieldSource TableSource FieldDescription
KEY ProjectUUID ProjectUUID
ProjectSummaryTaskUUID ProjectSummaryTaskUUID
ProjectInternalID ProjectInternalID
WBSElementInternalID WBSElementInternalID
Project PROJECT Project
ProjectName ProjectDescription
ProjectProfileCode ProjectProfileCode
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
PriorityCodeName
EnterpriseProjectType EnterpriseProjectType
EntProjectObjectWorkflowStatus _EntProjWorkflowOverview EntProjectObjectWorkflowStatus
EntProjObjWorkflowStatusText _EntProjWorkflowOverview EntProjObjWorkflowStatusText
GlobalCurrency _ControllingArea ControllingAreaCurrency
ProjectManagerUUID
PersonFullName
IsMyProject _EntProjUserRoleAssignment IsMyProject
IsProjectSteeringCommitteeMbr _EntProjUserRoleAssignment IsProjectSteeringCommitteeMbr
curr252
curr252
curr252
curr252
curr252
char1
ProjectCategory ProjectCategory
EntProjectIsConfidential EntProjectIsConfidential
EnterpriseProjectServiceOrg EnterpriseProjectServiceOrg
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:       [ 'Project'],
   representativeKey: 'ProjectUUID',
   alternativeKey: [ { id : 'ProjectSummaryTaskUUID', uniqueness: #UNIQUE } ],
   usageType: {
       serviceQuality:  #C,
       dataClass:       #MIXED,
       sizeCategory:    #L
   }
}

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

@Search.searchable: true

@Consumption.dbHints: [ 'USE_HEX_PLAN' ]

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.ProjectManagerUUID

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

                 @ObjectModel.text.element: [ 'ProjectName' ]
                 @Search: { defaultSearchElement: true,
                            fuzzinessThreshold: 0.9,
                            ranking: #HIGH }
                 @Consumption.valueHelpDefinition: [{ entity : {name: 'C_EnterpriseProjectVH', element: 'Project'  }}]
                 PROJECT.Project,
                 @Search: { defaultSearchElement: true,
                            fuzzinessThreshold: 0.8,
                            ranking: #HIGH }
                 @EndUserText: { label: 'Project Name', quickInfo: 'Project Name' }
                 ProjectDescription                                                         as ProjectName,

                 @Consumption.valueHelpDefinition: [{ entity : {name: 'C_PPM_ProjectProfileVH', element: 'ProjectProfileCode'  } } ]
                 @ObjectModel:{ text: { element: [ 'ProjectProfileCodeText' ] } }
                 ProjectProfileCode,

                 @Consumption.filter.hidden: true
                 @UI.hidden: true
                 _ProjectProfileText.ProjectProfileCodeText                                 as ProjectProfileCodeText : localized,

                 @ObjectModel.text.element:['StatusDescription']
                 @Consumption.valueHelpDefinition: [{
                       entity : {name: 'I_PPM_StatusAreaStatus', element: 'Status'  }
                 }]
                 _StatusAreaData[ IsOverallStatus = 'X' ].StatusAreaStatus                  as OverallProjectStatus,
                 @ObjectModel.text.element:['StatusTrendDescription']
                 @Consumption.valueHelpDefinition: [{
                       entity : {name: 'I_PPM_StatusAreaTrend', element: 'StatusTrend'  }
                 }]
                 _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'  } }]
                 @ObjectModel.text.element: ['PriorityCodeName']
                 PriorityCode,

                 @UI.hidden: true
                 _PriorityText[1: LanguageCode = $session.system_language].PriorityCodeName,

                 @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 as ProjectManagerUUID,


                 //@Semantics.name.fullName: true

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

                 _EntProjUserRoleAssignment.IsMyProject,


                 _EntProjUserRoleAssignment.IsProjectSteeringCommitteeMbr,


                 @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
                 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                                                  as _Task                   : redirected to composition child C_EntProjectBriefMilestoneTP,
                 _EntProjProjectObjectLink                                                  as _Link                   : redirected to composition child C_EntProjectBriefObjectLinkTP,
                 _EntProjStatusArea                                                         as _StatusArea             : redirected to composition child C_EntProjectBriefStatusAreaTP,
                 _EntProjRoleStaffing                                                       as _TeamMemberRoleStaffing : redirected to composition child C_EntProjBriefRoleStaffingTP
}
where
  ProjectCategory = '6'