P_PROJECTFINBUDGETSMMRY
P_PROJECTFINBUDGETSMMRY is a Composite CDS View in SAP S/4HANA. It reads from 3 data sources (I_EnterpriseProject, I_ProjectBasicData, P_EnterpriseProjectCosts) and exposes 95 fields with key fields ProjectUUID, ProjectInternalID, SourceLedger, Ledger, CompanyCode. It has 3 associations to related views.
Data Sources (3)
| Source | Alias | Join Type |
|---|---|---|
| I_EnterpriseProject | _proj | union_all |
| I_ProjectBasicData | _projBasic | inner |
| P_EnterpriseProjectCosts | _ProjectCostLineItems | from |
Associations (3)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | P_ProjectLastPredictedOn | _ProjPredict | $projection.ProjectInternalID = _ProjPredict.ProjectInternalID |
| [0..1] | I_PPM_ProjectSummaryTask | _ProjectSummary | _ProjectSummary.ProjectInternalID = $projection.ProjectInternalID |
| [0..1] | I_ControllingArea | _ControllingArea | _proj.ControllingArea = _ControllingArea.ControllingArea |
Annotations (12)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PPROJFBUDGETSMRY | view | |
| VDM.viewType | #COMPOSITE | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| VDM.private | true | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AbapCatalog.buffering.status | #NOT_ALLOWED | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| AbapCatalog.preserveKey | true | view | |
| ObjectModel.usageType.sizeCategory | #XXL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| AbapCatalog.compiler.compareFilter | true | view |
Fields (95)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectUUID | P_EnterpriseProjectCosts | ProjectUUID | |
| KEY | ProjectInternalID | P_EnterpriseProjectCosts | ProjectInternalID | |
| KEY | SourceLedger | P_EnterpriseProjectCosts | SourceLedger | |
| KEY | Ledger | P_EnterpriseProjectCosts | Ledger | |
| KEY | CompanyCode | P_EnterpriseProjectCosts | CompanyCode | |
| KEY | FiscalYear | P_EnterpriseProjectCosts | FiscalYear | |
| KEY | AccountingDocument | P_EnterpriseProjectCosts | AccountingDocument | |
| KEY | FinancialPlanningReqTransSqnc | P_EnterpriseProjectCosts | FinancialPlanningReqTransSqnc | |
| KEY | FinancialPlanningDataPacket | P_EnterpriseProjectCosts | FinancialPlanningDataPacket | |
| KEY | ActualPlanJournalEntryItem | P_EnterpriseProjectCosts | ActualPlanJournalEntryItem | |
| Project | P_EnterpriseProjectCosts | Project | ||
| ProjectDescription | P_EnterpriseProjectCosts | ProjectDescription | ||
| ProcessingStatus | P_EnterpriseProjectCosts | ProcessingStatus | ||
| ProjectProfileCode | P_EnterpriseProjectCosts | ProjectProfileCode | ||
| PlannedStartDate | P_EnterpriseProjectCosts | PlannedStartDate | ||
| PlannedEndDate | P_EnterpriseProjectCosts | PlannedEndDate | ||
| ProjectSummaryTaskUUID | P_EnterpriseProjectCosts | ProjectSummaryTaskUUID | ||
| ProjectCategory | P_EnterpriseProjectCosts | ProjectCategory | ||
| ProfitCenter | P_EnterpriseProjectCosts | ProfitCenter | ||
| ProjectType | P_EnterpriseProjectCosts | ProjectType | ||
| ProjectObject | P_EnterpriseProjectCosts | ProjectObject | ||
| AvailabilityControlIsActive | P_EnterpriseProjectCosts | AvailabilityControlIsActive | ||
| AvailabilityControlProfile | P_EnterpriseProjectCosts | AvailabilityControlProfile | ||
| AvailyCtrlTimeRangeType | P_EnterpriseProjectCosts | AvailyCtrlTimeRangeType | ||
| BudgetCurrencyRole | P_EnterpriseProjectCosts | BudgetCurrencyRole | ||
| CurrentDate | ||||
| ControllingArea | P_EnterpriseProjectCosts | ControllingArea | ||
| FunctionalArea | P_EnterpriseProjectCosts | FunctionalArea | ||
| ResponsibleCostCenter | P_EnterpriseProjectCosts | ResponsibleCostCenter | ||
| PlanningCategory | P_EnterpriseProjectCosts | PlanningCategory | ||
| SemanticTag | P_EnterpriseProjectCosts | SemanticTag | ||
| PostingDate | P_EnterpriseProjectCosts | PostingDate | ||
| CreationDate | P_EnterpriseProjectCosts | CreationDate | ||
| PredictedCostCreationDate | _ProjPredict | CreationDate | ||
| PredictedCostPostingDate | ||||
| ProjectProcessingStatus | _ProjectSummary | ProjectProcessingStatus | ||
| IsSettled | P_EnterpriseProjectCosts | IsSettled | ||
| GlobalCurrency | P_EnterpriseProjectCosts | GlobalCurrency | ||
| AmountInGlobalCurrency | P_EnterpriseProjectCosts | AmountInGlobalCurrency | ||
| ActualAmountInGlobalCurrency | ActualAmountInGlobalCurrency | |||
| CmtmtCostInGlobalCurrency | CmtmtCostInGlobalCurrency | |||
| ControllingObjectCurrency | ControllingObjectCurrency | |||
| AmountInObjectCurrency | AmountInObjectCurrency | |||
| ActlCostInProjCrcy | P_EnterpriseProjectCosts | ActlCostInProjCrcy | ||
| CmtmtCostInProjCrcy | CmtmtCostInProjCrcy | |||
| ProjectUUID | ||||
| KEY | ProjectInternalID | I_EnterpriseProject | ProjectInternalID | |
| KEY | SourceLedger | |||
| KEY | Ledger | |||
| KEY | CompanyCode | I_EnterpriseProject | CompanyCode | |
| KEY | FiscalYear | |||
| KEY | AccountingDocument | |||
| KEY | FinancialPlanningReqTransSqnc | |||
| KEY | FinancialPlanningDataPacket | |||
| KEY | ActualPlanJournalEntryItem | |||
| Project | I_ProjectBasicData | ProjectExternalID | ||
| ProjectDescription | I_ProjectBasicData | ProjectDescription | ||
| ProcessingStatus | I_EnterpriseProject | ProcessingStatus | ||
| ProjectProfileCode | I_ProjectBasicData | ProjectProfileCode | ||
| PlannedStartDate | I_ProjectBasicData | PlannedStartDate | ||
| PlannedEndDate | I_ProjectBasicData | PlannedEndDate | ||
| ProjectSummaryTaskUUID | I_EnterpriseProject | ProjectSummaryTaskUUID | ||
| ProjectCategory | _ProjectSummary | ProjectCategory | ||
| ProfitCenter | I_ProjectBasicData | ProfitCenter | ||
| ProjectType | I_EnterpriseProject | EnterpriseProjectType | ||
| ProjectObject | I_ProjectBasicData | ProjectObject | ||
| AvailabilityControlIsActive | I_ProjectBasicData | AvailabilityControlIsActive | ||
| AvailabilityControlProfile | I_ProjectBasicData | AvailabilityControlProfile | ||
| AvailyCtrlTimeRangeType | ||||
| BudgetCurrencyRole | ||||
| CurrentDate | ||||
| ControllingArea | I_EnterpriseProject | ControllingArea | ||
| FunctionalArea | I_EnterpriseProject | FunctionalArea | ||
| ResponsibleCostCenter | I_EnterpriseProject | ResponsibleCostCenter | ||
| PlanningCategory | ||||
| SemanticTag | ||||
| PostingDate | ||||
| CreationDate | ||||
| PredictedCostCreationDate | _ProjPredict | CreationDate | ||
| PredictedCostPostingDate | ||||
| ProjectProcessingStatus | _ProjectSummary | ProjectProcessingStatus | ||
| IsSettled | ||||
| GlobalCurrency | _ControllingArea | ControllingAreaCurrency | ||
| AmountInGlobalCurrency | 0 | |||
| ActualAmountInGlobalCurrency | 0 | |||
| CmtmtCostInGlobalCurrency | 0 | |||
| ActlCmtmtCumltvAmtInGlobCrcy | 0 | |||
| PredictedAmtInGlobalCurrency | 0 | |||
| LowerPredictionAmtInGlobCrcy | 0 | |||
| UpperPredictionAmtInGlobCrcy | 0 | |||
| ControllingObjectCurrency | I_ProjectBasicData | ProjectCurrency | ||
| AmountInObjectCurrency | 0 | |||
| ActlCostInProjCrcy | 0 | |||
| CmtmtCostInProjCrcy | 0 | |||
| AssgdValForBudgetInProjCrcy | 0 |
@AbapCatalog.sqlViewName: 'PPROJFBUDGETSMRY'
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck: #CHECK
@VDM.private:true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.buffering.status: #NOT_ALLOWED
@Metadata.ignorePropagatedAnnotations: true
@AbapCatalog.preserveKey:true
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #D
@AbapCatalog.compiler.compareFilter: true
@Consumption.dbHints: ['NO_JOIN_SIMPLIFICATION']
define view P_PROJECTFINBUDGETSMMRY
as select from P_EnterpriseProjectCosts as _ProjectCostLineItems //I_EnterpriseProject as _proj
// inner join P_EnterpriseProjectCosts as _ProjectCostLineItems on _ProjectCostLineItems.ProjectInternalID = _proj.ProjectInternalID
//I_EnterpriseProject as _proj
// inner join I_ProjectBasicData as _projBasic on _projBasic.ProjectInternalID = _proj.ProjectInternalID
// inner join P_ProjectCostLineItems as _ProjectCostLineItems on _ProjectCostLineItems.ProjectInternalID = _projBasic.ProjectInternalID
association [0..1] to P_ProjectLastPredictedOn as _ProjPredict on $projection.ProjectInternalID = _ProjPredict.ProjectInternalID
association [0..1] to I_PPM_ProjectSummaryTask as _ProjectSummary on _ProjectSummary.ProjectInternalID = $projection.ProjectInternalID
{
key _ProjectCostLineItems.ProjectUUID,
key _ProjectCostLineItems.ProjectInternalID as ProjectInternalID,
key _ProjectCostLineItems.SourceLedger, //key
key _ProjectCostLineItems.Ledger, //key
key _ProjectCostLineItems.CompanyCode, //key
key _ProjectCostLineItems.FiscalYear, //key
key _ProjectCostLineItems.AccountingDocument, //key
key _ProjectCostLineItems.FinancialPlanningReqTransSqnc, //key
key _ProjectCostLineItems.FinancialPlanningDataPacket, //key
key _ProjectCostLineItems.ActualPlanJournalEntryItem,
_ProjectCostLineItems.Project,
@Semantics.text: true
_ProjectCostLineItems.ProjectDescription,
_ProjectCostLineItems.ProcessingStatus,
_ProjectCostLineItems.ProjectProfileCode,
_ProjectCostLineItems.PlannedStartDate,
_ProjectCostLineItems.PlannedEndDate,
_ProjectCostLineItems.ProjectSummaryTaskUUID,
_ProjectCostLineItems.ProjectCategory,
_ProjectCostLineItems.ProfitCenter,
_ProjectCostLineItems.ProjectType,
//Availability Control Profile related fields
_ProjectCostLineItems.ProjectObject,
_ProjectCostLineItems.AvailabilityControlIsActive,
_ProjectCostLineItems.AvailabilityControlProfile,
_ProjectCostLineItems.AvailyCtrlTimeRangeType,
_ProjectCostLineItems.BudgetCurrencyRole,
$session.system_date as CurrentDate,
_ProjectCostLineItems.ControllingArea as ControllingArea,
_ProjectCostLineItems.FunctionalArea as FunctionalArea,
_ProjectCostLineItems.ResponsibleCostCenter as ResponsibleCostCenter,
//Project Cost Fields
_ProjectCostLineItems.PlanningCategory,
_ProjectCostLineItems.SemanticTag,
_ProjectCostLineItems.PostingDate,
_ProjectCostLineItems.CreationDate,
// _ProjectCostLineItems.GLAccountHierarchy,
_ProjPredict.CreationDate as PredictedCostCreationDate, //Available since CE1908
'00000000' as PredictedCostPostingDate, // Added as Metadata extension true annotation doesnt allow removal of fields
_ProjectSummary.ProjectProcessingStatus,
_ProjectCostLineItems.IsSettled as IsSettled,
//Global Currency Related fields
@Semantics.currencyCode:true
_ProjectCostLineItems.GlobalCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
_ProjectCostLineItems.AmountInGlobalCurrency,
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
@DefaultAggregation: #SUM
ActualAmountInGlobalCurrency,
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
@DefaultAggregation: #SUM
CmtmtCostInGlobalCurrency,
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
@DefaultAggregation: #SUM
case
when (_ProjectCostLineItems.PlanningCategory = 'CMTMT' or _ProjectCostLineItems.PlanningCategory = 'ACT01')
then _ProjectCostLineItems.AmountInGlobalCurrency
else 0
end as ActlCmtmtCumltvAmtInGlobCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
case
when _ProjectCostLineItems.PlanningCategory = 'PREDICT01'
then _ProjectCostLineItems.AmountInGlobalCurrency
else 0
end as PredictedAmtInGlobalCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
case
when _ProjectCostLineItems.PlanningCategory = 'PREDICT02'
then _ProjectCostLineItems.AmountInGlobalCurrency
else 0
end as LowerPredictionAmtInGlobCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
case
when _ProjectCostLineItems.PlanningCategory = 'PREDICT03'
then _ProjectCostLineItems.AmountInGlobalCurrency
else 0
end as UpperPredictionAmtInGlobCrcy,
@Semantics.currencyCode: true
ControllingObjectCurrency,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'ControllingObjectCurrency'
AmountInObjectCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'ControllingObjectCurrency'} }
_ProjectCostLineItems.ActlCostInProjCrcy,
@Semantics: { amount : {currencyCode: 'ControllingObjectCurrency'} }
@DefaultAggregation: #SUM
CmtmtCostInProjCrcy,
@Semantics.amount.currencyCode: 'ControllingObjectCurrency'
@DefaultAggregation: #SUM
case
when ( (_ProjectCostLineItems.PlanningCategory = 'CMTMT' or _ProjectCostLineItems.PlanningCategory = 'ACT01') )
then _ProjectCostLineItems.AmountInObjectCurrency
else 0
end as AssgdValForBudgetInProjCrcy
}
where
//IsSettled = 'X' and ProjectCategory = '6'
Project != ''
and ProjectInternalID != '00000000'
union all select from //P_ProjectsWithProjCat6 as _proj
I_EnterpriseProject as _proj
inner join I_ProjectBasicData as _projBasic on _projBasic.ProjectInternalID = _proj.ProjectInternalID
association [0..1] to I_PPM_ProjectSummaryTask as _ProjectSummary on _ProjectSummary.ProjectInternalID = _proj.ProjectInternalID
association [0..1] to I_ControllingArea as _ControllingArea on _proj.ControllingArea = _ControllingArea.ControllingArea
association [0..1] to P_ProjectLastPredictedOn as _ProjPredict on $projection.ProjectInternalID = _ProjPredict.ProjectInternalID
{
key _proj.ProjectUUID,
key _proj.ProjectInternalID,
key '' as SourceLedger, //key
key '' as Ledger, //key
key _proj.CompanyCode, //key
key cast('' as fis_gjahr ) as FiscalYear,
key '' as AccountingDocument,
key cast('' as fis_fp_request_tsn) as FinancialPlanningReqTransSqnc,
key cast('' as fis_fp_data_packet) as FinancialPlanningDataPacket,
key '' as ActualPlanJournalEntryItem,
_projBasic.ProjectExternalID as Project , //To fix Masked project issues _proj.Project,
@Semantics.text: true
_projBasic.ProjectDescription, //_proj.ProjectDescription,
_proj.ProcessingStatus,
_projBasic.ProjectProfileCode, //_proj.ProjectProfileCode,
_projBasic.PlannedStartDate, //_proj.PlannedStartDate, Message fix: 2080309974
_projBasic.PlannedEndDate, //_proj.PlannedEndDate,
_proj.ProjectSummaryTaskUUID,
_ProjectSummary.ProjectCategory as ProjectCategory,
_projBasic.ProfitCenter, //_proj.ProfitCenter,
_proj.EnterpriseProjectType as ProjectType,
//Availability Control Profile related fields
_projBasic.ProjectObject,
_projBasic.AvailabilityControlIsActive, //_proj.AvailabilityControlIsActive,
_projBasic.AvailabilityControlProfile, //_proj.AvailabilityControlProfile,
_projBasic._AvailabilityCtrlProfile.AvailyCtrlTimeRangeType,
_projBasic._AvailabilityCtrlProfile.BudgetCurrencyRole,
$session.system_date as CurrentDate,
_proj.ControllingArea as ControllingArea,
_proj.FunctionalArea as FunctionalArea,
_proj.ResponsibleCostCenter as ResponsibleCostCenter,
// Project Cost Fields
'' as PlanningCategory,
'' as SemanticTag, // _SemTagGL.SemanticTag,
'' as PostingDate,
'' as CreationDate,
// '' as GLAccountHierarchy, // _SemTagGL.GLAccountHierarchy,
_ProjPredict.CreationDate as PredictedCostCreationDate, //Available since CE1908
'00000000' as PredictedCostPostingDate, // Added as Metadata extension true annotation doesnt allow removal of fields
_ProjectSummary.ProjectProcessingStatus as ProjectProcessingStatus,
'X' as IsSettled,
//Global Currency Related fields
@Semantics.currencyCode:true
_ControllingArea.ControllingAreaCurrency as GlobalCurrency, //_proj.Currency
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
0 as AmountInGlobalCurrency,
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
@DefaultAggregation: #SUM
0 as ActualAmountInGlobalCurrency,
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
@DefaultAggregation: #SUM
0 as CmtmtCostInGlobalCurrency,
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
@DefaultAggregation: #SUM
0 as ActlCmtmtCumltvAmtInGlobCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
0 as PredictedAmtInGlobalCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
0 as LowerPredictionAmtInGlobCrcy,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'GlobalCurrency'} }
0 as UpperPredictionAmtInGlobCrcy,
@Semantics.currencyCode: true
_projBasic.ProjectCurrency as ControllingObjectCurrency, //cast('' as fis_curr2)
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'ControllingObjectCurrency'
0 as AmountInObjectCurrency,
@DefaultAggregation: #SUM
@Semantics: { amount : {currencyCode: 'ControllingObjectCurrency'} }
0 as ActlCostInProjCrcy,
@Semantics: { amount : {currencyCode: 'ControllingObjectCurrency'} }
@DefaultAggregation: #SUM
0 as CmtmtCostInProjCrcy,
@Semantics.amount.currencyCode: 'ControllingObjectCurrency'
@DefaultAggregation: #SUM
0 as AssgdValForBudgetInProjCrcy
}
where _ProjectSummary.ProjectCategory = '6' and _proj.Project != ''
and _proj.ProjectInternalID != '00000000'
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