@AbapCatalog.sqlViewName: 'CENTPROJMCHP'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@EndUserText.label: 'Parameters for Enterprise Project Mass Change'
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #BLOCKED_DATA_EXCLUDED
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
semanticKey: [ 'Project' ],
representativeKey: 'ProjectUUID',
usageType: {
serviceQuality: #D,
dataClass: #MIXED,
sizeCategory: #L
},
updateEnabled: true
}
@VDM.viewType: #CONSUMPTION
@Metadata.allowExtensions: true
define view C_EntProjMassChangeParameter
as select from I_PPM_Project
association [0..*] to I_CostCenterText as _ResponsibleCostCenterText on _ResponsibleCostCenterText.CostCenter = $projection.ResponsibleCostCenter
and _ResponsibleCostCenterText.ControllingArea = $projection.ControllingArea
and _ResponsibleCostCenterText.ValidityEndDate > $session.system_date
and _ResponsibleCostCenterText.ValidityStartDate < $session.system_date
association [0..*] to I_CostCenterText as _CostCenterText on _CostCenterText.CostCenter = $projection.CostCenter
and _CostCenterText.ControllingArea = $projection.ControllingArea
and _CostCenterText.ValidityEndDate > $session.system_date
and _CostCenterText.ValidityStartDate < $session.system_date
association [1..1] to E_PPM_Project as _ProjectHeaderExtension on $projection.ProjectUUID = _ProjectHeaderExtension.ProjectUUID
association [0..*] to I_CostingSheetProcedureText as _CostingSheetProcedureText on _CostingSheetProcedureText.CostingSheetProcedure = $projection.CostingSheet
association [0..*] to I_FactoryCalendarText as _FactoryCalendarText on $projection.FactoryCalendar = _FactoryCalendarText.FactoryCalendar
association [0..*] to I_ProfitCenterText as _ProfitCenterText on _ProfitCenterText.ProfitCenter = $projection.ProfitCenter
and _ProfitCenterText.ControllingArea = $projection.ControllingArea
and _ProfitCenterText.ValidityEndDate > $session.system_date
and _ProfitCenterText.ValidityStartDate < $session.system_date
association [0..*] to I_InvestmentProfileText as _InvestmentProfileText on $projection.InvestmentProfile = _InvestmentProfileText.InvestmentProfile
//Block Functions
association [0..*] to I_EntProjElmntBlockFunc as _BlockFuncForEntProject on _BlockFuncForEntProject.ProjectUUID = $projection.ProjectUUID
{
@ObjectModel.readOnly: true
@UI.hidden: true
key ProjectUUID,
@UI.hidden: true
ProjectSummaryTaskUUID,
@UI.hidden: true
WBSElementInternalID,
@ObjectModel.readOnly: true
@UI.hidden: true
hextobin( '00000000000000000000000000000000' ) as EntProjMassChangeRequestUUID,
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_PPM_TeamMemberSearchHelp', element: 'BusinessPartner' } }]
@EndUserText: {
label: 'Project Manager',
quickInfo: 'Project Manager Name'
}
@UI.textArrangement: #TEXT_ONLY
@ObjectModel.readOnly: false
cast('0' as bu_partner ) as ProjectManager,
@ObjectModel: {
readOnly: false,
mandatory: true,
text: {
element: [ 'ProcessingStatusText' ]
}
}
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_EntProjProcgStatusAction', element: 'ProcessingStatus' } }]
@UI.textArrangement: #TEXT_ONLY
ProcessingStatus,
@Consumption.filter.hidden: true
@ObjectModel: {
readOnly: true
}
_ProcessingStatusText[1:Language = $session.system_language].ProcessingStatusText,
@ObjectModel: {
readOnly: false,
text: {
element: [ 'InvestmentProfileName' ]
}
}
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_InvestmentProfile', element: 'InvestmentProfile' } }]
@UI.textArrangement: #TEXT_FIRST
InvestmentProfile,
@UI.hidden: true
@Consumption.filter.hidden: true
@ObjectModel.readOnly: true
_InvestmentProfileText[1:Language = $session.system_language].InvestmentProfileName,
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_CostCenterStdVH', element: 'CostCenter' } }]
@ObjectModel: {
mandatory: true,
text: {
element: [ 'ResponsibleCostCenterName' ]
}
}
@UI.textArrangement: #TEXT_FIRST
ResponsibleCostCenter,
@UI.hidden: true
@EndUserText.label: 'Responsible Cost Center'
@ObjectModel.readOnly: true
_ResponsibleCostCenterText[1:Language = $session.system_language].CostCenterName as ResponsibleCostCenterName,
@ObjectModel.mandatory: true
@UI.textArrangement: #TEXT_FIRST
ProfitCenter,
@UI.hidden: true
@UI.textArrangement: #TEXT_FIRST
ControllingArea,
@Consumption.valueHelpDefinition: [{ entity :{
name : 'I_PlantStdVH',
element : 'Plant'
}}]
@ObjectModel: {
readOnly: false,
text: { element: [ 'PlantName' ] }
}
@UI.textArrangement: #TEXT_FIRST
Plant,
@UI.hidden: true
@ObjectModel.readOnly: true
_Plant[1:Language = $session.system_language].PlantName,
@ObjectModel: {
readOnly: false,
mandatory: true
}
@EndUserText: { quickInfo: 'Planned Start', label: 'Planned Start'}
ProjectStartDate as PlannedStartDate,
@ObjectModel: {
readOnly: false,
mandatory: true
}
@EndUserText: { quickInfo: 'Planned Finish', label: 'Planned Finish'}
ProjectEndDate as PlannedEndDate,
//CE2011: actual dates
@ObjectModel: {
readOnly: false
}
@EndUserText.label: 'Actual Start'
ActualStartDate,
@ObjectModel: {
readOnly: false
}
@EndUserText.label: 'Actual Finish'
ActualEndDate,
//CE2011: actual dates
@ObjectModel.readOnly: false
@Consumption.valueHelpDefinition:[{ entity : { name : 'C_EnterpriseProjectPriorityVH', element : 'PriorityCode' } } ]
@UI.textArrangement: #TEXT_ONLY
PriorityCode,
@EndUserText.label: 'Project Type'
@ObjectModel: {
readOnly: false,
text: {
element: [ 'ProjectTypeName' ]
}
}
@UI.textArrangement: #TEXT_ONLY
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_Projecttype', element: 'ProjectType' } }]
EnterpriseProjectType,
@UI.hidden: true
@ObjectModel: {
readOnly: true
}
_EnterpriseProjectTypeText[1:Language = $session.system_language].ProjectTypeName as ProjectTypeName,
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_CostCenterStdVH', element: 'CostCenter' } }]
@EndUserText: {
label: 'Default Cost Center for Postings',
quickInfo: 'Default Cost Center for Postings'
}
@ObjectModel: {
readOnly: false,
text: {
element: [ 'CostCenterName' ]
}
}
@UI.textArrangement: #TEXT_FIRST
CostCenter,
@UI.hidden: true
@ObjectModel.readOnly: true
_CostCenterText[1:Language = $session.system_language].CostCenterName,
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_CostingSheetProcedureVH', element:'CostingSheetProcedure'} }]
@ObjectModel: {
readOnly: false,
text: {
element: [ 'CostingSheetProcedureDesc' ]
}
}
@UI.textArrangement: #TEXT_FIRST
CostingSheet,
@UI.hidden: true
@ObjectModel.readOnly: true
_CostingSheetProcedureText[1:Language = $session.system_language].CostingSheetProcedureDesc as CostingSheetProcedureDesc,
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_FactoryCalendarValueHelp', element:'FactoryCalendar'} }]
@ObjectModel: {
readOnly: false,
text: {
element: [ 'FactoryCalendarName' ]
}
}
@UI.textArrangement: #TEXT_FIRST
FactoryCalendar,
@ObjectModel.readOnly: true
@UI.hidden: true
_FactoryCalendarText[1:Language = $session.system_language].FactoryCalendarName,
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_MM_FunctionalAreaValueHelp', element:'FunctionalArea'} }]
@ObjectModel: {
readOnly: false,
text: {
element: [ 'FunctionalAreaName' ]
}
}
@UI.textArrangement: #TEXT_FIRST
FunctionalArea,
@UI.hidden: true
ProjectProfileCode,
@ObjectModel.readOnly: true
@UI.hidden: true
_FunctionalArea._Text[1:Language = $session.system_language].FunctionalAreaName as FunctionalAreaName,
// Block Functions Fields
@EndUserText.label: 'Blocked Function-Time Recording'
@ObjectModel: {
readOnly: false,
text: {
element: [ 'BlockStatusDescription' ]
}
}
@UI.textArrangement: #TEXT_ONLY
_BlockFuncForEntProject.EntProjTimeRecgIsBlkd,
@UI.hidden: true
@ObjectModel: {
readOnly: true
}
_BlockFuncForEntProject._BlockFunctionText[1: Language = $session.system_language].BlockStatusDescription as BlockStatusDescription,
@EndUserText.label: 'Blocked Function-Concur Expense Posting'
@ObjectModel: {
readOnly: false,
text: {
element: [ 'BlockStatusDescription']
}
}
@UI.textArrangement: #TEXT_ONLY
_BlockFuncForEntProject.EntProjStaffExpensePostgIsBlkd,
@EndUserText.label: 'Blocked Function-Activity Allocation'
@ObjectModel: {
readOnly: false,
text: {
element: [ 'BlockStatusDescription']
}
}
@UI.textArrangement: #TEXT_ONLY
_BlockFuncForEntProject.EntProjServicePostingIsBlkd,
@EndUserText.label: 'Blocked Function-Other Expense Posting'
@ObjectModel: {
readOnly: false,
text: {
element: [ 'BlockStatusDescription']
}
}
@UI.textArrangement: #TEXT_ONLY
_BlockFuncForEntProject.EntProjOtherExpensePostgIsBlkd,
@EndUserText.label: 'Blocked Function-Purchasing'
@ObjectModel: {
readOnly: false,
text: {
element: [ 'BlockStatusDescription']
}
}
@UI.textArrangement: #TEXT_ONLY
_BlockFuncForEntProject.EntProjPurchasingIsBlkd,
// Associations
_ResponsibleCostCenterText,
_CostCenterText,
_ProcessingStatusText,
_Priority,
_EnterpriseProjectType,
_FunctionalArea,
_CostingSheetProcedureText,
_FactoryCalendarText,
_ProfitCenterText,
_InvestmentProfileText,
_BlockFuncForEntProject,
@Consumption.filter.hidden: true
_AuthUser,
@Consumption.filter.hidden: true
_AuthSubst,
@Consumption.filter.hidden: true
_AuthRole,
@Consumption.filter.hidden: true
_AuthGroup,
@Consumption.filter.hidden: true
_ProjObjRoot
}
where
Project is null
and Project is not null