Introduction

Chez chacun de nos clients, nous rencontrons des hiérarchies de type « Organisation commerciale », « Client », ou « Article ».
Or, la création, le chargement, la gestion et le parcours des hiérarchies sont souvent complexes, puisqu’ils nécessitent notamment l’usage de la récursivité.
Mais ça, c’était avant ! Grâce aux fonctionnalités mises à disposition par SAP au travers de HANA, ces processus sont désormais grandement facilités.

Nous vous proposons de découvrir dans cet article :

  • La définition d’une hiérarchie
  • Les différents types de hiérarchie
  • Le mode d’emploi pour les créer et les définir sous HANA
  • Une restitution graphique dans SAP Analytics Cloud.

Qu’est-ce qu’une hiérarchie ?

En informatique décisionnelle, le concept de hiérarchie est très souvent utilisé dans les schémas d’organisation de structures de données.
L’information se présente généralement comme un arbre :

Schéma d'une hierarchie
Schéma d’une hiérarchie

Le terme “Hiérarchie” va de pair avec les termes suivants :

  • Nœud : Membre de la hiérarchie
  • Parent / Enfant : Membre se situant à un niveau supérieur à un autre membre, qui sera ainsi l’enfant (Membre 4 parent des Membres 6 et 7 et enfant du Membre 2)
  • Nœud racine : Membre n’ayant pas de parent et étant à la base de la hiérarchie (Membre 1)
  • Feuille : Membre n’ayant pas d’enfant (Membre 8).

Les différents types de hiérarchies

En référence, prenons une hiérarchie se présentant comme ceci :

Exemple de hiérarchie

Hiérarchie Parent – Enfant

Cette hiérarchie se construit en ayant une colonne de « VALEUR » et une colonne indiquant le « PARENT » correspondant.
Pour ce modèle de hiérarchie, tous les nœuds doivent être de même type.
Voici un exemple de table représentant la hiérarchie précédente sous forme Parent – Enfant.

Exemple de table représentant une hiérarchie sous forme Parent - Enfant

Hiérarchie par niveau

Des colonnes distinctes sont renseignées pour chacun des niveaux de la hiérarchie.
Chaque branche de l’arborescence doit être de longueur égale.
Voici un exemple de table représentant la hiérarchie précédente sous forme par niveau :

Exemple de hiérarchie par niveau

Nous retrouvons ici 4 colonnes, correspondant aux 4 niveaux de notre hiérarchie.

Comment définir une hiérarchie dans HANA ?

Il y a deux possibilités pour définir une hiérarchie dans HANA :

  • Par le biais d’une Calculation View (Type Graphical)
  • Par le biais d’une Script View (Type SQL Script)

Via les Calculation Views

Hiérarchie Parent – Enfant

En passant par une calculation view de type Graphical, nous avons la possibilité de créer une hiérarchie Parent – Enfant.
Le paramétrage se fait dans l’onglet « Hiérarchie » de la couche sémantique de la vue. Il faut cliquer sur le « + » et choisir le type de hiérarchie « Parent – Enfant ».

Figure 1 : Modélisation sous SAP HANA
Figure 1 : Modélisation sous SAP HANA

Nous voyons sur l’image ci-dessus que nous avons bien choisi le type de hiérarchie « Parent-Child Hierarchy », et que nous avons défini le champ « VALEUR » comme champ Enfant, et le champ « PARENT » comme champ Parent .

Voici ce que nous obtenons comme visualisation :

Figure 2 : Data Preview sous SAP HANA
Figure 2 : Data Preview sous SAP HANA

Hiérarchie par Niveau

Il y a également la possibilité de créer une hiérarchie par niveau. Pour cela, nous choisissons cette fois-ci dans les paramétrages le type « Level Hierarchy ».

Figure 3 : Modélisation sous SAP HANA
Figure 3 : Modélisation sous SAP HANA

Nous choisissons également quels sont les différents niveaux de notre hiérarchie en les plaçant dans l’ordre.

Voici ce que nous obtenons comme visualisation :

Figure 4 : Data Preview sous SAP HANA
Figure 4 : Data Preview sous SAP HANA

Via les Script Views et la fonction HIERARCHY

Création d’une script view

Lors de la création de la calculation view, choisir le type « SQL Script ».
Pour appeler une table dans une script view, nous devons utiliser une requête SQL de type SELECT * FROM « TABLE »
Par exemple dans le cas ci-dessous, nous souhaitons sélectionner une hiérarchie à partir de la table « HC_MATERI ».

Création d'une script view

Afin de mieux comprendre le code, voici l’utilité des différentes fonctions utilisées :

  • BEGIN / END : Mots clés permettant de débuter et clore notre code SQL Script.
  • var_out : Permet de sélectionner quels sont les champs que l’on souhaite remonter dans la vue.
  • HIERARCHY : Définit quelle est la hiérarchie et quelles vont être ses options (Cette fonction sera développée ultérieurement dans l’article).
  • NODE_ID / PARENT_ID : Ces champs permettent d’identifier les valeurs comme étant « Enfant » (NODE_ID) ou « Parent » (PARENT_ID).

Cette requête SQL sélectionne une hiérarchie à partir de la table citée précédemment, et en extrait les parents, enfants, ainsi que le niveau de hiérarchie et une mesure. Tous ces champs seront ainsi envoyés dans la couche sémantique.
La fonction HIERARCHY permet de spécifier que notre table source est une hiérarchie et permet ainsi l’utilisation de fonctions diverses implémentées par SAP.

Les options possibles de la fonction HIERARCHY

Il est également possible de spécifier des paramétrages pour la hiérarchie que nous souhaitons créer.
Ces fonctions sont les suivantes :

Type de fonctionFonction complèteDescription
SOURCESOURCEUtilisée pour identifier la source d’où provient la hiérarchie (quelle table utiliser).
STARTSTART WHEREPréciser où nous souhaitons faire débuter la hiérarchie (où se situe le haut, le niveau 1).
ORDERSIBLING ORDERDéfinit l’ordre de tri des valeurs ayant un même parent.
DEPTHDEPTHDéfinit la profondeur de la hiérarchie que nous souhaitons avoir.
MULTIPARENTMULTIPARENTUne valeur ayant plusieurs parents est autorisée.
MULTIPARENT ERRORUne valeur ayant plusieurs parents renvoie une erreur.
MULTIPARENT LEAVESAvoir plusieurs parents pour une seule valeur est autorisé si cette valeur est une feuille (dernier niveau, n’a pas d’enfant).
ORPHANORPHAN IGNOREEst utilisé par défaut. Les orphelins sont ignorés.
ORPHAN ROOTDéfinit un orphelin comme nœud racine.
ORPHAN ERRORSi la hiérarchie contient un orphelin, une erreur est détectée.
ORPHAN ADOPTDéfinit le nœud de rattachement de l’orphelin.

Hiérarchie récupérée sous SAP Analytics Cloud

Sous SAP Analytics Cloud, il est possible d’observer la hiérarchie par niveau que nous avons créée dans notre vue HANA :

Exemple de hiérarchie récupérée sous SAP Analytics Cloud

Conclusion

Grâce à la modélisation graphique sous HANA, à la virtualisation et aux fonctions mises à disposition par SAP pour les scripts views, travailler avec les hiérarchies chez vos clients n’est plus un casse-tête !
Au final, vous bénéficiez :

  • D’un gain de temps
  • D’une mise en place simplifiée, via l’interface graphique
  • De plus de facilité de traitement.

Et si, en plus de vous simplifier les hiérarchies, vous souhaitez optimiser vos performances de développement sur HANA, allez faire un tour vers cet article de Loïc : « SAP HANA 2.0 : comment optimiser vos performances ? » !