I_ProdUnivHierarchyNodeBasic

DDL: I_PRODUNIVHIERARCHYNODEBASIC Type: view BASIC Package: VDM_MD_PRODUCT_HIERARCHY

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)

SourceAliasJoin Type
hrrp_directory dir inner
hrrp_node node from

Associations (3)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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'
  )