I_BUDGETACCOUNTHIERARCHYNODE

CDS View

Budget Account Hierarchy Node

I_BUDGETACCOUNTHIERARCHYNODE is a CDS View in S/4HANA. Budget Account Hierarchy Node. 1 CDS views read from this table.

CDS Views using this table (1)

ViewTypeJoinVDMDescription
A_BudgetAccountCoreHierNode view from COMPOSITE Budget Account Hierarchy Node
@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'