I_ProdUnivHierarchyNodeBasic
Product Hierarchy Node
I_ProdUnivHierarchyNodeBasic is a Basic CDS View that provides data about "Product Hierarchy Node" in SAP S/4HANA. It reads from 2 data sources (hrrp_directory, hrrp_node) and exposes 12 fields with key fields ProdUnivHierarchy, HierarchyNode, ProdHierarchyValidityEndDate. It has 3 associations to related views. Part of development package VDM_MD_PRODUCT_HIERARCHY.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| hrrp_directory | dir | inner |
| hrrp_node | node | from |
Associations (3)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_ProdUnivHierarchyBasic | _ProductHierarchy | $projection.ProdUnivHierarchy = _ProductHierarchy.ProdUnivHierarchy and $projection.ProdHierarchyValidityEndDate = _ProductHierarchy.ProdHierarchyValidityEndDate |
| [0..*] | I_ProdUnivHierNodeText_2 | _Text | $projection.ProdUnivHierarchy = _Text.ProdUnivHierarchy and $projection.HierarchyNode = _Text.HierarchyNode and $projection.ProdHierarchyValidityEndDate = _Text.ProdHierarchyValidityEndDate and $projection.Product = '' |
| [1..1] | I_Product | _Product | $projection.Product = _Product.Product |
Annotations (15)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IPRDUNIVHIERNDB | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| EndUserText.label | Product Hierarchy Node | view | |
| VDM.viewType | #BASIC | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| Metadata.allowExtensions | true | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ObjectModel.usageType.serviceQuality | #A | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.representativeKey | HierarchyNode | view | |
| Analytics.dataExtraction.enabled | true | view | |
| ObjectModel.sapObjectNodeType.name | ProdUnivHierarchyNormalNode | view |
Fields (12)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProdUnivHierarchy | |||
| KEY | HierarchyNode | hrrp_node | hrynode | |
| KEY | ProdHierarchyValidityEndDate | |||
| ProdHierarchyValidityStartDate | ||||
| ParentNode | hrrp_node | parnode | ||
| HierarchyNodeSequence | hrrp_node | hryseqnbr | ||
| NodeType | hrrp_node | nodetype | ||
| HierarchyNodeLevel | hrrp_node | hrylevel | ||
| HierarchyType | hrrp_node | hrytype | ||
| _ProductHierarchy | _ProductHierarchy | |||
| _Text | _Text | |||
| _Product | _Product |
@AbapCatalog: {
sqlViewName: 'IPRDUNIVHIERNDB',
compiler.compareFilter: true,
preserveKey: true
}
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Product Hierarchy Node'
@VDM.viewType: #BASIC
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.ignorePropagatedAnnotations: true
@Metadata.allowExtensions:true
@ObjectModel: {
usageType: {
dataClass: #MASTER,
serviceQuality: #A,
sizeCategory: #XL
},
representativeKey: 'HierarchyNode'
}
@ObjectModel.supportedCapabilities: [ #SQL_DATA_SOURCE,
#CDS_MODELING_DATA_SOURCE,
#CDS_MODELING_ASSOCIATION_TARGET,
#EXTRACTION_DATA_SOURCE
]
@Analytics:{
dataExtraction: {
enabled: true
}
}
@ObjectModel.sapObjectNodeType.name:'ProdUnivHierarchyNormalNode'
define view I_ProdUnivHierarchyNodeBasic
as select from hrrp_node as node
inner join hrrp_directory as dir on dir.hryid = node.hryid
and dir.hryvalto = node.hryvalto
and dir.hryver = node.hryver
// and dir.hrytyp = 'MD01'
association [1..1] to I_ProdUnivHierarchyBasic as _ProductHierarchy on $projection.ProdUnivHierarchy = _ProductHierarchy.ProdUnivHierarchy
and $projection.ProdHierarchyValidityEndDate = _ProductHierarchy.ProdHierarchyValidityEndDate
association [0..*] to I_ProdUnivHierNodeText_2 as _Text on $projection.ProdUnivHierarchy = _Text.ProdUnivHierarchy
and $projection.HierarchyNode = _Text.HierarchyNode
and $projection.ProdHierarchyValidityEndDate = _Text.ProdHierarchyValidityEndDate
and $projection.Product = '' // we need this text assoc only for non-leaf nodes
association [1..1] to I_Product as _Product on $projection.Product = _Product.Product
{
@ObjectModel.foreignKey.association: '_ProductHierarchy'
key cast(substring( node.hryid, 6, 26 ) as prod_hier_id ) as ProdUnivHierarchy,
@ObjectModel.text.association: '_Text'
key node.hrynode as HierarchyNode,
@Semantics.businessDate.to: true
key cast(node.hryvalto as prodhierarchyvalidityenddate preserving type ) as ProdHierarchyValidityEndDate,
@Semantics.businessDate.from: true
cast(node.hryvalfrom as prodhierarchyvaliditystartdate preserving type ) as ProdHierarchyValidityStartDate,
node.parnode as ParentNode,
@EndUserText.label: 'Product Hierarchy Node'
cast( case node.nodetype
when 'R' then node.nodevalue
when 'N' then node.nodevalue
else ''
end as prod_hier_node_value ) as ProdUnivHierarchyNode,
@ObjectModel.foreignKey.association: '_Product'
cast(
case node.hrytype
when 'MD01' then
case node.nodetype
when 'L' then node.nodevalue
else ''
end
else
case node.nodetype
when 'L' then node.nodevalue
when 'N' then node.nodevalue
else ''
end
end as productnumber ) as Product,
node.hryseqnbr as HierarchyNodeSequence,
node.nodetype as NodeType,
node.hrylevel as HierarchyNodeLevel,
node.hrytype as HierarchyType,
_ProductHierarchy,
_Text,
_Product
}
where
(
node.hrytype = 'MD01'
or node.hrytype = 'MD02'
)
and(
node.nodetype = 'L'
or node.nodetype = 'N'
or node.nodetype = 'R'
)
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