P_FSTMT_HRY_NODE
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)
Annotations (10)
| Name | Value | Level | Field |
|---|---|---|---|
| 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)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| 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":""
}
}*/
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA