I_CnsldtnPostingLevelHierNode

DDL: I_CNSLDTNPOSTINGLEVELHIERNODE Type: view BASIC

Consolidation Posting Level - HierNode

I_CnsldtnPostingLevelHierNode is a Basic CDS View that provides data about "Consolidation Posting Level - HierNode" in SAP S/4HANA. It reads from 2 data sources (hrrp_directory, hrrp_node) and exposes 9 fields with key fields ConsolidationPostgLevelHier, HierarchyNode. It has 3 associations to related views.

Data Sources (2)

SourceAliasJoin Type
hrrp_directory _PostingLevelHierDir inner
hrrp_node _PostingLevelHierNode from

Associations (3)

CardinalityTargetAliasCondition
[0..*] I_CnsldtnPostingLevelHierNodeT _Text $projection.ConsolidationPostgLevelHier = _Text.ConsolidationPostgLevelHier and $projection.HierarchyNode = _Text.HierarchyNode and ( $projection.NodeType = 'R' or $projection.NodeType = 'N' )
[1] I_CnsldtnPostingLevelHierDir _Hierarchy $projection.ConsolidationPostgLevelHier = _Hierarchy.ConsolidationPostgLevelHier
[0..1] I_CnsldtnPostingLevel _PostingLevel $projection.PostingLevel = _PostingLevel.PostingLevel

Annotations (18)

NameValueLevelField
AbapCatalog.sqlViewName ICCPLEVLHN view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
hierarchy.parentChild.recurse.parent ParentNode view
hierarchy.parentChild.recurse.child HierarchyNode view
hierarchy.parentChild.siblingsOrder.by HierarchyNodeSequence view
hierarchy.parentChild.siblingsOrder.direction #ASC view
hierarchy.parentChild.directory _Hierarchy view
ClientHandling.algorithm #SESSION_VARIABLE view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality #A view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.dataCategory #HIERARCHY view
ObjectModel.representativeKey HierarchyNode view
VDM.viewType #BASIC view
EndUserText.label Consolidation Posting Level - HierNode view

Fields (9)

KeyFieldSource TableSource FieldDescription
KEY ConsolidationPostgLevelHier hrrp_node hryid
KEY HierarchyNode hrrp_node hrynode
ParentNode hrrp_node parnode
HierarchyNodeSequence hrrp_node hryseqnbr
HierarchyNodeLevel hrrp_node hrylevel
NodeType hrrp_node nodetype
_Text _Text
_PostingLevel _PostingLevel
_Hierarchy _Hierarchy
@AbapCatalog:{
  sqlViewName: 'ICCPLEVLHN',
  compiler.compareFilter: true,
  preserveKey:true
  }
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@hierarchy.parentChild: {
  recurse:          { parent:    'ParentNode',
                      child:     'HierarchyNode'   },
  siblingsOrder:    { by:        'HierarchyNodeSequence',
                      direction: #ASC   },
  directory:        '_Hierarchy'
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata:{
  ignorePropagatedAnnotations: true
  }
@ObjectModel: {
  usageType: {
    dataClass: #MASTER,
    serviceQuality: #A,
    sizeCategory: #XL},
  dataCategory: #HIERARCHY,
  representativeKey: 'HierarchyNode'
}
@VDM.viewType: #BASIC
@EndUserText.label: 'Consolidation Posting Level - HierNode'

define view I_CnsldtnPostingLevelHierNode
  as select from hrrp_node      as _PostingLevelHierNode

    inner join   hrrp_directory as _PostingLevelHierDir on  _PostingLevelHierDir.hryid    = _PostingLevelHierNode.hryid
                                                        and _PostingLevelHierDir.hryver   = _PostingLevelHierNode.hryver
                                                        and _PostingLevelHierDir.hryvalto = _PostingLevelHierNode.hryvalto

  association [0..*] to I_CnsldtnPostingLevelHierNodeT as _Text         on  $projection.ConsolidationPostgLevelHier = _Text.ConsolidationPostgLevelHier
                                                                        and $projection.HierarchyNode               = _Text.HierarchyNode
                                                                        and (
                                                                           $projection.NodeType                     = 'R'
                                                                           or $projection.NodeType                  = 'N'
                                                                         )

  association [1]    to I_CnsldtnPostingLevelHierDir   as _Hierarchy    on  $projection.ConsolidationPostgLevelHier = _Hierarchy.ConsolidationPostgLevelHier

  association [0..1] to I_CnsldtnPostingLevel          as _PostingLevel on  $projection.PostingLevel = _PostingLevel.PostingLevel

{
      @Consumption.filter: {mandatory : true, selectionType : #SINGLE, multipleSelections : false }
      @ObjectModel.foreignKey.association: '_Hierarchy'
  key _PostingLevelHierNode.hryid     as ConsolidationPostgLevelHier, // HL cast to fincs_hryid would be incompatible to A-View -> no fix!


      @ObjectModel.text.association: '_Text'
  key _PostingLevelHierNode.hrynode   as HierarchyNode,

      _PostingLevelHierNode.parnode   as ParentNode,

      @ObjectModel.foreignKey.association: '_PostingLevel'
      cast(
        case
          when _PostingLevelHierNode.nodetype = 'L' and _PostingLevelHierNode.nodevalue =  '#' then ''
          when _PostingLevelHierNode.nodetype = 'L' and _PostingLevelHierNode.nodevalue <> '#' then left( _PostingLevelHierNode.nodevalue, 2 )
          else ''
        end as fc_plevl)              as PostingLevel,

      _PostingLevelHierNode.hryseqnbr as HierarchyNodeSequence,
      _PostingLevelHierNode.hrylevel  as HierarchyNodeLevel,
      _PostingLevelHierNode.nodetype  as NodeType,

      // associations

      _Text,
      _PostingLevel,
      _Hierarchy
}
where
  // TODO: adjust where statement on node type

          _PostingLevelHierDir.hrytyp      =  'CS21'
  and     _PostingLevelHierNode.nodetype   <> 'D'
  and     _PostingLevelHierNode.nodetype   <> 'B'
  and     _PostingLevelHierNode.nodetype   <> 'J'
  and     _PostingLevelHierNode.nodetype   <> 'V'
  and(
    (
          _PostingLevelHierNode.hryvalfrom =  '19000101'
      and _PostingLevelHierNode.hryvalto   =  '99991231'
    )
    or(
          _PostingLevelHierNode.hryvalfrom =  '00000000'
      and _PostingLevelHierNode.hryvalto   =  '00000000'
    )
  )
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"HRRP_DIRECTORY",
"HRRP_NODE"
],
"ASSOCIATED":
[
"I_CNSLDTNPOSTINGLEVEL",
"I_CNSLDTNPOSTINGLEVELHIERDIR",
"I_CNSLDTNPOSTINGLEVELHIERNODET"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/