P_FSTMT_HRY_NODE

DDL: P_FSTMT_HRY_NODE SQL: PFSTMT_HR_NODE Type: view BASIC

P_FSTMT_HRY_NODE is a Basic CDS View in SAP S/4HANA. It reads from 6 data sources and exposes 30 fields with key fields hryid, hryver, nodecls, childnode, hrynode.

Data Sources (6)

SourceAliasJoin Type
hrrp_node node from
hrrp_node node inner
hrrp_node node union
hrrp_node parnode inner
hrrp_node parnode inner
hrrp_node root union

Annotations (10)

NameValueLevelField
AbapCatalog.sqlViewName PFSTMT_HR_NODE view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
ObjectModel.usageType.dataClass #CUSTOMIZING view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #S view
VDM.private true view
VDM.viewType #BASIC view
ClientHandling.algorithm #SESSION_VARIABLE view

Fields (30)

KeyFieldSource TableSource FieldDescription
KEY hryid hrrp_node hryid
KEY hryver hrrp_node hryver
KEY nodecls hrrp_node nodecls
KEY childnode hrrp_node hrynode
KEY hrynode hrrp_node parnode
KEY hryvalto hrrp_node hryvalto
hryvalfrom hrrp_node hryvalfrom
parnode hrrp_node parnode
hryseqnbr hrrp_node hryseqnbr
hryid
KEY hryver hrrp_node hryver
KEY nodecls hrrp_node nodecls
KEY childnode hrrp_node nodevalue
KEY hrynode hrrp_node hrynode
KEY hryvalto hrrp_node hryvalto
hryvalfrom hrrp_node hryvalfrom
nodetype hrrp_node nodetype
parnode hrrp_node parnode
hryseqnbr hrrp_node hryseqnbr
hryid
KEY hryver hrrp_node hryver
KEY nodecls hrrp_node nodecls
KEY childnode hrrp_node hrynode
KEY hrynode hrrp_node parnode
KEY hryvalto hrrp_node hryvalto
hryvalfrom hrrp_node hryvalfrom
nodetype hrrp_node nodetype
parnode
hryseqnbr hrrp_node hryseqnbr
hrylevel hrrp_node hrylevel
@AbapCatalog.sqlViewName: 'PFSTMT_HR_NODE'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@ObjectModel.usageType : { dataClass:      #CUSTOMIZING,
                           serviceQuality: #D,
                            sizeCategory:  #S }
@VDM.private: true
@VDM.viewType: #BASIC
@ClientHandling.algorithm: #SESSION_VARIABLE

define view P_FSTMT_HRY_NODE 
 
  as select from        hrrp_node as node
       inner join hrrp_node as parnode
                 on node.hryid        = parnode.hryid    and
                    node.hryver       = parnode.hryver   and
                    node.parnode      = parnode.hrynode  and
                    node.hryvalto     = parnode.hryvalto and
                    parnode.nodecls   = ''               and
                    parnode.nodetype  = 'N'
     left outer to one join hrrp_node as exclnode
                 on node.hryid        = exclnode.hryid    and
                    node.hryver       = exclnode.hryver   and
                    node.parnode      = exclnode.hrynode  and
                    node.hryvalto     = exclnode.hryvalto and
                    exclnode.nodecls  = ''                and
                    ( exclnode.nodetype  = 'A' or
                      exclnode.nodetype  = 'K' or
                      exclnode.nodetype  = 'M' or
                      exclnode.nodetype  = 'B' or 
                      exclnode.nodetype  = 'J' or 
                      exclnode.nodetype  = 'V' )   
                                                          
{
  key node.hryid,
  key node.hryver,
  key node.nodecls,
  key node.hrynode as childnode,
  key node.parnode as hrynode,
  key node.hryvalto,
      node.hryvalfrom,
      case  node.parnode
        when exclnode.hrynode
        then ''
        else node.nodetype end as nodetype,
      parnode.parnode as parnode,  
      parnode.hryseqnbr,
      parnode.hrylevel  
}
   where node.nodetype = 'D'     // nodetype '' => exclude entries from left outer join

 
// union AKMBJV         

  union select from        hrrp_node as node
     inner join hrrp_node as parnode
                 on node.hryid        = parnode.hryid    and
                    node.hryver       = parnode.hryver   and
                    node.parnode      = parnode.hrynode  and
                    node.hryvalto     = parnode.hryvalto and
                    parnode.nodecls   = ''               and
                    parnode.nodetype  = 'N'
{
  key node.hryid,
  key node.hryver,
  key node.nodecls,
  key node.nodevalue as childnode,
  key parnode.hrynode as hrynode,
  key node.hryvalto,
      node.hryvalfrom,
      node.nodetype,
      parnode.parnode as parnode,
      parnode.hryseqnbr,
      parnode.hrylevel  
}
   where ( node.nodetype = 'A' or 
           node.nodetype = 'K' or 
           node.nodetype = 'M' or 
           node.nodetype = 'B' or 
           node.nodetype = 'J' or 
           node.nodetype = 'V' ) 
// union N-Entries belonging to root node ( like 00NOTASSGND )         

  union select from        hrrp_node as root
     inner join hrrp_node as node
                 on root.hryid     = node.hryid    and
                    root.hryver    = node.hryver   and
                    root.hrynode   = node.parnode  and
                    root.hryvalto  = node.hryvalto and
                    node.nodecls      = ''         and
                    node.nodetype     = 'N'
{
  key node.hryid,
  key node.hryver,
  key node.nodecls,
  key node.hrynode as childnode,
  key node.parnode as hrynode,
  key node.hryvalto,
      node.hryvalfrom,
      node.nodetype,
      '' as parnode,
      root.hryseqnbr,
      root.hrylevel  
}
   where root.nodetype = 'R' 
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"HRRP_NODE"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/