C_EntProjectBriefHeaderTP
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)
| Source | Alias | Join Type |
|---|---|---|
| I_EnterpriseProjectTP_2 | I_EnterpriseProjectTP_2 | projection |
Associations (2)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..*] | C_EnterpriseProjectBriefCost | _ProjectCostLineItem | _ProjectCostLineItem.ProjectInternalID = $projection.ProjectInternalID |
| [0..1] | C_PPM_ProjectMemberContactCard | _Manager | _Manager.BusinessPartnerUUID = $projection.ProjectManagerUUID |
Annotations (10)
| Name | Value | Level | Field |
|---|---|---|---|
| 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)
| Service | Binding | Version | Contract | Release |
|---|---|---|---|---|
| UI_ENTPROJECTBRIEF | UI_ENTPROJECTBRIEF | V2 | C1 | NOT_RELEASED |
Fiori Apps (1)
| App ID | App Name | Type | Description |
|---|---|---|---|
| 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)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| 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'
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA