I_WBSElementByExternalID
WBSElement By ExternalID
I_WBSElementByExternalID is a Basic CDS View (Dimension) that provides data about "WBSElement By ExternalID" in SAP S/4HANA. It reads from 2 data sources (prps, prte) and exposes 32 fields with key field WBSElementExternalID. It has 12 associations to related views. It is exposed through 1 OData service (UI_BILLINGDOCUMENT_MANAGE). Part of development package VDM_PS_ST.
Associations (12)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_ProjectBasicData | _Project | $projection.ProjectInternalID = _Project.ProjectInternalID |
| [0..1] | I_CompanyCode | _CompanyCode | $projection.CompanyCode = _CompanyCode.CompanyCode |
| [0..1] | I_ControllingArea | _ControllingArea | $projection.ControllingArea = _ControllingArea.ControllingArea |
| [0..1] | I_FunctionalArea | _FunctionalArea | $projection.FunctionalArea = _FunctionalArea.FunctionalArea |
| [0..*] | I_ProfitCenter | _ProfitCenter | $projection.ControllingArea = _ProfitCenter.ControllingArea and $projection.ProfitCenter = _ProfitCenter.ProfitCenter |
| [0..*] | I_CostCenter | _ResponsibleCostCenter | $projection.ControllingArea = _ResponsibleCostCenter.ControllingArea and $projection.ResponsibleCostCenter = _ResponsibleCostCenter.CostCenter |
| [0..1] | I_Plant | _Plant | $projection.Plant = _Plant.Plant |
| [0..1] | I_FactoryCalendar | _FactoryCalendar | $projection.FactoryCalendar = _FactoryCalendar.FactoryCalendar |
| [0..*] | I_CostCenter | _CostCenter | $projection.ControllingArea = _CostCenter.ControllingArea and $projection.CostCenter = _CostCenter.CostCenter |
| [0..1] | I_Projecttype | _ProjectType | $projection.ProjectType = _ProjectType.ProjectType |
| [0..*] | I_Projecttypetext | _ProjectTypeText | $projection.ProjectType = _ProjectTypeText.ProjectType |
| [0..*] | I_FinWBSElementHierarchyNode | _FinWBSElementHierarchyNode | $projection.WBSElementExternalID = _FinWBSElementHierarchyNode.WBSElementExternalID |
Annotations (13)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IWBSELEBYEXTKEY | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| Metadata.allowExtensions | true | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| Analytics.dataCategory | #DIMENSION | view | |
| EndUserText.label | WBSElement By ExternalID | view | |
| VDM.viewType | #BASIC | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.representativeKey | WBSElementExternalID | view | |
| ObjectModel.usageType.serviceQuality | #B | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view |
OData Services (1)
| Service | Binding | Version | Contract | Release |
|---|---|---|---|---|
| UI_BILLINGDOCUMENT_MANAGE | UI_BILLINGDOCUMENT_MANAGE | V4 | C1 | NOT_RELEASED |
Fields (32)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | WBSElementExternalID | prps | posid_edit | |
| WBSElementInternalID | ||||
| WBSDescription | ||||
| CompanyCode | ||||
| ControllingArea | ||||
| FunctionalArea | ||||
| ProfitCenter | prps | prctr | ||
| ResponsibleCostCenter | ||||
| Plant | prps | werks | ||
| FactoryCalendar | ||||
| CostingSheet | prps | kalsm | ||
| CostCenter | ||||
| ProjectInternalID | ||||
| WBSElementIsBillingElement | ||||
| WBSElementObject | prps | objnr | ||
| InvestmentProfile | prps | imprf | ||
| WBSIsStatisticalWBSElement | prps | xstat | ||
| ProjectType | prps | prart | ||
| JntIntrstBillgClass | prps | jibcl | ||
| JntIntrstBillgSubClass | prps | jibsa | ||
| _Project | _Project | |||
| _CompanyCode | _CompanyCode | |||
| _ControllingArea | _ControllingArea | |||
| _FunctionalArea | _FunctionalArea | |||
| _ProfitCenter | _ProfitCenter | |||
| _ResponsibleCostCenter | _ResponsibleCostCenter | |||
| _Plant | _Plant | |||
| _FactoryCalendar | _FactoryCalendar | |||
| _CostCenter | _CostCenter | |||
| _ProjectType | _ProjectType | |||
| _ProjectTypeText | _ProjectTypeText | |||
| _FinWBSElementHierarchyNode | _FinWBSElementHierarchyNode |
@AbapCatalog.sqlViewName: 'IWBSELEBYEXTKEY'
@AbapCatalog.compiler.compareFilter: true
@Metadata.allowExtensions:true
@Metadata.ignorePropagatedAnnotations:true
@AccessControl.authorizationCheck: #CHECK
@Analytics: { dataCategory: #DIMENSION }
@EndUserText.label: 'WBSElement By ExternalID'
@VDM.viewType: #BASIC
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
//Keys
// semanticKey: [ 'WBSElement' ],
representativeKey: 'WBSElementExternalID',
usageType: {
serviceQuality: #B,
sizeCategory : #XL,
dataClass: #TRANSACTIONAL
},
supportedCapabilities: [ #ANALYTICAL_DIMENSION ]
}
//Note : To be used only in Analytical views(cube or consumption views), where Foreign-Key associations
// are needed on WBSElementExternalID. For all other cases and associations, use I_WBSElementBasicData.
define view I_WBSElementByExternalID
as select from prps
left outer join prte on prps.pspnr = prte.posnr
and prps.psphi = prte.psphi
association [1..1] to I_ProjectBasicData as _Project on $projection.ProjectInternalID = _Project.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..*] to I_ProfitCenter as _ProfitCenter on $projection.ControllingArea = _ProfitCenter.ControllingArea
and $projection.ProfitCenter = _ProfitCenter.ProfitCenter
association [0..*] to I_CostCenter as _ResponsibleCostCenter on $projection.ControllingArea = _ResponsibleCostCenter.ControllingArea
and $projection.ResponsibleCostCenter = _ResponsibleCostCenter.CostCenter
association [0..1] to I_Plant as _Plant on $projection.Plant = _Plant.Plant
association [0..1] to I_FactoryCalendar as _FactoryCalendar on $projection.FactoryCalendar = _FactoryCalendar.FactoryCalendar
// association [0..*] to I_CostingSheetProcedure as _CostingSheetProcedure on $projection.CostingSheet = _CostingSheetProcedure.CostingSheetProcedure
association [0..*] to I_CostCenter as _CostCenter on $projection.ControllingArea = _CostCenter.ControllingArea
and $projection.CostCenter = _CostCenter.CostCenter
association [0..1] to I_Projecttype as _ProjectType on $projection.ProjectType = _ProjectType.ProjectType
association [0..*] to I_Projecttypetext as _ProjectTypeText on $projection.ProjectType = _ProjectTypeText.ProjectType
association [0..*] to I_FinWBSElementHierarchyNode as _FinWBSElementHierarchyNode on $projection.WBSElementExternalID = _FinWBSElementHierarchyNode.WBSElementExternalID
{
@ObjectModel.text.element: 'WBSDescription'
@ObjectModel.hierarchy.association: '_FinWBSElementHierarchyNode'
key prps.posid_edit as WBSElementExternalID,
cast ( prps.pspnr as ps_s4_pspnr preserving type ) as WBSElementInternalID,
@Semantics.text: true
cast ( prps.post1 as ps_s4_post1 preserving type ) as WBSDescription,
//Organizational fields
//--[ GENERATED:012:GFBfhyK17jY4hilWz{vTHm
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_CompanyCodeStdVH',
element: 'CompanyCode' }
}]
// ]--GENERATED
@ObjectModel.foreignKey.association: '_CompanyCode'
cast ( prps.pbukr as bukrs preserving type ) as CompanyCode,
//--[ GENERATED:012:GFBfhyK17jY4hilWz{vTHm
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_ControllingArea',
element: 'ControllingArea' }
}]
// ]--GENERATED
@ObjectModel.foreignKey.association: '_ControllingArea'
cast ( prps.pkokr as ps_s4_kokrs preserving type ) as ControllingArea,
@ObjectModel.foreignKey.association: '_FunctionalArea'
cast ( prps.func_area as fkber preserving type ) as FunctionalArea,
//--[ GENERATED:012:GFBfhyK17jY4hilWz{vTHm
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_ProfitCenterStdVH',
element: 'ProfitCenter' },
additionalBinding: [{ localElement: 'ControllingArea',
element: 'ControllingArea' }]
}]
// ]--GENERATED
@ObjectModel.foreignKey.association: '_ProfitCenter'
prps.prctr as ProfitCenter,
//--[ GENERATED:012:GFBfhyK17jY4hilWz{vTHm
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_CostCenterStdVH',
element: 'CostCenter' },
additionalBinding: [{ localElement: 'ControllingArea',
element: 'ControllingArea' }]
}]
// ]--GENERATED
@ObjectModel.foreignKey.association: '_ResponsibleCostCenter'
cast ( prps.fkstl as ps_s4_fkstl preserving type ) as ResponsibleCostCenter,
@ObjectModel.foreignKey.association: '_Plant'
prps.werks as Plant,
@ObjectModel.foreignKey.association: '_FactoryCalendar'
cast ( prps.fabkl as stkal preserving type ) as FactoryCalendar,
// @ObjectModel.foreignKey.association: '_CostingSheetProcedure'
prps.kalsm as CostingSheet,
//--[ GENERATED:012:GFBfhyK17jY4hilWz{vTHm
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_CostCenterStdVH',
element: 'CostCenter' },
additionalBinding: [{ localElement: 'ControllingArea',
element: 'ControllingArea' }]
}]
// ]--GENERATED
@ObjectModel.foreignKey.association: '_CostCenter'
cast ( prps.kostl as ps_kostl preserving type ) as CostCenter,
//Dimensions
@ObjectModel.foreignKey.association: '_Project'
//cast ( prps.psphi as ps_psphi preserving type ) as ProjectInternalID,
cast ( prps.psphi as ps_s4_proj_pspnr preserving type ) as ProjectInternalID,
cast ( prps.fakkz as ps_fakkz preserving type ) as WBSElementIsBillingElement,
prps.objnr as WBSElementObject,
prps.imprf as InvestmentProfile,
prps.xstat as WBSIsStatisticalWBSElement,
@ObjectModel.foreignKey.association: '_ProjectType'
@ObjectModel.text.association: '_ProjectTypeText'
prps.prart as ProjectType,
prps.jibcl as JntIntrstBillgClass,
prps.jibsa as JntIntrstBillgSubClass,
//Associations
@ObjectModel.association.type: [ #TO_COMPOSITION_PARENT, #TO_COMPOSITION_ROOT ]
_Project,
_CompanyCode,
_ControllingArea,
_FunctionalArea,
@Consumption.filter.businessDate.at : true
_ProfitCenter,
_ResponsibleCostCenter,
_Plant,
_FactoryCalendar,
// _CostingSheetProcedure,
_CostCenter,
_ProjectType,
_ProjectTypeText,
_FinWBSElementHierarchyNode
}
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