C_ProjectGraphOverview
Project Graph Overview
C_ProjectGraphOverview is a Consumption CDS View that provides data about "Project Graph Overview" in SAP S/4HANA. It reads from 1 data source (I_Project) and exposes 93 fields with key fields ProjectExternalID, Version. It has 10 associations to related views. It is exposed through 1 OData service (UI_PROJECTOBJECTHIERARCHY). Part of development package ODATA_PROJECT_SCHEDULE.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| I_Project | I_Project | from |
Associations (10)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..*] | C_ProjectNetworkGraphOverview | _ProjectNetwork | $projection.ProjectInternalID = _ProjectNetwork.ProjectInternalID and _ProjectNetwork.Version = $projection.Version |
| [0..*] | C_WBSElementGraphOverview | _WBSElement | $projection.ProjectInternalID = _WBSElement.ProjectInternalID and _WBSElement.Version = $projection.Version and _WBSElement.WBSElementHierarchyLevel = 1 |
| [0..1] | I_StsObjConcatActiveStsILL | _Status | _Status.StatusObject = $projection.ProjectObject |
| [1..1] | E_Project | _Extension | $projection.ProjectExternalID = _Extension.Project |
| [0..1] | I_FreeDfndTblFieldSemanticText | _FieldKeyLabel | $projection.FreeDefinedTableFieldSemantic = _FieldKeyLabel.FreeDefinedTableFieldSemantic and _FieldKeyLabel.Language = $session.system_language |
| [1..1] | I_ControllingArea | _ControllingArea | $projection.ControllingArea = _ControllingArea.ControllingArea |
| [1..1] | I_CompanyCode | _CompanyCode | $projection.CompanyCode = _CompanyCode.CompanyCode |
| [1..1] | I_BusinessArea | _BusinessArea | $projection.BusinessArea = _BusinessArea.BusinessArea |
| [1..1] | I_Plant | _Plant | $projection.Plant = _Plant.Plant |
| [1..*] | I_CostCenter | _CostCenter | $projection.CostCenter = _CostCenter.CostCenter and $projection.ControllingArea = _CostCenter.ControllingArea |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | CPROJGRAPHOV | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #M | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| AbapCatalog.preserveKey | true | view | |
| Metadata.allowExtensions | true | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| VDM.viewType | #CONSUMPTION | view | |
| EndUserText.label | Project Graph Overview | view |
OData Services (1)
| Service | Binding | Version | Contract | Release |
|---|---|---|---|---|
| UI_PROJECTOBJECTHIERARCHY | UI_PS_PROJECT_SCHEDULE_SRV | V2 | C1 | NOT_RELEASED |
Fields (93)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectExternalID | ProjectWithCodingMask | ||
| KEY | Version | |||
| ControllingArea | ControllingArea | |||
| ControllingAreaName | ||||
| ProjectInternalID | ProjectInternalID | |||
| ProjectObject | ProjectObject | |||
| PlanningMethForProjBasicDate | PlanningMethForProjBasicDate | |||
| PlanningMethForProjFcstdDate | PlanningMethForProjFcstdDate | |||
| CompanyCode | CompanyCode | |||
| CompanyCodeName | ||||
| CreatedByUser | CreatedByUser | |||
| CreationDate | CreationDate | |||
| LastChangedByUser | LastChangedByUser | |||
| LastChangeDate | LastChangeDate | |||
| ResponsiblePerson | ResponsiblePerson | |||
| ResponsiblePersonName | ResponsiblePersonName | Person Responsible Name | ||
| ApplicantCode | ApplicantCode | |||
| ApplicantName | ApplicantName | Applicant Name | ||
| ProjectProfileCode | ProjectProfileCode | |||
| ProjectProfileCodeText | Project Profile Name | |||
| BusinessArea | BusinessArea | |||
| BusinessAreaName | ||||
| ProfitCenter | ProfitCenter | |||
| ProfitCenterName | ||||
| Plant | Plant | |||
| PlantName | _Plant | PlantName | ||
| CostCenter | CostCenter | |||
| ControllingObjectClass | ControllingObjectClass | |||
| ControllingObjectClassName | ||||
| PlannedStartDate | ||||
| PlannedEndDate | ||||
| Currency | Currency | |||
| FactoryCalendar | FactoryCalendar | |||
| NetworkProfile | NetworkProfile | |||
| NetworkProfileName | ||||
| ProjectHasOwnStock | ProjectHasOwnStock | |||
| WBSIsStatisticalWBSElement | WBSIsStatisticalWBSElement | |||
| TaxJurisdiction | ||||
| TaxJurisdictionName | ||||
| ProjInterestCalcProfile | ProjInterestCalcProfile | |||
| ProjInterestCalcProfileName | ||||
| InvestmentProfile | InvestmentProfile | |||
| BudgetProfile | BudgetProfile | |||
| PlanningProfile | PlanningProfile | |||
| FunctionalArea | FunctionalArea | |||
| FunctionalAreaName | ||||
| ProjBasicDatePlanMethName | ||||
| ProjFcstdDatePlanMethName | ||||
| SchedulingDurationUnit | SchedulingDurationUnit | |||
| WBSSchedulingProfile | WBSSchedulingProfile | |||
| WBSSchedulingProfileName | ||||
| IsMarkedForDeletion | ||||
| ProjectVersionDescription | ||||
| FreeDefinedTableFieldSemantic | FreeDefinedTableFieldSemantic | Field Key | ||
| FreeDfndTableFieldSemanticName | _FieldKeyLabel | FreeDfndTableFieldSemanticName | ||
| FreeDefinedAttribute01 | FreeDefinedAttribute01 | |||
| FreeDefinedAttribute02 | FreeDefinedAttribute02 | |||
| FreeDefinedAttribute03 | FreeDefinedAttribute03 | |||
| FreeDefinedAttribute04 | FreeDefinedAttribute04 | |||
| FreeDefinedQuantity1Unit | FreeDefinedQuantity1Unit | |||
| FreeDefinedQuantity1 | FreeDefinedQuantity1 | |||
| FreeDefinedQuantity2Unit | FreeDefinedQuantity2Unit | |||
| FreeDefinedQuantity2 | FreeDefinedQuantity2 | |||
| FreeDefinedAmount1Currency | FreeDefinedAmount1Currency | |||
| FreeDefinedAmount1 | ||||
| FreeDefinedAmount2Currency | FreeDefinedAmount2Currency | |||
| FreeDefinedAmount2 | ||||
| FreeDefinedDate1 | FreeDefinedDate1 | |||
| FreeDefinedDate2 | FreeDefinedDate2 | |||
| FreeDefinedIndicator1 | FreeDefinedIndicator1 | |||
| FreeDefinedIndicator2 | FreeDefinedIndicator2 | |||
| FreeDefinedAttribute01Label | _FieldKeyLabel | FreeDefinedAttribute01Label | ||
| FreeDefinedAttribute02Label | _FieldKeyLabel | FreeDefinedAttribute02Label | ||
| FreeDefinedAttribute03Label | _FieldKeyLabel | FreeDefinedAttribute03Label | ||
| FreeDefinedAttribute04Label | _FieldKeyLabel | FreeDefinedAttribute04Label | ||
| FreeDefinedQuantity1Label | _FieldKeyLabel | FreeDefinedQuantity1Label | ||
| FreeDefinedQuantity2Label | _FieldKeyLabel | FreeDefinedQuantity2Label | ||
| FreeDefinedAmount1Label | _FieldKeyLabel | FreeDefinedAmount1Label | ||
| FreeDefinedAmount2Label | _FieldKeyLabel | FreeDefinedAmount2Label | ||
| FreeDefinedDate1Label | _FieldKeyLabel | FreeDefinedDate1Label | ||
| FreeDefinedDate2Label | _FieldKeyLabel | FreeDefinedDate2Label | ||
| FreeDefinedIndicator1Label | _FieldKeyLabel | FreeDefinedIndicator1Label | ||
| FreeDefinedIndicator2Label | _FieldKeyLabel | FreeDefinedIndicator2Label | ||
| _ControllingArea | _ControllingArea | |||
| _CompanyCode | _CompanyCode | |||
| _BusinessArea | _BusinessArea | |||
| _CostCenter | _CostCenter | |||
| _Plant | _Plant | |||
| _WBSElement | _WBSElement | |||
| _ProjectNetwork | _ProjectNetwork | |||
| _Status | _Status | |||
| _ResponsiblePerson | _ResponsiblePerson | |||
| _ProjectApplicant | _ProjectApplicant |
@AbapCatalog.sqlViewName: 'CPROJGRAPHOV'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.privilegedAssociations: [ '_Status' ]
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #M
@ObjectModel.usageType.dataClass: #MIXED
@AbapCatalog.preserveKey:true
@Metadata.allowExtensions: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #CONSUMPTION
//@ObjectModel.semanticKey: [ 'Project' ]
@EndUserText.label: 'Project Graph Overview'
define view C_ProjectGraphOverview
as select from I_Project
association [0..*] to C_ProjectNetworkGraphOverview as _ProjectNetwork on $projection.ProjectInternalID = _ProjectNetwork.ProjectInternalID
and _ProjectNetwork.Version = $projection.Version
association [0..*] to C_WBSElementGraphOverview as _WBSElement on $projection.ProjectInternalID = _WBSElement.ProjectInternalID
and _WBSElement.Version = $projection.Version
and _WBSElement.WBSElementHierarchyLevel = 1
association [0..1] to I_StsObjConcatActiveStsILL as _Status on _Status.StatusObject = $projection.ProjectObject
association [1..1] to E_Project as _Extension on $projection.ProjectExternalID = _Extension.Project
association [0..1] to I_FreeDfndTblFieldSemanticText as _FieldKeyLabel on $projection.FreeDefinedTableFieldSemantic = _FieldKeyLabel.FreeDefinedTableFieldSemantic
and _FieldKeyLabel.Language = $session.system_language
association [1..1] to I_ControllingArea as _ControllingArea on $projection.ControllingArea = _ControllingArea.ControllingArea
association [1..1] to I_CompanyCode as _CompanyCode on $projection.CompanyCode = _CompanyCode.CompanyCode
association [1..1] to I_BusinessArea as _BusinessArea on $projection.BusinessArea = _BusinessArea.BusinessArea
association [1..1] to I_Plant as _Plant on $projection.Plant = _Plant.Plant
association [1..*] to I_CostCenter as _CostCenter on $projection.CostCenter = _CostCenter.CostCenter
and $projection.ControllingArea = _CostCenter.ControllingArea
{
@ObjectModel.text.element: 'ProjectDescription'
key ProjectWithCodingMask as ProjectExternalID,
key cast( '' as vsnmr_v ) as Version,
@Semantics.text: true
case
when _ProjectShortText.LanguageBasedShortText is not initial
then _ProjectShortText.LanguageBasedShortText
else ProjectDescription
end as ProjectDescription,
//ProjectDescription,
@ObjectModel.foreignKey.association: '_ControllingArea'
ControllingArea,
cast ( _ControllingArea.ControllingAreaName as ps_s4_bezei ) as ControllingAreaName,
//-->Not for exposure
@UI:{ hidden: true }
ProjectInternalID,
@UI:{ hidden: true }
ProjectObject,
@UI:{ hidden: true }
PlanningMethForProjBasicDate,
@UI:{ hidden: true }
PlanningMethForProjFcstdDate,
//<--Not for exposure
@ObjectModel.foreignKey.association: '_CompanyCode'
CompanyCode,
cast ( _CompanyCode.CompanyCodeName as fac_co_code_name ) as CompanyCodeName,
CreatedByUser,
CreationDate,
LastChangedByUser,
@DefaultAggregation: #MAX
LastChangeDate,
ResponsiblePerson,
@EndUserText.label: 'Person Responsible Name'
ResponsiblePersonName,
ApplicantCode,
@EndUserText.label: 'Applicant Name'
ApplicantName,
ProjectProfileCode,
@EndUserText.label: 'Project Profile Name'
cast( _ProjectProfileCode._Text[1: Language = $session.system_language ].ProjectProfileCodeText as ps_s4_profi_txt ) as ProjectProfileCodeText,
@ObjectModel.foreignKey.association: '_BusinessArea'
BusinessArea,
cast ( _BusinessArea._Text[1:Language = $session.system_language].BusinessAreaName as fis_busarea_name ) as BusinessAreaName,
ProfitCenter,
_ProfitCenter[1: ValidityEndDate >= $session.system_date
and ValidityStartDate <= $session.system_date ]._Text[1: Language = $session.system_language ].ProfitCenterName,
@ObjectModel.foreignKey.association: '_Plant'
Plant,
_Plant.PlantName,
@ObjectModel.foreignKey.association: '_CostCenter'
CostCenter,
ControllingObjectClass,
cast( _ControllingObjectClass._Text[1: Language = $session.system_language ].ControllingObjectClassName as ps_s4_scope_cvtext ) as ControllingObjectClassName,
cast(PlannedStartDate as ps_plfaz_chg) as PlannedStartDate,
cast(PlannedEndDate as ps_plsez_chg) as PlannedEndDate,
ForecastedStartDate,
ForecastedEndDate,
Currency,
FactoryCalendar,
NetworkProfile,
cast( _NetworkProfile._Text[1: Language = $session.system_language ].NetworkProfileName as ps_s4_ntwk_profi_txt ) as NetworkProfileName,
ProjectHasOwnStock,
WBSIsStatisticalWBSElement,
cast ( TaxJurisdiction as ps_s4_txjcd) as TaxJurisdiction,
cast( _TaxJurisdiction._Text[1:Language = $session.system_language].TaxJurisdictionName as ps_s4_txjt preserving type ) as TaxJurisdictionName,
ProjInterestCalcProfile,
cast ( _ProjInterestCalcProfile._Text[1: Language = $session.system_language ].ProjInterestCalcProfileName as ps_s4_zscht preserving type ) as ProjInterestCalcProfileName,
InvestmentProfile,
BudgetProfile,
PlanningProfile,
FunctionalArea,
cast ( _FunctionalArea._Text[1: Language = $session.system_language ].FunctionalAreaName as fac_funcnl_area_name ) as FunctionalAreaName,
cast ( _ProjBasicDatePlanMethName._Text[1: Language = $session.system_language ].ProjBasicDatePlanMethName as ps_s4_planbasic_val_text ) as ProjBasicDatePlanMethName,
cast ( _ProjFcstdDatePlanMethName._Text[1: Language = $session.system_language ].ProjBasicDatePlanMethName as ps_s4_planfcst_val_text ) as ProjFcstdDatePlanMethName,
SchedulingDurationUnit,
WBSSchedulingProfile,
_Wbsschedulingprofile._Text[1: Language = $session.system_language ].WBSSchedulingProfileName,
cast(IsMarkedForDeletion as ps_s4_loevm) as IsMarkedForDeletion,
case
when _Status.ConcatenatedActiveSystStsName is null
then ''
else _Status.ConcatenatedActiveSystStsName
end as ConcatenatedActiveSystStsName,
case
when _Status.ConcatenatedActiveUserStsName is null
then ''
else _Status.ConcatenatedActiveUserStsName
end as ConcatenatedActiveUserStsName,
// end 28.08.2021
cast ( '' as wty_vetxt ) as ProjectVersionDescription,
@EndUserText.label: 'Field Key'
@ObjectModel.text.element: ['FreeDfndTableFieldSemanticName']
FreeDefinedTableFieldSemantic,
@ObjectModel.filter.enabled: false
@Semantics.text: true
_FieldKeyLabel.FreeDfndTableFieldSemanticName,
FreeDefinedAttribute01,
FreeDefinedAttribute02,
FreeDefinedAttribute03,
FreeDefinedAttribute04,
@Semantics.unitOfMeasure: true
FreeDefinedQuantity1Unit,
@Semantics.quantity.unitOfMeasure: 'FreeDefinedQuantity1Unit'
FreeDefinedQuantity1,
@Semantics.unitOfMeasure: true
FreeDefinedQuantity2Unit,
@Semantics.quantity.unitOfMeasure: 'FreeDefinedQuantity2Unit'
FreeDefinedQuantity2,
@Semantics.currencyCode: true
FreeDefinedAmount1Currency,
@Semantics.amount.currencyCode: 'FreeDefinedAmount1Currency'
cast ( FreeDefinedAmount1 as abap.curr( 13, 2 ) ) as FreeDefinedAmount1,
@Semantics.currencyCode: true
FreeDefinedAmount2Currency,
@Semantics.amount.currencyCode: 'FreeDefinedAmount2Currency'
cast ( FreeDefinedAmount2 as abap.curr( 13, 2 ) ) as FreeDefinedAmount2,
FreeDefinedDate1,
FreeDefinedDate2,
FreeDefinedIndicator1,
FreeDefinedIndicator2,
@Consumption.filter.hidden: true
_FieldKeyLabel.FreeDefinedAttribute01Label as FreeDefinedAttribute01Label,
@Consumption.filter.hidden: true
_FieldKeyLabel.FreeDefinedAttribute02Label as FreeDefinedAttribute02Label,
@Consumption.filter.hidden: true
_FieldKeyLabel.FreeDefinedAttribute03Label as FreeDefinedAttribute03Label,
@Consumption.filter.hidden: true
_FieldKeyLabel.FreeDefinedAttribute04Label as FreeDefinedAttribute04Label,
@Consumption.filter.hidden: true
_FieldKeyLabel.FreeDefinedQuantity1Label as FreeDefinedQuantity1Label,
@Consumption.filter.hidden: true
_FieldKeyLabel.FreeDefinedQuantity2Label as FreeDefinedQuantity2Label,
@Consumption.filter.hidden: true
_FieldKeyLabel.FreeDefinedAmount1Label as FreeDefinedAmount1Label,
@Consumption.filter.hidden: true
_FieldKeyLabel.FreeDefinedAmount2Label as FreeDefinedAmount2Label,
@Consumption.filter.hidden: true
_FieldKeyLabel.FreeDefinedDate1Label as FreeDefinedDate1Label,
@Consumption.filter.hidden: true
_FieldKeyLabel.FreeDefinedDate2Label as FreeDefinedDate2Label,
@Consumption.filter.hidden: true
_FieldKeyLabel.FreeDefinedIndicator1Label as FreeDefinedIndicator1Label,
@Consumption.filter.hidden: true
_FieldKeyLabel.FreeDefinedIndicator2Label as FreeDefinedIndicator2Label,
//-->Associations
_ControllingArea,
_CompanyCode,
_BusinessArea,
_CostCenter,
_Plant,
_WBSElement,
_ProjectNetwork,
_Status,
@UI.hidden: true
@Consumption.hidden: true
_ResponsiblePerson,
@UI.hidden: true
@Consumption.hidden: true
_ProjectApplicant
}
where
ProjectObject like 'PD%'
or ProjectObject like 'V1%'
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