• Email : contact@rapidviews.io
  • Téléphone : +33 5 61 13 22 64
Hiérarchie CDS Views

Introduction

Les hiérarchies sont une méthode populaire de structuration des données applicatives facilitant leur consommation.

Dans les CDS Views : Core Data Services, les hiérarchies permettent d’accéder à des données liées entre elles par un lien hiérarchique.

Dans le cas où votre société est divisée en diverses entités légales et/ou sous-unités, vous pourriez souhaiter réaliser des requêtes complexes reposant sur une structure d’éléments donnée. Par exemple, il conviendrait de s’appuyer sur un modèle employé/responsable pour une requête impliquant la structure organisationnelle de votre entreprise.

Différents exemples de hiérarchies dans une entreprise :

  • Les hiérarchies temporelles : Année -> Mois -> Semaine -> Jour
  • Les hiérarchies géographiques : Continent -> Pays -> Département -> Ville
  • Les hiérarchies de comptes tel un P&L : Groupe de compte -> Nature comptable -> Compte
  • Les hiérarchies articles : Nature d’article -> Groupe d’article -> Article

Le fonctionnement des hiérarchies

Principe

En général, une vue CDS générant des hiérarchies sera une vue de type DIMENSION.

Plusieurs composants de hiérarchies sont à différencier :

  • Nœud de hiérarchie : c’est un composant associant la donnée souhaitée à une hiérarchie et à un niveau de hiérarchie (nœud(s) racine, et nœuds de niveau X  Y)
  • Répertoire de hiérarchie : c’est la hiérarchie en elle-même. Une hiérarchie peut avoir plusieurs nœuds racines.
  • Textes des nœuds de hiérarchie : renseigne les noms des master data associés aux nœuds de hiérarchie, le cas échéant (par exemple, intitulé/libellé d’un compte général)

La relation hiérarchique des nœuds est construite via deux méthodes :

  • Par deux ensembles de colonnes, l’un identifiant un nœud comme enfant, souvent les colonnes clés du nœud, et l’autre identifiant le nœud parent associé
  • Par une auto-association de la vue avec cardinalité [1: 0..1] pointant vers le nœud parent du nœud

Les nœuds racines n’ont par définition pas de parents. Ci-dessous, côté base de données, les premiers nœuds d’une hiérarchie (le niveau 0 correspond au nœud racine) :

Premiers noeuds d'une hiérarchie

Décomposition d’une vue de hiérarchie

Nous utilisons ici des annotations SAP CDS. Afin de déclarer une hiérarchie de type parent-enfant, nous utilisons l’annotation suivante :

@Hierarchy.parentChild:
{ recurse:          {   parent: 'ParentNode',   child:  'HierarchyNode'   },
siblingsOrder:    {   by: 'SequenceNumber',    direction: 'ASC'   },
directory:        '_Hierarchy' }

Nous déclarons ensuite le traitement de nœuds de hiérarchies :

@ObjectModel: {usageType: {
dataClass: #MASTER,
serviceQuality: #A,
sizeCategory: #XL},
  dataCategory: #HIERARCHY}

Enfin, nous utilisons des associations pour lier nos nœuds de hiérarchies à un répertoire de hiérarchie, ainsi qu’aux libellés décrivant les données master data remontées par ces nœuds de hiérarchie :

association [1..1] to I_CostCenterHierarchy as _Hierarchy 
on $projection.CostCenterHierarchy = _Hierarchy.CostCenterHierarchy
and $projection.ControllingArea = _Hierarchy.ControllingArea
and $projection.ValidityEndDate = _Hierarchy.ValidityEndDate
association [0..*] to I_CostCenterHierarchyNodeT as _Text
on $projection.CostCenterHierarchy = _Text.CostCenterHierarchy
and $projection.HierarchyNode = _Text.HierarchyNode
and $projection.ControllingArea = _Text.ControllingArea

L’arborescence des nœuds de hiérarchies peut être représentée ainsi :

Arborescence des nœuds de hiérarchies

Notre avis : bien qu’une solide compétence technique soit requise pour mettre en place ce type de composants, un certain nombre de CDS standards de hiérarchies sont mises à disposition par SAP, on peut s’appuyer dessus pour les besoins standards.

Consommation des hiérarchies

L’exposition des données via les vues CDS se fait via une vue de dernier niveau de type query.

Ci-dessous un exemple d’arborescence de vues pour une query de compte de résultat utilisant plusieurs dimensions dont 2 hiérarchies (centres de coûts et comptes généraux).

Arborescence d'une vue

Il est nécessaire dans une vue de dernier niveau de redéclarer les hiérarchies, associés directement à un élément de master data, par exemple pour un identifiant de centre de coût :

@EndUserText.label: 'Cost Center Key'
    @AnalyticsDetails.query.variableSequence: 86
    @Consumption.filter: {  selectionType: #HIERARCHY_NODE, multipleSelections: true, mandatory: false,
                        hierarchyBinding : [  { type: #USER_INPUT, value: 'CostCenterHierarchy', variableSequence: 85 } ] }
     @AnalyticsDetails.query.displayHierarchy: #FILTER
     @AnalyticsDetails.query.axis: #ROWS
     @AnalyticsDetails.query.totals: #SHOW
     @ObjectModel.text.element:['CostCenterName']     
CostCenterKey

Une fois cette requête consommée via un outil de reporting compatible tel que Web Intelligence, Analysis for Office, mais aussi SAP FIORI, on peut accéder à l’arborescence extraite de la hiérarchie, ainsi qu’à la fonction plié/déplié associée.

Par exemple, sur Web Intelligence :

Exemple d'une hiérarchie dans Web Intelligence

Notre avis : Cette fonctionnalité est indispensable dans le reporting et les outils de BI. Elle permet de profiter de la fonction drill-down/roll-up, et permet de réaliser rapidement des calculs de totaux et de sous-totaux répartis sur tous les niveaux de la hierarchie. Grâce à ces hiérarchies vous pouvez organiser un reporting conforme aux organisations hiérarchiques de votre entreprise.

Conclusion de l’expert

S’appuyant sur la technologie des CDS Views : Core Data Services, cette fonctionnalité de hiérarchie permet de retrouver votre structure d’entreprise dans vos rapports BI sur les outils classiques de l’écosystème SAP (Analysis For Office, SAP Business Objects, …), mais également sur les nouveaux outils compatibles avec les CDS tels que SAP FIORI.

Outre la haute technicité de l’implémentation des hiérarchies, un référentiel standard est livré par SAP, sur plusieurs domaines métiers, ce qui permet de démarrer avec du standard. Les développements complémentaires sont à prévoir si vous souhaitez intégrer du spécifique propre à votre entreprise.

A noter qu’il est également possible de réutiliser dans les CDS Views toutes les hiérarchies personnalisées et paramétrées dans l’ERP SAP.

Un avantage concret pour des utilisateurs fonctionnels, qui retrouveront de cette manière la même structure dans leur reporting que dans les restitutions, écrans et extractions de l’ERP. De plus dans les outils de reporting, ces hiérarchies peuvent être combinées avec des fonctionnalités plus avancées des outils de reporting.

Leave a Comment

Rapid Views est éditrice de logiciels qui accélèrent le déploiement de vos projets décisionnelles SAP HANA.