@EndUserText.label : 'Enterprise Project Hierarchy Header'
@AccessControl.authorizationCheck: #CHECK
@ObjectModel: {
representativeKey: 'ProjectUUID',
alternativeKey: [ { id : 'ProjectSummaryTaskUUID', uniqueness: #UNIQUE } ],
usageType: {
serviceQuality: #D,
dataClass: #MIXED,
sizeCategory: #L
}
}
@UI.presentationVariant:[ {
requestAtLeast: [ 'EntProjectIsDraftMigrated' ]
} ]
@Search.searchable: true
@Metadata.allowExtensions: true
@VDM: {
viewType: #CONSUMPTION
}
@VDM.usage.type:[#TRANSACTIONAL_PROCESSING_SERVICE]
define root view entity C_EntProjectHierHeaderTP
provider contract transactional_query
as projection on I_EnterpriseProjectTP_2 as PROJECT
association [0..1] to C_EntProjWrkPckgProjectStatus as _QuickViewStatus on _QuickViewStatus.TaskUUID = $projection.ProjectSummaryTaskUUID
association [0..1] to C_PPM_ProjectMemberContactCard as _Manager on _Manager.BusinessPartnerUUID = $projection.ProjectManagerUUID
{
@UI.hidden: true
key ProjectUUID,
ProjectSummaryTaskUUID,
ProjectInternalID,
WBSElementInternalID,
@Search.defaultSearchElement: true
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_EnterpriseProjectVH', element: 'Project' }}]
Project,
ProjectDescription as ProjectName,
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_PPM_ProjectProfileVH', element: 'ProjectProfileCode' }
,additionalBinding: [{ localElement: 'ProjectProfileCode', element: 'ProjectProfileCode' }
] }]
ProjectProfileCode,
@UI.hidden: true
_ProjectProfileText.ProjectProfileCodeText as ProjectProfileCodeText : localized,
WBSElementObject,
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_PPM_ProcessingStatusText', element: 'ProcessingStatus' } }]
ProcessingStatus,
@UI.hidden: true
_ProcessingStatusText.ProcessingStatusText as ProcessingStatusText : localized,
ProjectStartDate,
ProjectEndDate,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy : 'ABAP:CL_S4PPM_PRO_CON_DATAMODEL'
// @UI.hidden: true
virtual EntProjectDataModelVersion : abap.char (2),
ProfitCenter,
ControllingArea,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy : 'ABAP:CL_EPPM_PROJECT_HIER_VM'
virtual EntProjectObjectWorkflowStatus : /s4ppm/tv_wf_status,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy : 'ABAP:CL_EPPM_PROJECT_HIER_VM'
virtual EntProjObjWorkflowStatusText : /s4ppm/tv_wf_status_tx,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy : 'ABAP:CL_EPPM_PROJECT_HIER_VM'
virtual EarliestStartDate : /s4ppm/tv_plan_start_date,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy : 'ABAP:CL_EPPM_PROJECT_HIER_VM'
virtual LatestFinishDate : /s4ppm/tv_plan_end_date,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy : 'ABAP:CL_EPPM_BRIEF_ISDRAFTMIGRATED'
virtual EntProjectIsDraftMigrated : abap_boolean,
ProjectCategory,
EnterpriseProjectServiceOrg,
CompanyCode,
EntProjectIsConfidential,
ResponsibleCostCenter,
Plant,
EnterpriseProjectType,
FunctionalArea,
_EntProjRoleStaffing[1:ProjectRoleType = 'YP_RL_0001'].BusinessPartnerUUID as ProjectManagerUUID,
_EntProjRoleStaffing[1:ProjectRoleType = 'YP_RL_0001']._BusinessPartner.PersonFullName,
@ObjectModel.filter .enabled: false
_EnterpriseProjectElement : redirected to composition child C_EntProjectHierElementTP,
_Manager,
_QuickViewStatus
}
/*+[internal] {
"BASEINFO":
{
"FROM ":
[
"I_BUSINESSPARTNER",
"I_ENTERPRISEPROJECTTP_2",
"I_PPM_PROCESSINGSTATUSTEXT",
"I_PROJECTPROFILECODETEXT",
"R_ENTPROJTEAMROLESTAFFINTTP"
],
"ASSOCIATED":
[
"C_ENTPROJECTHIERELEMENTTP",
"C_ENTPROJWRKPCKGPROJECTSTATUS",
"C_PPM_PROJECTMEMBERCONTACTCARD",
"I_ENTERPRISEPROJECTELEMENTTP_2"
],
"BASE":
[
"I_ENTERPRISEPROJECTTP_2"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
Depth:
1
2
3
4
5
All
Reload
C_EntProjectHierHeaderTP view_entity