@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #BLOCKED_DATA_EXCLUDED
}
@VDM.usage.type:[#TRANSACTIONAL_PROCESSING_SERVICE]
@VDM.viewType: #CONSUMPTION
@ObjectModel: {
usageType: {
dataClass: #MASTER,
serviceQuality: #C,
sizeCategory: #XL
}
}
@UI.presentationVariant:[ {
requestAtLeast: [ 'EntProjectIsDraftMigrated' ]
} ]
//@Metadata.ignorePropagatedAnnotations: true
@Search.searchable: true
@Metadata.allowExtensions: true
@EndUserText.label: 'Enterprise Project Control'
@OData.entitySet.name : 'C_PPM_ProjectControlTP'
define root view entity C_EnterpriseProjectControlTP
provider contract transactional_query
as projection on I_EnterpriseProjectTP_2 as EnterpriseProject
association [1..1] to E_PPM_Project as _ProjectHeaderExtension on $projection.ProjectUUID = _ProjectHeaderExtension.ProjectUUID
association [0..1] to C_EntProjWrkPckgProjectStatus as _QuickViewStatus on _QuickViewStatus.TaskUUID = $projection.ProjectSummaryTaskUUID
{
@UI.hidden: true
key ProjectUUID,
@ObjectModel: { text: { element: [ 'ProcessingStatusText' ] }, foreignKey.association: '_QuickViewStatus' }
@Consumption.filter.hidden: true
ProjectSummaryTaskUUID,
ProjectInternalID,
WBSElementInternalID,
ProjectTemplateUUID,
@Search: { defaultSearchElement: true,
fuzzinessThreshold: 1.0,
ranking: #HIGH }
@ObjectModel:{ text: { element: [ 'ProjectName' ] } }
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_EnterpriseProjectVH', element: 'Project' } } ]
Project,
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_EnterpriseProjectVH', element: 'ProjectName' } } ]
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,
@Consumption.filter.hidden: true
EntProjIsMultiSlsOrdItmsEnbld,
@Consumption.filter.hidden: true
@UI.hidden: true
EnterpriseProjectServiceOrg,
ProjectCategory,
ProjectObject,
@Consumption.semanticObject: 'Project'
@UI.hidden: true
WBSElementObject,
@Consumption.filter.hidden: true
LeadingSalesOrder,
@Consumption.filter.hidden: true
LeadingSalesOrderItem,
@Consumption.filter.hidden: true
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_ResultsAnalysisKeyValueHelp', element: 'ResultAnalysisInternalID' } }]
ResultAnalysisInternalID,
@Consumption.semanticObject: 'ProjectProcessingStatus'
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_PPM_ProjectProcgStatusVH', element: 'ProcessingStatus' } }]
ProcessingStatus,
@Consumption.filter.hidden: true
_ProcessingStatusText[1: Language = $session.system_language ].ProcessingStatusText,
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_EnterpriseProjectPriorityVH', element: 'PriorityCode' }, label: 'Priorty Value Help' }]
@ObjectModel: { text: { element: [ 'PriorityCodeName' ] } }
PriorityCode,
@UI.hidden: true
_PriorityText.PriorityCodeName as PriorityCodeName : localized,
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_Projecttype', element: 'ProjectType' } }]
@ObjectModel: { text: { element: [ 'ProjectTypeName' ] } }
EnterpriseProjectType,
@Consumption.filter.hidden: true
@UI.hidden: true
_EnterpriseProjectTypeText.ProjectTypeName as ProjectTypeName : localized,
@UI.textArrangement: #TEXT_ONLY
@EndUserText.quickInfo: 'Enterprise Project Settlement Rule'
@ObjectModel: { text: { element: [ 'SettlementTypeText' ] } }
EntProjectSettlementType,
_EntProjectSettlementTypeText.SettlementTypeText as SettlementTypeText : localized,
@Consumption.filter.hidden: true
EntProjectSettlementElement,
ProjectStartDate,
ProjectEndDate,
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_FactoryCalendarValueHelp', element: 'FactoryCalendar' } }]
@Consumption.filter.hidden: true
FactoryCalendar,
ActualStartDate,
ActualEndDate,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_S4PPM_PRO_CON_DATAMODEL'
@Consumption.filter.hidden: true
@UI.hidden: true
virtual EntProjectDataModelVersion : abap.char(2),
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EPPM_BRIEF_ISDRAFTMIGRATED'
virtual EntProjectIsDraftMigrated : abap_boolean,
@ObjectModel: { text: { element: [ 'ResponsibleCostCenterName' ] } }
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_EntProjCostCenterVH', element: 'CostCenter' } }]
ResponsibleCostCenter,
@Consumption.filter.hidden: true
@UI.hidden: true
_ResponsibleCostCenter[1: ValidityEndDate >= $session.system_date
and ValidityStartDate <= $session.system_date ]._Text[1: Language = $session.system_language ].CostCenterName as ResponsibleCostCenterName,
@ObjectModel: { text: { element: [ 'ProfitCenterName' ] } }
// @Consumption.valueHelpDefinition: [{ entity : {name: 'C_EntProjProfitCenterVH', element: 'ProfitCenter' } }]
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_ProfitCenterStdVH', element: 'ProfitCenter' } }]
ProfitCenter,
@UI.hidden: true
@Consumption.filter.hidden: true
_ProfitCenter[1: ValidityEndDate >= $session.system_date
and ValidityStartDate <= $session.system_date ]._Text[1: Language = $session.system_language ].ProfitCenterName as ProfitCenterName,
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_EntProjControllingAreaVH', element: 'ControllingArea' } }]
@ObjectModel: { text: { element: [ 'ControllingAreaName' ] } }
ControllingArea,
@UI.hidden: true
@Consumption.filter.hidden: true
_ControllingArea.ControllingAreaName,
@Consumption.filter.hidden: true
@UI.hidden: true
_ControllingArea.ControllingAreaCurrency,
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_CompanyCodeStdVH', element: 'CompanyCode' } }]
@ObjectModel.text.element: ['CompanyCodeName']
CompanyCode,
@UI.hidden: true
@Consumption.filter.hidden: true
_CompanyCode.CompanyCodeName as CompanyCodeName,
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_PlantVH', element: 'Plant' } }]
@ObjectModel.text.element: ['PlantName']
Plant,
@UI.hidden: true
@Consumption.filter.hidden: true
_Plant.PlantName as PlantName,
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_PPM_ProjectElementLocationVH', element: 'Location' },
additionalBinding: [{ localElement: 'Plant', element: 'Plant' } ] }]
@Feature: 'IDEA_EPPM_SPECIFY_LOCATION'
@ObjectModel.text.element: ['LocationName']
Location,
@Consumption.filter.hidden: true
@UI.hidden: true
_Location.LocationName as LocationName,
@Consumption.valueHelpDefinition: [{ entity: { name: 'C_EntProjectTaxJurisdictionVH', element: 'TaxJurisdiction' } ,
additionalBinding: [{ localElement: 'CompanyCode',
element: 'CompanyCode',
usage: #FILTER}] } ]
TaxJurisdiction,
@Consumption.valueHelpDefinition: [{ entity: { name: 'I_FunctionalLocationLabelStdVH', element: 'FunctionalLocation' } }]
@ObjectModel.text.element: ['FunctionalLocationName']
cast ( FunctionalLocation as ps_s4_tplnr preserving type ) as FunctionalLocation,
@UI.hidden: true
@Consumption.filter.hidden: true
_FunctionalLocationText.FunctionalLocationName as FunctionalLocationName : localized,
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_MM_FunctionalAreaValueHelp', element: 'FunctionalArea' } }]
@ObjectModel.text.element: ['FunctionalAreaName']
FunctionalArea,
@UI.hidden: true
@Consumption.filter.hidden: true
_FunctionalAreaText.FunctionalAreaName as FunctionalAreaName : localized,
@Consumption.valueHelpDefinition: [{ entity: {name: 'I_Currency', element: 'Currency' }}]
@Consumption.filter.hidden: true
ProjectCurrency,
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_CostingSheetProcedure', element: 'CostingSheetProcedure' } }]
@ObjectModel.text.element: ['FunctionalAreaName']
CostingSheet,
@Consumption.filter.hidden: true
_CostingSheetProcedure.CostingSheetProcedureDesc,
@Consumption.valueHelpDefinition: [{
entity : {name: 'I_CostCenterStdVH', element: 'CostCenter' },
additionalBinding: [
{ localElement: 'ControllingArea', element: 'ControllingArea' },
{ localConstant: '> $session.system_date',element: 'ValidityEndDate'}
] }]
@ObjectModel: { text: { element: [ 'CostCenterName' ] } }
@Consumption.filter.hidden: true
CostCenter,
@UI.hidden: true
@Consumption.filter.hidden: true
_CostCenter[1: ValidityEndDate >= $session.system_date
and ValidityStartDate <= $session.system_date ]._Text[1: Language = $session.system_language ].CostCenterName as CostCenterName,
@Consumption.filter.hidden: true
IsBillingRelevant,
@Consumption.filter.hidden: true
IsStatistical,
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_InvestmentProfile', element: 'InvestmentProfile' } }]
@Consumption.filter.hidden: true
InvestmentProfile,
@UI.hidden: true
_InvestmentProfileText.InvestmentProfileName as InvestmentProfileName : localized,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PPM_PROJ_ASSET_EXTERNAL_ID'
virtual FixedAssetUsageObjLfcycName : ddtext80,
@ObjectModel.virtualElement: true
@ObjectModel.filter.transformedBy: 'ABAP:CL_PPM_PROJ_ISMYPROJECT'
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PPM_PROJ_ISMYPROJECT'
@EndUserText: {
label: 'My Project (Project Financial Controller)' ,
quickInfo: 'My Project (Project Financial Controller)' }
virtual IsMyProject : abap_boolean,
// @Consumption.valueHelpDefinition: [{ entity : {name: 'I_FundStdVH', element: 'FundName' } }]
// @ObjectModel: { text: { element: [ 'Fund' ] } }
// _EntProjectPublicSector.Fund,
@UI.fieldGroup: [
{
qualifier: 'PublicSector',
position: 10,
value: '_EntProjectPublicSector.Fund',
label: 'Fund'
},
{
qualifier: 'PublicSector',
position: 20,
value: '_EntProjectPublicSector.FundIsFixAssigned',
label: 'Fund Fixed Assignment'
},
{
qualifier: 'PublicSector',
position: 30,
value: '_EntProjectPublicSector.GrantID',
label: 'Grant'
},
{
qualifier: 'PublicSector',
position: 40,
value: '_EntProjectPublicSector.GrantIsFixAssigned',
label: 'Grant Fixed Assignment'
},
{
qualifier: 'PublicSector',
position: 50,
value: '_EntProjectPublicSector.SponsoredProgram',
label: 'Sponsored Program'
},
{
qualifier: 'Organization',
position: 62,
value: '_EntProjectPublicSector.FunctionalAreaIsFixAssigned',
label: 'Functional Area Fixed Assignment'
}
]
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EPPM_PROJECT_VM'
virtual EntProjIsPubSecMgmtActive : abap_boolean,
@Consumption.filter.hidden: true
@ObjectModel: { text: { element: [ 'CreatedByUserName' ] } }
@UI.hidden: true
CreatedByUser,
@Consumption.filter.hidden: true
@UI.hidden: true
_CreatedByUser.FullName as CreatedByUserName,
@Consumption.filter.hidden: true
CreationDateTime,
@Consumption.filter.hidden: true
LastChangedByUser,
@Consumption.filter.hidden: true
LastChangeDateTime,
@ObjectModel: { text: { element: [ 'AvailabilityControlProfileName' ] } }
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_ProjAvailabilityCtrlPrflVH', element: 'AvailabilityControlProfile' } }]
@Search: { defaultSearchElement: true, fuzzinessThreshold: 0.8, ranking: #HIGH }
@Consumption.filter.hidden: true
AvailabilityControlProfile,
@UI.hidden: true
@Search: { defaultSearchElement: true, fuzzinessThreshold: 0.8, ranking: #HIGH }
_AvailabilityCtrlProfileText.AvailabilityControlProfileName as AvailabilityControlProfileName : localized,
@Consumption.filter.hidden: true
AvailabilityControlIsActive,
@ObjectModel:{ text: { element: [ 'EntProjObjWorkflowStatusText' ] } }
@Consumption.valueHelpDefinition: [ { entity: { element: 'EntProjectObjectWorkflowStatus',
name: 'I_EntProjWorkflowStatus' } } ]
_EntProjWorkflowOverview.EntProjectObjectWorkflowStatus as EntProjectObjectWorkflowStatus,
@Consumption.filter.hidden: true
_EntProjWorkflowOverview.EntProjObjWorkflowStatusText as EntProjObjWorkflowStatusText,
@Consumption.filter.hidden: true
@UI.hidden: true
EntProjectIsConfidential,
@Consumption.filter.hidden: true
EntProjHasProjectStockEnabled,
@Consumption.filter.hidden: true
_QuickViewStatus,
@Consumption.filter.hidden: true
_EnterpriseProjectJVA : redirected to composition child C_EnterpriseProjectJVATP,
@Consumption.filter.hidden: true
_EntProjectPublicSector : redirected to composition child C_EntProjectPublicSectorTP,
@Consumption.filter.hidden: true
_EntProjBlkFunc : redirected to composition child C_EntProjectBlockFunctionTP,
@Consumption.filter.hidden: true
_EntProjLongDesc : redirected to composition child C_EntProjectLongDescTP,
@Consumption.filter.hidden: true
_EntProjRoleStaffing : redirected to composition child C_EntProjTeamRoleStaffIntTP,
@Consumption.filter.hidden: true
_EntProjRoleStaffing[1:ProjectRoleType = 'YP_RL_0001'] as _EntProjRoleStaffingPM : redirected to C_EntProjTeamRoleStaffIntTP
}
where
ProjectProfileCode <> 'YP01'
and ProjectCategory <> '7'