P_BillingElement is a Composite CDS View that provides data about "Billing Element" in SAP S/4HANA. It reads from 2 data sources (I_ProjectBasicData, I_WBSElementBasicData) and exposes 5 fields with key fields ProjectInternalID, WBSElementInternalID, CompanyCode. It has 3 associations to related views. Part of development package FINS_COPA_REPORTING.
@AbapCatalog.viewEnhancementCategory: [#NONE]@AccessControl.authorizationCheck: #NOT_REQUIRED@EndUserText.label: 'Billing Element'
@Metadata.ignorePropagatedAnnotations: true@VDM.private:true@VDM.viewType: #COMPOSITEdefineviewentity P_BillingElement
asselectfrom I_ProjectBasicData as Proj
innerjoin I_WBSElementBasicData as WBS
on WBS.ProjectInternalID = Proj.ProjectInternalID
and Proj.ProjectProfileCode = 'YP05'
// and WBS.CompanyCode = Proj.CompanyCode
association [1..1] to P_WBSHierarchyWithoutRootNode as _Hier on WBS.WBSElementInternalID = _Hier.WBSElementInternalID
and WBS.ProjectInternalID = _Hier.ProjectInternalID
and WBS.CompanyCode = _Hier.CompanyCode
association [1..1] to I_WBSElementBasicData as _WBSElement on $projection.WBSElementInternalID = _WBSElement.WBSElementInternalID
association [1..1] to I_WBSElementBasicData as _BillingWBSElement on $projection.BillingWBSElementInternalID = _BillingWBSElement.WBSElementInternalID
{
key WBS.ProjectInternalID,
key WBS.WBSElementInternalID,
keycast ( WBS.CompanyCode as ps_vbukr preserving type ) as CompanyCode,
// key Proj.CompanyCode,
casewhen WBS.WBSElementIsBillingElement = 'X'
then WBS.WBSElementInternalID
when _Hier.WBSElementIsBillingElement = 'X'
then _Hier.WBSElementParentInternalID
when _Hier._Parent.WBSElementIsBillingElement = 'X'
then _Hier._Parent.WBSElementParentInternalID
when _Hier._Parent._Parent.WBSElementIsBillingElement = 'X'
then _Hier._Parent._Parent.WBSElementParentInternalID
when _Hier._Parent._Parent._Parent.WBSElementIsBillingElement = 'X'
then _Hier._Parent._Parent._Parent.WBSElementParentInternalID
when _Hier._Parent._Parent._Parent._Parent.WBSElementIsBillingElement = 'X'
then _Hier._Parent._Parent._Parent._Parent.WBSElementParentInternalID
when _Hier._Parent._Parent._Parent._Parent._Parent.WBSElementIsBillingElement = 'X'
then _Hier._Parent._Parent._Parent._Parent._Parent.WBSElementParentInternalID
when _Hier._Parent._Parent._Parent._Parent._Parent._Parent.WBSElementIsBillingElement = 'X'
then _Hier._Parent._Parent._Parent._Parent._Parent._Parent.WBSElementParentInternalID
when _Hier._Parent._Parent._Parent._Parent._Parent._Parent._Parent.WBSElementIsBillingElement = 'X'
then _Hier._Parent._Parent._Parent._Parent._Parent._Parent._Parent.WBSElementParentInternalID
when _Hier._Parent._Parent._Parent._Parent._Parent._Parent._Parent._Parent.WBSElementIsBillingElement = 'X'
then _Hier._Parent._Parent._Parent._Parent._Parent._Parent._Parent._Parent.WBSElementParentInternalID
when _Hier._Parent._Parent._Parent._Parent._Parent._Parent._Parent._Parent._Parent.WBSElementIsBillingElement = 'X'
then _Hier._Parent._Parent._Parent._Parent._Parent._Parent._Parent._Parent._Parent.WBSElementParentInternalID
elsenullendas BillingWBSElementInternalID,
_WBSElement,
_BillingWBSElement
}
where Proj.ProjectProfileCode = 'YP05'