C_EntProjectMassChange
Enterprise Project for Mass Change
C_EntProjectMassChange is a Consumption CDS View that provides data about "Enterprise Project for Mass Change" in SAP S/4HANA. It reads from 1 data source (I_PPM_Project) and exposes 65 fields with key field ProjectUUID. It has 10 associations to related views. Part of development package ODATA_PPM_PRO_MASS_CHANGE.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| I_PPM_Project | I_PPM_Project | from |
Associations (10)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | C_PPM_ProjectMemberContactCard | _Manager | _Manager.BusinessPartnerUUID = $projection.ProjectManagerUUID |
| [0..*] | I_CostCenterText | _ResponsibleCostCenterText | _ResponsibleCostCenterText.CostCenter = $projection.ResponsibleCostCenter and _ResponsibleCostCenterText.ControllingArea = $projection.ControllingArea and _ResponsibleCostCenterText.ValidityEndDate > $session.system_date and _ResponsibleCostCenterText.ValidityStartDate < $session.system_date |
| [0..1] | I_UserContactCard | _CreatedByUser | _CreatedByUser.ContactCardID = $projection.CreatedByUser |
| [1..1] | E_PPM_Project | _ProjectHeaderExtension | $projection.ProjectUUID = _ProjectHeaderExtension.ProjectUUID |
| [0..1] | C_PPM_TeamMemberSearchHelp | _TeamMember | _TeamMember.BusinessPartnerUUID = $projection.ProjectManagerUUID |
| [0..*] | I_FixedAsset | _FixedAsset | _FixedAsset.InvestmentProjectWBSElement = $projection.WBSElementInternalID and $projection.WBSElementInternalID <> '00000000' |
| [0..*] | I_ProfitCenterText | _ProfitCenterText | _ProfitCenterText.ProfitCenter = $projection.ProfitCenter and _ProfitCenterText.ControllingArea = $projection.ControllingArea and _ProfitCenterText.ValidityEndDate > $session.system_date and _ProfitCenterText.ValidityStartDate < $session.system_date |
| [0..*] | I_InvestmentProfileText | _InvestmentProfileText | $projection.InvestmentProfile = _InvestmentProfileText.InvestmentProfile |
| [0..*] | I_FactoryCalendarText | _FactoryCalendarText | $projection.FactoryCalendar = _FactoryCalendarText.FactoryCalendar |
| [0..*] | I_CostingSheetProcedureText | _CostingSheetProcedureText | _CostingSheetProcedureText.CostingSheetProcedure = $projection.CostingSheet |
Annotations (14)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | CENTPROJMCHG | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| EndUserText.label | Enterprise Project for Mass Change | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.representativeKey | ProjectUUID | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.updateEnabled | true | view | |
| VDM.viewType | #CONSUMPTION | view | |
| Metadata.allowExtensions | true | view |
Fields (65)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectUUID | ProjectUUID | ||
| EntProjMassChangeRequestUUID | ||||
| WBSElementInternalID | WBSElementInternalID | |||
| ProjectSummaryTaskUUID | ProjectSummaryTaskUUID | |||
| Project | Project | |||
| ProjectName | ProjectName | |||
| ProjectProfileCode | ProjectProfileCode | |||
| ProjectProfileCodeText | Project Profile Code Text | |||
| ProjectManagerUUID | ProjectManagerUUID | |||
| ProcessingStatus | ProcessingStatus | |||
| ResponsibleCostCenter | ResponsibleCostCenter | |||
| ResponsibleCostCenterName | Responsible Cost Center Name | |||
| ProfitCenter | ProfitCenter | |||
| ProfitCenterName | ||||
| ControllingArea | ControllingArea | |||
| ControllingAreaName | _ControllingArea | ControllingAreaName | ||
| CreatedByUser | CreatedByUser | |||
| CreatedByUserName | _CreatedByUser | FullName | ||
| CreationDateTime | CreationDateTime | |||
| LastChangedByUser | LastChangedByUser | Changed By | ||
| LastChangeDateTime | Last Changed On | |||
| Plant | Plant | |||
| PlantName | ||||
| PlannedStartDate | ProjectStartDate | |||
| PlannedEndDate | ProjectEndDate | |||
| ActualStartDate | ActualStartDate | |||
| ActualEndDate | ActualEndDate | |||
| InvestmentProfileName | ||||
| InvestmentProfile | InvestmentProfile | |||
| CompanyCode | CompanyCode | |||
| CompanyCodeName | ||||
| CostCenter | CostCenter | Default Cost Center for Postings | ||
| CostingSheet | CostingSheet | |||
| CostingSheetProcedureDesc | Costing Sheet Procedure Description | |||
| FactoryCalendar | FactoryCalendar | |||
| FactoryCalendarName | ||||
| FunctionalArea | FunctionalArea | |||
| FunctionalAreaName | ||||
| PriorityCode | PriorityCode | |||
| IsBillingRelevant | IsBillingRelevant | |||
| EnterpriseProjectType | EnterpriseProjectType | Project Type | ||
| ProjectTypeName | Project Type Description | |||
| FixedAssetExternalID | _FixedAsset | FixedAssetExternalID | ||
| _FactoryCalendarText | _FactoryCalendarText | |||
| _ControllingArea | _ControllingArea | |||
| _CostingSheetProcedureText | _CostingSheetProcedureText | |||
| _FunctionalArea | _FunctionalArea | |||
| _Plant | _Plant | |||
| _ProjectProfileCode | _ProjectProfileCode | |||
| _EnterpriseProjectType | _EnterpriseProjectType | |||
| _ResponsibleCostCenterText | _ResponsibleCostCenterText | |||
| _ProjObjRoot | _ProjObjRoot | |||
| _ProcessingStatus | _ProcessingStatus | |||
| _ProcessingStatusText | _ProcessingStatusText | |||
| _Manager | _Manager | |||
| _CreatedByUser | _CreatedByUser | |||
| _AuthUser | _AuthUser | |||
| _AuthSubst | _AuthSubst | |||
| _AuthRole | _AuthRole | |||
| _AuthGroup | _AuthGroup | |||
| _ProfitCenterText | _ProfitCenterText | |||
| _TeamMember | _TeamMember | |||
| _Priority | _Priority | |||
| _PriorityText | _PriorityText | |||
| _InvestmentProfileText | _InvestmentProfileText |
@AbapCatalog.sqlViewName: 'CENTPROJMCHG'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@EndUserText.label: 'Enterprise Project for 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_EntProjectMassChange
as select from I_PPM_Project
association [0..1] to C_PPM_ProjectMemberContactCard as _Manager on _Manager.BusinessPartnerUUID = $projection.ProjectManagerUUID
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..1] to I_UserContactCard as _CreatedByUser on _CreatedByUser.ContactCardID = $projection.CreatedByUser
association [1..1] to E_PPM_Project as _ProjectHeaderExtension on $projection.ProjectUUID = _ProjectHeaderExtension.ProjectUUID
association [0..1] to C_PPM_TeamMemberSearchHelp as _TeamMember on _TeamMember.BusinessPartnerUUID = $projection.ProjectManagerUUID
association [0..*] to I_FixedAsset as _FixedAsset on _FixedAsset.InvestmentProjectWBSElement = $projection.WBSElementInternalID
and $projection.WBSElementInternalID <> '00000000'
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
association [0..*] to I_FactoryCalendarText as _FactoryCalendarText on $projection.FactoryCalendar = _FactoryCalendarText.FactoryCalendar
association [0..*] to I_CostingSheetProcedureText as _CostingSheetProcedureText on _CostingSheetProcedureText.CostingSheetProcedure = $projection.CostingSheet
{
@ObjectModel.readOnly: true
key ProjectUUID,
@ObjectModel.virtualElement
@ObjectModel.filter.transformedBy: 'CL_PPM_PRO_MASS_CHANGE_SADL_EX'
@ObjectModel: { readOnly: true }
@UI.hidden: true
hextobin( '00000000000000000000000000000000' ) as EntProjMassChangeRequestUUID,
@ObjectModel.readOnly: true
WBSElementInternalID,
@ObjectModel.readOnly: true
ProjectSummaryTaskUUID,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'C_EnterpriseProjectVH',
element: 'Project' }
}]
@ObjectModel: {
text: {
element: [ 'ProjectName' ]
}
}
Project,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'C_EnterpriseProjectVH',
element: 'Project' }
}]
ProjectName,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'C_PPM_ProjectProfileVH',
element: 'ProjectProfileCode' }
}]
@ObjectModel: {
text: {
element: [ 'ProjectProfileCodeText' ]
}
}
ProjectProfileCode,
@Consumption.filter.hidden: true
@ObjectModel.readOnly: true
@EndUserText.label: 'Project Profile Code Text'
_ProjectProfileCode._Text[1: Language = $session.system_language].ProjectProfileCodeText as ProjectProfileCodeText,
/*@ObjectModel: {
foreignKey.association: '',
text.association: ''
}*/
@UI.hidden: true
ProjectManagerUUID,
@ObjectModel: {
readOnly: true,
text: {
association: [ '_ProcessingStatusText' ]
}
}
ProcessingStatus,
@Consumption.valueHelpDefinition: [{ entity :{
name : 'I_CostCenterStdVH',
element : 'CostCenter'
}}]
@ObjectModel: {
text: {
element: [ 'ResponsibleCostCenterName' ]
}
}
ResponsibleCostCenter,
@Consumption.filter.hidden: true
@EndUserText.label: 'Responsible Cost Center Name'
@ObjectModel.readOnly: true
_ResponsibleCostCenterText[1: Language = $session.system_language].CostCenterName as ResponsibleCostCenterName,
@ObjectModel: {
text: {
element: [ 'ProfitCenterName' ]
}
}
ProfitCenter,
_ProfitCenterText[1: Language = $session.system_language].ProfitCenterName,
@Consumption.valueHelpDefinition: [{ entity :{
name : 'C_ControllingAreaVH',
element : 'ControllingArea'
}}]
@ObjectModel: {
text: {
element: [ 'ControllingAreaName' ]
}
}
ControllingArea,
@Consumption.filter.hidden: true
@ObjectModel.readOnly: true
_ControllingArea.ControllingAreaName,
@Consumption.filter.hidden: true
@ObjectModel: {
text: {
element: [ 'CreatedByUserName' ]
},
foreignKey: {
association: '_CreatedByUser'
}
}
CreatedByUser,
@Consumption.filter.hidden: true
@Semantics.text: true
_CreatedByUser.FullName as CreatedByUserName,
@Consumption.filter.hidden: true
CreationDateTime,
@Consumption.filter.hidden: true
@EndUserText.label: 'Changed By'
LastChangedByUser,
@Consumption.filter.hidden: true
@EndUserText.label: 'Last Changed On'
cast(LastChangeDateTime as /s4ppm/tv_changed_on preserving type) as LastChangeDateTime,
@Consumption.valueHelpDefinition: [{ entity :{
name : 'I_PlantStdVH',
element : 'Plant'
}}]
@ObjectModel: {
text: {
element: [ 'PlantName' ]
}
}
Plant,
@Consumption.filter.hidden: true
@ObjectModel.readOnly: true
_Plant[1: Language = $session.system_language].PlantName,
//@Consumption.filter.hidden: true
ProjectStartDate as PlannedStartDate,
//@Consumption.filter.hidden: true
ProjectEndDate as PlannedEndDate,
//CE2011 ACTUAL DATES
//@Consumption.filter.hidden: true
@Consumption.filter: { selectionType: #INTERVAL, multipleSelections: false }
ActualStartDate,
//@Consumption.filter.hidden: true
@Consumption.filter: { selectionType: #INTERVAL, multipleSelections: false }
ActualEndDate,
//CE2011 ACTUAL DATES
@Consumption.filter.hidden: true
@ObjectModel.readOnly: true
_InvestmentProfileText[1: Language = $session.system_language].InvestmentProfileName,
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_InvestmentProfile', element: 'InvestmentProfile' } }]
@ObjectModel: {
foreignKey: {
association: '_InvestmentProfVH'
},
text: {
element: [ 'InvestmentProfileName' ]
}
}
InvestmentProfile,
@Consumption.filter.hidden: true
@ObjectModel: {
text: {
element: [ 'CompanyCodeName' ]
}
}
CompanyCode,
_CompanyCode[1: Language = $session.system_language].CompanyCodeName,
@Consumption.filter.hidden: true
@EndUserText.label: 'Default Cost Center for Postings'
CostCenter,
@Consumption.filter.hidden: true
@ObjectModel: {
text: {
element: [ 'CostingSheetProcedureDesc' ]
}
}
CostingSheet,
@Consumption.filter.hidden: true
@ObjectModel.readOnly: true
@EndUserText.label: 'Costing Sheet Procedure Description'
_CostingSheetProcedureText[1: Language = $session.system_language].CostingSheetProcedureDesc as CostingSheetProcedureDesc,
@Consumption.filter.hidden: true
@ObjectModel: {
text: {
element: [ 'FactoryCalendarName' ]
}
}
FactoryCalendar,
@Consumption.filter.hidden: true
@ObjectModel.readOnly: true
_FactoryCalendarText[1: Language = $session.system_language].FactoryCalendarName,
@Consumption.filter.hidden: true
@ObjectModel: {
text: {
element: [ 'FunctionalAreaName' ]
}
}
FunctionalArea,
@Consumption.filter.hidden: true
@ObjectModel.readOnly: true
_FunctionalArea._Text[1:Language = $session.system_language].FunctionalAreaName as FunctionalAreaName,
@Consumption.valueHelpDefinition: [{ entity : {name: 'C_EnterpriseProjectPriorityVH', element: 'PriorityCode' }}]
@ObjectModel.text.control: #('ASSOCIATED_TEXT_UI_HIDDEN')
PriorityCode,
//@Consumption.filter.hidden: true
IsBillingRelevant,
@ObjectModel: {
text: {
element: [ 'ProjectTypeName' ]
}
}
@Consumption.valueHelpDefinition: [{ entity : {name: 'I_Projecttype', element: 'ProjectType' } }]
@UI.textArrangement: #TEXT_ONLY
@EndUserText.label: 'Project Type'
EnterpriseProjectType,
@EndUserText.label: 'Project Type Description'
_EnterpriseProjectTypeText[1:Language = $session.system_language].ProjectTypeName as ProjectTypeName,
@EndUserText: {
label: 'Asset Under Construction ID'
}
@ObjectModel.readOnly: true
_FixedAsset.FixedAssetExternalID,
@Consumption.filter.hidden: true
_FactoryCalendarText,
@Consumption.filter.hidden: true
_ControllingArea,
@Consumption.filter.hidden: true
_CostingSheetProcedureText,
@Consumption.filter.hidden: true
_FunctionalArea,
@Consumption.filter.hidden: true
_Plant,
@Consumption.filter.hidden: true
_ProjectProfileCode,
@Consumption.filter.hidden: true
_EnterpriseProjectType,
@Consumption.filter.hidden: true
_ResponsibleCostCenterText,
@Consumption.filter.hidden: true
_ProjObjRoot,
@Consumption.filter.hidden: true
_ProcessingStatus,
@Consumption.filter.hidden: true
_ProcessingStatusText,
@Consumption.filter.hidden: true
_Manager,
@Consumption.filter.hidden: true
_CreatedByUser,
@Consumption.filter.hidden: true
_AuthUser,
@Consumption.filter.hidden: true
_AuthSubst,
@Consumption.filter.hidden: true
_AuthRole,
@Consumption.filter.hidden: true
_AuthGroup,
@Consumption.filter.hidden: true
_ProfitCenterText,
_TeamMember,
_Priority,
@Consumption.filter.hidden: true
_PriorityText,
@Consumption.filter.hidden: true
_InvestmentProfileText
}
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA