Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une hiérarchie irrégulière est une hiérarchie définie par l’utilisateur qui a un nombre inégal de niveaux. Parmi les exemples courants, citons un organigramme où un responsable de haut niveau dispose à la fois de gestionnaires ministériels et de non-gestionnaires en tant que rapports directs, ou de hiérarchies géographiques composées de Country-Region-City, où certaines villes manquent d’un état parent ou d’une province, comme Washington D.C., Vatican City ou New Delhi.
Pour la plupart des hiérarchies dans une dimension, chaque niveau compte le même nombre de membres au-dessus de lui que n'importe quel autre membre situé au même niveau. Une hiérarchie irrégulière se différencie en ce que le parent logique d’au moins un membre n’est pas au niveau immédiatement supérieur au membre. Lorsque cela se produit, la hiérarchie descend à différents niveaux pour différents chemins d’extraction. Dans une application cliente, cela peut compliquer inutilement les chemins d’extraction.
Les applications clientes varient dans leur capacité à gérer une hiérarchie irrégulière. Si des hiérarchies irrégulières existent dans votre modèle, préparez-vous à effectuer un travail supplémentaire pour obtenir le comportement de rendu que vous attendez.
Pour commencer, vérifiez l’application cliente pour voir comment elle gère le chemin d’extraction. Par exemple, Excel répète les noms parents en tant qu’espaces réservés pour les valeurs manquantes. Pour voir ce comportement vous-même, créez un tableau croisé dynamique à l’aide de la dimension Territoire de Vente dans le modèle multidimensionnel d'Adventure Works. Dans un tableau croisé dynamique avec les attributs Sales Territory: groupe, pays et région, vous verrez que les pays sans valeur de région obtiennent une place réservée, dans ce cas une répétition du parent précédent (nom du pays). Le comportement découle de la propriété de chaîne de connexion MDX Compatibility=1, qui est définie dans Excel. Si le client ne fournit pas naturellement les comportements d’exploration que vous recherchez, vous pouvez définir des propriétés dans le modèle pour modifier au moins certains de ces comportements.
Cette rubrique contient les sections suivantes :
Approches de modification de la navigation d'exploration dans une hiérarchie irrégulière
Définir HideMemberIf pour masquer les membres d’une hiérarchie régulière
Approches pour modifier la navigation par niveaux dans une hiérarchie irrégulière.
La présence d'une hiérarchie irrégulière devient un problème lorsque la navigation par exploration ne retourne pas les valeurs attendues ou est perçue comme malaisée. Pour résoudre les problèmes de navigation résultant de hiérarchies irrégulières, envisagez les options suivantes :
Utilisez une hiérarchie régulière, mais définissez la
HideMemberIfpropriété sur chaque niveau pour spécifier si un niveau manquant est visualisé pour l’utilisateur. Lorsque vous définissezHideMemberIf, vous devez également définirMDXCompatibilitysur la chaîne de connexion pour remplacer les comportements de navigation par défaut. Les instructions relatives à la définition de ces propriétés se trouvent dans cette rubrique.Créez une hiérarchie parent-enfant qui gère explicitement les membres de niveau. Pour une illustration de la technique, voir Ragged Hierarchy in SSAS (le blog). Pour plus d'informations dans Books Online, consultez Parent-Child Hiérarchie. Les inconvénients de la création d’une hiérarchie parent-enfant sont que vous ne pouvez avoir qu’un seul par dimension et que vous entraînez généralement une pénalité de performances lors du calcul des agrégations pour les membres intermédiaires.
Si votre dimension contient plus d'une hiérarchie irrégulière, vous devez utiliser la première approche en définissant HideMemberIf. Les développeurs décisionnels ayant une expérience pratique dans l’utilisation de hiérarchies clairsemées vont plus loin en préconisant des modifications supplémentaires dans les tables de données physiques et créent des tables distinctes pour chaque niveau. Pour plus d’informations sur cette technique, consultez le SSAS Financial Cube-Part 1a-Ragged Hierarchies (blog) de Martin Mason .
Définir HideMemberIf pour masquer les membres d’une hiérarchie régulière
Dans la table d’une dimension irrégulière, les membres manquants logiquement peuvent être représentés de différentes manières. Les cellules du tableau peuvent contenir des valeurs Null ou des chaînes vides, ou elles peuvent contenir la même valeur que leur parent pour servir d’espace réservé. La représentation des espaces réservés est déterminée par l'état de l'espace réservé des membres enfants, déterminée par la propriété HideMemberIf et la propriété de chaîne de connexion MDX Compatibility pour l'application cliente.
Pour les applications clientes qui prennent en charge l’affichage des hiérarchies irrégulières, vous pouvez utiliser ces propriétés pour masquer les membres manquants de manière logique.
Dans SSDT, double-cliquez sur une dimension pour l’ouvrir dans le Concepteur de dimensions. Le premier onglet, Structure de dimension, affiche les hiérarchies d’attributs dans le volet Hiérarchies.
Cliquez avec le bouton droit sur un membre dans la hiérarchie et sélectionnez Propriétés. Définissez
HideMemberIfsur l’une des valeurs décrites ci-dessous.Paramètre HideMemberIf Descriptif NeverLes membres des niveaux d'adhésion ne sont jamais cachés. Il s’agit de la valeur par défaut. OnlyChildWithNoName Un membre de niveau est masqué lorsqu’il est le seul enfant de son parent et que son nom est Null ou une chaîne vide. OnlyChildWithParentName Un membre de niveau est masqué lorsqu’il est le seul enfant de son parent et que son nom est identique au nom de son parent. NoName Un membre de niveau est masqué lorsque son nom est vide. ParentName Un membre de niveau est masqué lorsque son nom est identique à celui de son parent.
Définir la compatibilité MDX pour déterminer la façon dont les espaces réservés sont représentés dans les applications clientes
Après avoir défini HideMemberIf au niveau de la hiérarchie, vous devez également définir la MDX Compatibility propriété dans la chaîne de connexion envoyée à partir de l’application cliente. Le MDX Compatibility paramètre détermine si le HideMemberIf paramètre est utilisé.
| Paramètre de compatibilité MDX | Descriptif | Utilisation |
|---|---|---|
| 1 | Afficher une valeur de placeholder. | Il s’agit de la valeur par défaut utilisée par Excel, SSDT et SSMS. Il indique au serveur de retourner des valeurs de remplacement lors de la navigation dans les niveaux vides d'une hiérarchie irrégulière. Si vous cliquez sur une valeur de l'espace réservé, vous pouvez descendre pour accéder aux nœuds fils (feuille). Excel possède la chaîne de connexion utilisée pour se connecter à Analysis Services et définit MDX Compatibility toujours la valeur 1 sur chaque nouvelle connexion. Ce comportement conserve la compatibilité descendante. |
| 2 | Masquez une valeur d’espace réservé (une valeur Null ou un doublon du niveau parent), mais affichez d’autres niveaux et nœuds ayant des valeurs pertinentes. |
MDX Compatibility=2 est généralement vu comme le réglage préféré en termes de hiérarchies irrégulières. Un rapport Reporting Services et certaines applications clientes tierces peuvent conserver ce paramètre. |
Voir aussi
Créer des hiérarchies User-Defined
Hiérarchies utilisateur
Parent-Child hiérarchie
Propriétés de chaîne de connexion (Analysis Services)