I_BudgetAccountHierarchyNode

DDL: I_BUDGETACCOUNTHIERARCHYNODE SQL: IPSMS4CBDACHN Type: view BASIC

Budget Account Hierarchy Node

I_BudgetAccountHierarchyNode is a Basic CDS View that provides data about "Budget Account Hierarchy Node" in SAP S/4HANA. It reads from 2 data sources (hrrp_node, I_BudgetAccountHierarchy) and exposes 15 fields with key fields BudgetAccountHierarchy, HierarchyNode, ValidityEndDate. It has 4 associations to related views.

Data Sources (2)

SourceAliasJoin Type
hrrp_node hrrp_node from
I_BudgetAccountHierarchy I_BudgetAccountHierarchy inner

Associations (4)

CardinalityTargetAliasCondition
[0..*] I_BudgetAccountHierarchyNodeT _Text $projection.BudgetAccountHierarchy = _Text.BudgetAccountHierarchy and $projection.HierarchyNode = _Text.HierarchyNode and $projection.PubSecBudgetAccount = ''
[0..1] I_BudgetAccountInChtAccts _BudgetAccountInChtAccts $projection.ChartOfAccounts = _BudgetAccountInChtAccts.ChartOfAccounts and $projection.PubSecBudgetAccount = _BudgetAccountInChtAccts.PubSecBudgetAccount
[1..1] I_BudgetAccountHierarchy _Hierarchy $projection.BudgetAccountHierarchy = _Hierarchy.BudgetAccountHierarchy and $projection.ValidityEndDate = _Hierarchy.ValidityEndDate
[0..1] I_ChartOfAccounts _ChartOfAccounts $projection.ChartOfAccounts = _ChartOfAccounts.ChartOfAccounts

Annotations (17)

NameValueLevelField
AbapCatalog.sqlViewName IPSMS4CBDACHN view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
EndUserText.label Budget Account Hierarchy Node view
VDM.viewType #BASIC view
Hierarchy.parentChild.recurse.parent ParentNode view
Hierarchy.parentChild.recurse.child HierarchyNode view
Hierarchy.parentChild.siblingsOrder.by SequenceNumber view
Hierarchy.parentChild.siblingsOrder.direction ASC view
Hierarchy.parentChild.directory _Hierarchy view
Analytics.dataExtraction.enabled true view
ObjectModel.dataCategory #HIERARCHY view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality #A view
ObjectModel.usageType.sizeCategory #XL view

Fields (15)

KeyFieldSource TableSource FieldDescription
KEY BudgetAccountHierarchy
KEY HierarchyNode hrrp_node hrynode
KEY ValidityEndDate
ParentNode hrrp_node parnode
HierarchyVersion hrrp_node hryver
ValidityStartDate
ChartOfAccounts
SequenceNumber
HierarchyNodeSequence hrrp_node hryseqnbr
HierarchyNodeLevel hrrp_node hrylevel
NodeType hrrp_node nodetype
_Text _Text
_BudgetAccountInChtAccts _BudgetAccountInChtAccts
_ChartOfAccounts _ChartOfAccounts
_Hierarchy _Hierarchy
@AbapCatalog.sqlViewName: 'IPSMS4CBDACHN'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@EndUserText.label: 'Budget Account Hierarchy Node'

@VDM.viewType: #BASIC
@Hierarchy.parentChild:
{ recurse:          {   parent: 'ParentNode',   child:  'HierarchyNode'   },
  siblingsOrder:    {   by: 'SequenceNumber',    direction: 'ASC'   },
  directory:        '_Hierarchy'
  }
@Analytics: { dataExtraction: {enabled:true} }
@ObjectModel: {
     dataCategory: #HIERARCHY,
     usageType: {
         dataClass: #MASTER,
         serviceQuality: #A,
         sizeCategory: #XL
     }
}

define view I_BudgetAccountHierarchyNode
  as select from hrrp_node
    inner join   I_BudgetAccountHierarchy on  I_BudgetAccountHierarchy.BudgetAccountHierarchy = hrrp_node.hryid
                                          and I_BudgetAccountHierarchy.ValidityEndDate        = hrrp_node.hryvalto

  association [0..*] to I_BudgetAccountHierarchyNodeT as _Text                    on  $projection.BudgetAccountHierarchy = _Text.BudgetAccountHierarchy
                                                                                  and $projection.HierarchyNode          = _Text.HierarchyNode
                                                                                  and $projection.PubSecBudgetAccount    = '' // just to show that this association is only to be followed if BudgetAccounts is blank


  association [0..1] to I_BudgetAccountInChtAccts     as _BudgetAccountInChtAccts on  $projection.ChartOfAccounts     = _BudgetAccountInChtAccts.ChartOfAccounts
                                                                                  and $projection.PubSecBudgetAccount = _BudgetAccountInChtAccts.PubSecBudgetAccount

  association [1..1] to I_BudgetAccountHierarchy      as _Hierarchy               on  $projection.BudgetAccountHierarchy = _Hierarchy.BudgetAccountHierarchy
                                                                                  and $projection.ValidityEndDate        = _Hierarchy.ValidityEndDate

  association [0..1] to I_ChartOfAccounts             as _ChartOfAccounts         on  $projection.ChartOfAccounts = _ChartOfAccounts.ChartOfAccounts

{
      @Consumption.filter: {mandatory : true, selectionType : #SINGLE, multipleSelections : false }
      @ObjectModel.foreignKey.association: '_Hierarchy'
  key cast( hrrp_node.hryid as psm_hryid_budgetaccount preserving type) as BudgetAccountHierarchy,
      @ObjectModel.text.association: '_Text'
  key hrrp_node.hrynode                                                 as HierarchyNode,
      @Consumption.filter: {mandatory : true, selectionType : #SINGLE, multipleSelections : false }
      @Semantics.businessDate.to: true
  key cast( hrrp_node.hryvalto as fis_datbi preserving type )           as ValidityEndDate,
      hrrp_node.parnode                                                 as ParentNode,
      hrrp_node.hryver                                                  as HierarchyVersion,
      @Semantics.businessDate.from: true
      cast( hrrp_node.hryvalfrom as fis_datab preserving type)          as ValidityStartDate,
      @ObjectModel.foreignKey.association: '_BudgetAccountInChtAccts'
      cast ( case nodetype
        when 'L' then  hrrp_node.nodevalue
        else  ''
      end as psm_bdgt_account )                                         as PubSecBudgetAccount,
      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_ChartOfAccountsStdVH',
                     element: 'ChartOfAccounts' }
        }]
      @ObjectModel.foreignKey.association: '_ChartOfAccounts'
      cast( hrrp_node.nodecls as fis_ktopl )                            as ChartOfAccounts,
      concat( hrrp_node.hryseqnbr, hrrp_node.hrynode )                  as SequenceNumber,
      hrrp_node.hryseqnbr                                               as HierarchyNodeSequence,
      hrrp_node.hrylevel                                                as HierarchyNodeLevel,
      hrrp_node.nodetype                                                as NodeType,

      _Text,
      _BudgetAccountInChtAccts,
      _ChartOfAccounts,
      _Hierarchy

}
where
     nodetype = 'L'
  or nodetype = 'N'
  or nodetype = 'R'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUDGETACCOUNTHIERARCHY",
"HRRP_NODE"
],
"ASSOCIATED":
[
"I_BUDGETACCOUNTHIERARCHY",
"I_BUDGETACCOUNTHIERARCHYNODET",
"I_BUDGETACCOUNTINCHTACCTS",
"I_CHARTOFACCOUNTS"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/