I_ProjectBasicData
Project Basic Data
I_ProjectBasicData is a Basic CDS View (Dimension) that provides data about "Project Basic Data" in SAP S/4HANA. It reads from 1 data source (proj) and exposes 34 fields with key field ProjectInternalID. It has 8 associations to related views. Part of development package VDM_PS_ST.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| proj | proj | from |
Associations (8)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_WBSElementBasicData | _RootWBSElement | $projection.ProjectInternalID = _RootWBSElement.ProjectInternalID and $projection.ProjectExternalID = _RootWBSElement.WBSElementExternalID |
| [0..*] | I_WBSElementBasicData | _WBSElement | $projection.ProjectInternalID = _WBSElement.ProjectInternalID |
| [0..1] | I_CompanyCode | _CompanyCode | $projection.CompanyCode = _CompanyCode.CompanyCode |
| [0..1] | I_ControllingArea | _ControllingArea | $projection.ControllingArea = _ControllingArea.ControllingArea |
| [0..1] | I_ProfitCenter | _ProfitCenter | $projection.ControllingArea = _ProfitCenter.ControllingArea and $projection.ProfitCenter = _ProfitCenter.ProfitCenter and $projection.PlannedStartDate <= _ProfitCenter.ValidityEndDate and $projection.PlannedStartDate >= _ProfitCenter.ValidityStartDate |
| [0..*] | I_ProfitCenter | _ProfitCenter2 | $projection.ControllingArea = _ProfitCenter2.ControllingArea and $projection.ProfitCenter = _ProfitCenter2.ProfitCenter |
| [0..1] | I_AvailabilityCtrlProfile | _AvailabilityCtrlProfile | $projection.AvailabilityControlProfile = _AvailabilityCtrlProfile.AvailabilityControlProfile |
| [0..1] | I_EntProjectSettlementType | _EntProjectSettlementType | $projection.EntProjectSettlementType = _EntProjectSettlementType.EntProjectSettlementType |
Annotations (15)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IPROJECTBSCDATA | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| Analytics.dataCategory | #DIMENSION | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| EndUserText.label | Project Basic Data | view | |
| VDM.viewType | #BASIC | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AbapCatalog.preserveKey | true | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| Metadata.allowExtensions | true | view | |
| ObjectModel.compositionRoot | true | view | |
| ObjectModel.representativeKey | ProjectInternalID | view | |
| ObjectModel.usageType.serviceQuality | #B | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view |
Fields (34)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProjectInternalID | |||
| ProjectExternalID | proj | pspid_edit | ||
| Project | proj | pspid | ||
| ProjectDescription | ||||
| ProjectProfileCode | proj | profl | ||
| CompanyCode | ||||
| ControllingArea | ||||
| FunctionalArea | ||||
| ProfitCenter | proj | prctr | ||
| ProjectObject | proj | objnr | ||
| PlannedStartDate | proj | plfaz | ||
| PlannedEndDate | proj | plsez | ||
| AvailabilityControlProfile | proj | avc_profile | ||
| AvailabilityControlIsActive | proj | avc_active | ||
| JointVenture | proj | vname | ||
| JointVentureCostRecoveryCode | proj | recid | ||
| JointVentureEquityType | proj | etype | ||
| JntVntrProjectType | proj | otype | ||
| JntIntrstBillgClass | proj | jibcl | ||
| JntIntrstBillgSubClass | proj | jibsa | ||
| Location | proj | stort | ||
| ProjectCurrency | proj | cpcurr | ||
| TaxJurisdiction | proj | txjcd | ||
| EntProjectSettlementType | proj | settlementtype | ||
| EntProjHasProjectStockEnabled | proj | besta | ||
| Plant | proj | werks | ||
| _WBSElement | _WBSElement | |||
| _CompanyCode | _CompanyCode | |||
| _ControllingArea | _ControllingArea | |||
| _ProfitCenter | _ProfitCenter | |||
| _ProfitCenter2 | _ProfitCenter2 | |||
| _AvailabilityCtrlProfile | _AvailabilityCtrlProfile | |||
| _EntProjectSettlementType | _EntProjectSettlementType | |||
| _RootWBSElement | _RootWBSElement |
@AbapCatalog: {
sqlViewName: 'IPROJECTBSCDATA',
compiler.compareFilter: true
}
@Analytics: { dataCategory: #DIMENSION }
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Project Basic Data'
@VDM.viewType: #BASIC
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.preserveKey:true
@Metadata.ignorePropagatedAnnotations:true
@Metadata.allowExtensions: true
@ObjectModel: {
compositionRoot: true,
//Keys
representativeKey: 'ProjectInternalID',
semanticKey: [ 'Project' ],
usageType: {
serviceQuality: #B,
sizeCategory : #L,
dataClass: #TRANSACTIONAL
},
supportedCapabilities: [ #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET, #ANALYTICAL_DIMENSION ]
}
define view I_ProjectBasicData
as select from proj
association [0..1] to I_WBSElementBasicData as _RootWBSElement on $projection.ProjectInternalID = _RootWBSElement.ProjectInternalID
and $projection.ProjectExternalID = _RootWBSElement.WBSElementExternalID
//association [0..1] to prps as _RootWBSElement on $projection.ProjectInternalID = _RootWBSElement.psphi
// and _RootWBSElement.stufe = 1
association [0..*] to I_WBSElementBasicData as _WBSElement on $projection.ProjectInternalID = _WBSElement.ProjectInternalID
association [0..1] to I_CompanyCode as _CompanyCode on $projection.CompanyCode = _CompanyCode.CompanyCode
association [0..1] to I_ControllingArea as _ControllingArea on $projection.ControllingArea = _ControllingArea.ControllingArea
//association [0..1] to I_FunctionalArea as _FunctionalArea on $projection.FunctionalArea = _FunctionalArea.FunctionalArea
association [0..1] to I_ProfitCenter as _ProfitCenter on $projection.ControllingArea = _ProfitCenter.ControllingArea
and $projection.ProfitCenter = _ProfitCenter.ProfitCenter
and $projection.PlannedStartDate <= _ProfitCenter.ValidityEndDate
and $projection.PlannedStartDate >= _ProfitCenter.ValidityStartDate
association [0..*] to I_ProfitCenter as _ProfitCenter2 on $projection.ControllingArea = _ProfitCenter2.ControllingArea
and $projection.ProfitCenter = _ProfitCenter2.ProfitCenter
association [0..1] to I_AvailabilityCtrlProfile as _AvailabilityCtrlProfile on $projection.AvailabilityControlProfile = _AvailabilityCtrlProfile.AvailabilityControlProfile
//Hierarchy settlement changes
association [0..1] to I_EntProjectSettlementType as _EntProjectSettlementType on $projection.EntProjectSettlementType = _EntProjectSettlementType.EntProjectSettlementType
{
//Entity description fields
key cast ( proj.pspnr as ps_s4_proj_pspnr preserving type ) as ProjectInternalID,
@ObjectModel.text.element: 'ProjectDescription'
proj.pspid_edit as ProjectExternalID,
proj.pspid as Project,
cast ( proj.post1 as ps_s4_proj_post1_v1 preserving type) as ProjectDescription,
proj.profl as ProjectProfileCode,
//Organisational fields
@ObjectModel.foreignKey.association: '_CompanyCode'
cast ( proj.vbukr as bukrs preserving type ) as CompanyCode,
@ObjectModel.foreignKey.association: '_ControllingArea'
cast ( proj.vkokr as kokrs preserving type ) as ControllingArea,
//@ObjectModel.foreignKey.association: '_FunctionalArea'
cast ( proj.func_area as fkber preserving type ) as FunctionalArea,
@ObjectModel.foreignKey.association: '_ProfitCenter2'
proj.prctr as ProfitCenter,
//Dimensions
proj.objnr as ProjectObject,
//Dates
@Semantics.calendar.dayOfMonth: true
proj.plfaz as PlannedStartDate,
@Semantics.calendar.dayOfMonth: true
proj.plsez as PlannedEndDate,
proj.avc_profile as AvailabilityControlProfile,
proj.avc_active as AvailabilityControlIsActive,
//Joint venture fields
proj.vname as JointVenture,
proj.recid as JointVentureCostRecoveryCode,
proj.etype as JointVentureEquityType,
proj.otype as JntVntrProjectType,
proj.jibcl as JntIntrstBillgClass,
proj.jibsa as JntIntrstBillgSubClass,
proj.stort as Location,
proj.cpcurr as ProjectCurrency,
// Tax Jurisdiction Code
proj.txjcd as TaxJurisdiction,
//Hierarchy settlement changes
proj.settlementtype as EntProjectSettlementType,
// Enabling Project stock
proj.besta as EntProjHasProjectStockEnabled,
@Consumption.hidden: true
proj.werks as Plant,
//Associations
@ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
_WBSElement,
_CompanyCode,
_ControllingArea,
//_FunctionalArea,
//@Consumption.filter.businessDate.at : true
_ProfitCenter,
@Consumption.hidden: true
_ProfitCenter2,
_AvailabilityCtrlProfile,
//Hierarchy settlement changes
_EntProjectSettlementType,
@Consumption.hidden: true
_RootWBSElement
}
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