@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
},
semanticKey: [ 'Project' ],
alternativeKey: [
{ id : 'ProjectSummaryTaskUUID',
uniqueness: #UNIQUE
}]
}
@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
association [0..1] to C_PPM_ProjectMemberContactCard as _ProjectManager on _ProjectManager.BusinessPartnerUUID = $projection.ProjectManagerUUID
{
@UI.hidden: true
key ProjectUUID,
@UI.hidden: true
@Consumption.filter.hidden: true
ProjectSummaryTaskUUID,
@UI.hidden: true
ProjectInternalID,
@UI.hidden: true
WBSElementInternalID,
@UI.hidden: true
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' } } ]
@Search: { defaultSearchElement: true,
fuzzinessThreshold: 0.8,
ranking: #HIGH }
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.valueHelpDefinition: [{ entity : {name: 'I_EntProjectResultAnalysisKey', element: 'ResultAnalysisInternalID' } }]
@EndUserText: { label: 'Recognition Key', quickInfo: 'Recognition Key' }
@ObjectModel: { text: { element: [ 'ResultAnalysisDescription' ] } }
@UI.textArrangement: #TEXT_FIRST
@Consumption.filter.hidden: true
ResultAnalysisInternalID,
@UI.hidden: true
_RsltAnlysKeyText.ResultAnalysisDescription as ResultAnalysisDescription : localized,
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_PPM_ProjectProcgStatusVH', element: 'ProcessingStatus' } }]
@ObjectModel: { text: { element: [ 'ProcessingStatusText' ] } }
@UI.textArrangement: #TEXT_ONLY
ProcessingStatus,
//CE2602 - Profitability Segment ID
@UI.hidden: true
EntProjProfitabilitySegment,
//@Consumption.filter.hidden: true
@UI.hidden: true
_ProcessingStatusText[1: Language = $session.system_language ].ProcessingStatusText as 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,
@Consumption.valueHelpDefinition: [ { entity: { element: 'EntProjectSettlementType', name: 'I_EntProjectSettlementType' } } ]
@UI.textArrangement: #TEXT_ONLY
//@ObjectModel.foreignKey.association: 'EntProjectSettlementType'
//@ObjectModel: { text: { element: [ 'SettlementTypeText' ] } }
//@ObjectModel.text.association: 'EntProjectSettlementTypeText'
@EndUserText.label: 'Settlement Rule Maintenance'
@EndUserText.quickInfo: 'Enterprise Project Settlement Rule'
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'}] } ]
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
@ObjectModel.text.element: ['CurrencyName']
ProjectCurrency,
@UI.hidden: true
@Consumption.filter.hidden: true
_ProjectCurrencyText.CurrencyName as CurrencyName : localized,
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_CostingSheetProcedure', element: 'CostingSheetProcedure' } }]
@ObjectModel.text.element: ['CostingSheetProcedureDesc']
@Consumption.filter.hidden: true
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,
@EndUserText: {
label: 'My Project (Project Financial Controller)' ,
quickInfo: 'My Project (Project Financial Controller)' }
_EntProjUserRoleAssignment.IsProjectFinancialController as IsMyProject,
@Consumption.filter.hidden: true
@UI.hidden: true
@ObjectModel:{ text.element: [ 'PersonFullName' ] ,
foreignKey.association: '_ProjectManager' }
@EndUserText: {
label: 'Project Manager',
quickInfo: 'Project Manager' }
_EntProjRoleStaffing[1:ProjectRoleType = 'YP_RL_0001'].BusinessPartnerUUID as ProjectManagerUUID,
@Consumption.filter.hidden: true
@UI.hidden: true
@Semantics.name.fullName: true
_EntProjRoleStaffing[1:ProjectRoleType = 'YP_RL_0001']._BusinessPartner.PersonFullName,
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_PPM_PROJ_ASSET_EXTERNAL_ID'
virtual FixedAssetUsageObjLfcycName : ddtext80,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EPPM_PROJECT_VM'
virtual EntProjIsPubSecMgmtActive : abap_boolean,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EPPM_PROJECT_VM'
virtual EnterpriseProjectIsJVAActive : abap_boolean,
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EPPM_PROJECT_VM'
virtual EntProjIsPubSecSpnsrPgmActive : abap_boolean,
@Consumption.filter.hidden: true
@ObjectModel: { text: { element: [ 'CreatedByUserName' ] } }
CreatedByUser,
@Consumption.filter.hidden: true
@UI.hidden: true
@ObjectModel.virtualElement: true
@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EPPM_PROJECT_VM'
virtual CreatedByUserName : vdm_userdescription,
@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 }
@ObjectModel.filter.enabled: false //@Consumption.filter.hidden: true
AvailabilityControlProfile,
@UI.hidden: true
@Search: { defaultSearchElement: true, fuzzinessThreshold: 0.8, ranking: #HIGH }
_AvailabilityCtrlProfileText.AvailabilityControlProfileName as AvailabilityControlProfileName : localized,
@ObjectModel.filter.enabled: false
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,
@Feature: 'BF:JOINT_VENTURE_ACCOUNTING'
@Consumption.filter.hidden: true
_EnterpriseProjectJVA.JointVenture,
@Feature: 'BF:JOINT_VENTURE_ACCOUNTING'
@Consumption.filter.hidden: true
_EnterpriseProjectJVA.JointVentureCostRecoveryCode,
@Feature: 'BF:JOINT_VENTURE_ACCOUNTING'
@Consumption.filter.hidden: true
_EnterpriseProjectJVA.JointVentureEquityType,
@Feature: 'BF:JOINT_VENTURE_ACCOUNTING'
@Consumption.filter.hidden: true
_EnterpriseProjectJVA.JntIntrstBillgClass,
@Feature: 'BF:JOINT_VENTURE_ACCOUNTING'
@Consumption.filter.hidden: true
_EnterpriseProjectJVA.JntIntrstBillgSubClass,
@Feature: 'BF:JOINT_VENTURE_ACCOUNTING'
@Consumption.filter.hidden: true
_EnterpriseProjectJVA.JntVntrProjectType,
@Consumption.filter.hidden: true
_QuickViewStatus,
@Feature: 'BF:JOINT_VENTURE_ACCOUNTING, IDEA_EPPM_JVA_ENABLEMENT'
@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
@Semantics.valueRange.maximum: '1'
_EntProjRoleStaffing[1:ProjectRoleType = 'YP_RL_0001'] as _EntProjRoleStaffingPM : redirected to C_EntProjTeamRoleStaffIntTP,
@Consumption.filter.hidden: true
_EnterpriseProjectForUser,
@Consumption.filter.hidden: true
_ProjectManager
}
where
ProjectCategory = '6'