@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..1] to I_CostCenterStdVH as _ResponsibleCostCenterVH on _ResponsibleCostCenterVH.CostCenter = $projection.ResponsibleCostCenter
and _ResponsibleCostCenterVH.ControllingArea = $projection.ControllingArea
and _ResponsibleCostCenterVH.ValidityEndDate > $session.system_date
and _ResponsibleCostCenterVH.ValidityStartDate < $session.system_date
association [0..1] to I_CostCenterStdVH as _CostCenterVH on _CostCenterVH.CostCenter = $projection.CostCenter
and _CostCenterVH.ControllingArea = $projection.ControllingArea
and _CostCenterVH.ValidityEndDate > $session.system_date
and _CostCenterVH.ValidityStartDate < $session.system_date
association [1..1] to E_PPM_Project as _ProjectHeaderExtension on $projection.ProjectUUID = _ProjectHeaderExtension.ProjectUUID
association [1..1] to C_PPM_TeamMemberSearchHelp as _TeamMember on $projection.ProjectManager = _TeamMember.BusinessPartner
association [0..*] to I_CostingSheetProcedureVH as _CostingSheetProcedureVH on _CostingSheetProcedureVH.CostingSheetProcedure = $projection.CostingSheet
association [0..1] to C_FactoryCalendarValueHelp as _FactoryCalendarVH on _FactoryCalendarVH.FactoryCalendar = $projection.FactoryCalendar
association [0..1] to C_MM_FunctionalAreaValueHelp as _FunctionalAreaVH on _FunctionalAreaVH.FunctionalArea = $projection.FunctionalArea
association [1..1] to I_EntProjProcgStatusAction as _ProcessingStatus on _ProcessingStatus.ProcessingStatus = $projection.ProcessingStatus
association [0..1] to I_ProfitCenterStdVH as _ProfitCenterVH on _ProfitCenterVH.ProfitCenter = $projection.ProfitCenter
and _ProfitCenterVH.ControllingArea = $projection.ControllingArea
and _ProfitCenterVH.ValidityEndDate > $session.system_date
and _ProfitCenterVH.ValidityStartDate < $session.system_date
association [0..1] to I_InvestmentProfile as _InvestmentProfVH on _InvestmentProfVH.InvestmentProfile = $projection.InvestmentProfile
//Block Functions
association [0..1] 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.valueHelp: '_TeamMember'
@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.valueHelp: '_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.valueHelp: '_InvestmentProfVH'
@UI.textArrangement: #TEXT_FIRST
InvestmentProfile,
@UI.hidden: true
@Consumption.filter.hidden: true
@ObjectModel.readOnly: true
_InvestmentProfVH.InvestmentProfileName,
@Consumption.valueHelp: '_ResponsibleCostCenterVH'
@ObjectModel: {
foreignKey: {
association: '_ResponsibleCostCenterVH'
},
mandatory: true,
text: {
element: [ 'ResponsibleCostCenterName' ]
}
}
@UI.textArrangement: #TEXT_FIRST
ResponsibleCostCenter,
@UI.hidden: true
@EndUserText.label: 'Responsible Cost Center'
@ObjectModel.readOnly: true
_ResponsibleCostCenterVH._Text[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.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.valueHelp: '_Priority'
@UI.textArrangement: #TEXT_ONLY
PriorityCode,
@EndUserText.label: 'Project Type'
@ObjectModel: {
readOnly: false,
text: {
element: [ 'ProjectTypeName' ]
}
}
@UI.textArrangement: #TEXT_ONLY
EnterpriseProjectType,
@UI.hidden: true
@ObjectModel: {
readOnly: true
}
_EnterpriseProjectTypeText[1:Language = $session.system_language].ProjectTypeName as ProjectTypeName,
@Consumption: {
valueHelp: '_CostCenterVH'
}
@EndUserText: {
label: 'Default Cost Center for Postings',
quickInfo: 'Default Cost Center for Postings'
}
@ObjectModel: {
readOnly: false,
foreignKey: {
association: '_CostCenterVH'
},
text: {
element: [ 'CostCenterName' ]
}
}
@UI.textArrangement: #TEXT_FIRST
CostCenter,
@UI.hidden: true
@ObjectModel.readOnly: true
_CostCenterVH._Text[1:Language = $session.system_language].CostCenterName,
@Consumption: {
valueHelp: '_CostingSheetProcedureVH'
}
@ObjectModel: {
readOnly: false,
foreignKey: {
association: '_CostingSheetProcedureVH'
},
text: {
element: [ 'CostingSheetProcedureDesc' ]
}
}
@UI.textArrangement: #TEXT_FIRST
CostingSheet,
@UI.hidden: true
@ObjectModel.readOnly: true
_CostingSheetProcedureVH.CostingSheetProcedureDesc as CostingSheetProcedureDesc,
@Consumption: {
valueHelp: '_FactoryCalendarVH'
}
@ObjectModel: {
readOnly: false,
text: {
element: [ 'FactoryCalendarName' ]
}
}
@UI.textArrangement: #TEXT_FIRST
FactoryCalendar,
@ObjectModel.readOnly: true
@UI.hidden: true
_FactoryCalendarVH._Text[1: Language = $session.system_language].FactoryCalendarName,
@Consumption.valueHelp: '_FunctionalAreaVH'
@ObjectModel: {
readOnly: false,
text: {
element: [ 'FunctionalAreaName' ]
},
foreignKey: {
association: '_FunctionalAreaVH'
}
}
@UI.textArrangement: #TEXT_FIRST
FunctionalArea,
@ObjectModel.readOnly: true
@UI.hidden: true
_FunctionalAreaVH.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
_ResponsibleCostCenterVH,
_CostCenterVH,
_ProcessingStatus,
_ProcessingStatusText,
_Priority,
_EnterpriseProjectType,
_FunctionalArea,
_CostingSheetProcedureVH,
_FactoryCalendarVH,
_FunctionalAreaVH,
_ProfitCenterVH,
_InvestmentProfVH,
_BlockFuncForEntProject,
_TeamMember,
@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
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_FACTORYCALENDARVALUEHELP",
"C_MM_FUNCTIONALAREAVALUEHELP",
"I_BLOCKFUNCTIONSTATUSTEXT",
"I_COSTCENTERSTDVH",
"I_COSTCENTERTEXT",
"I_COSTINGSHEETPROCEDUREVH",
"I_ENTPROJELMNTBLOCKFUNC",
"I_FACTORYCALENDARTEXT",
"I_INVESTMENTPROFILE",
"I_PLANT",
"I_PPM_PROCESSINGSTATUSTEXT",
"I_PPM_PROJECT",
"I_PROJECTTYPETEXT"
],
"ASSOCIATED":
[
"C_FACTORYCALENDARVALUEHELP",
"C_MM_FUNCTIONALAREAVALUEHELP",
"C_PPM_TEAMMEMBERSEARCHHELP",
"E_PPM_PROJECT",
"I_COSTCENTERSTDVH",
"I_COSTINGSHEETPROCEDUREVH",
"I_ENTPROJELMNTBLOCKFUNC",
"I_ENTPROJPROCGSTATUSACTION",
"I_FUNCTIONALAREA",
"I_INVESTMENTPROFILE",
"I_PPM_AUTHZNBYSUBSTITH",
"I_PPM_AUTHZNBYUSERROLEH",
"I_PPM_AUTHZNBYUSRGRPH",
"I_PPM_AUTHZNBYUSRH",
"I_PPM_PRIORITY",
"I_PPM_PROCESSINGSTATUSTEXT",
"I_PROFITCENTERSTDVH",
"I_PROJECTTYPE",
"I_WBSELEMENTBASICDATA"
],
"BASE":
[
"I_PPM_PROJECT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/