Les fonctions DAX INFO.VIEW permettent d’extraire dynamiquement des métadonnées du modèle sémantique dans des tables calculées, ce qui ouvre la porte à une documentation intégrée, dynamique et automatisée.
Pourquoi les fonctions INFO.VIEW sont-elles intéressantes?
- Elles permettent de générer des tables calculées contenant des informations sur les tables, colonnes, relations et mesures du modèle sémantique.
- Elles facilitent la création de rapports de documentation directement dans Power BI ou dans un document Excel, Word ou autres.
- Elles facilitent les recherches d’information en évitant la recherche isolée dans chacun des objets du modèle (tables, mesures … ).
Voici les 4 fonctions qui découlent d’ INFO.VIEW :
- INFO.VIEW.TABLES()
- INFO.VIEW.COLUMNS()
- INFO.VIEW.RELATIONSHIPS()
- INFO.VIEW.MEASURES()
La dernière partie du nom de chacune de ces fonctions résume bien de quel type d’objet nous allons obtenir des métadonnées. Je vous fais donc un bref résumé de ce qu’on peut retrouver dans chacune, mais je m’attarderai plus longuement sur INFO.VIEW.MEASURES() qui, selon moi, est la plus intéressante du lot.
C’est donc à partir d’INFO.VIEW.MEASURES() que je vous montrerai comment utiliser ces fonctions et quelques cas d’utilisation pratiques. Mais vous pouvez parfaitement transférer ces informations dans l’utilisation des autres fonctions.
INFO.VIEW.TABLES()
Cette fonction permet une vue de toutes les tables du modèle.
On y retrouve entre autres les informations suivantes :
- Name : Le nom de la table
- Description : La description de ce que contient la table (je vous démontre plus bas comment ajouter la description aux différents objets).
- StorageMode : Est-ce que cette table est en mode Import ou Direct Query,
- IsHiden : Indique si la table est masquée
- Expression : Contient l’expression DAX d’une table calculée

INFO.VIEW.COLUMNS()
Cette fonction permet une vue de toutes les colonnes du modèle.
On y retrouve entre autres les informations suivantes :
- Name : Le nom de la colonne
- Table : Dans quelle table se retrouve cette colonne
- DataType : Le type de données : Date, texte, numérique
- DataCategory : La catégorie de données : Régulière, Latitude, Longitude
- Description : La description de ce que contient la colonne
- IsHidden : La colonne est masquée ou non
- IsUnique : Est-ce que les valeurs de cette colonne sont uniques, par exemple : le Customer ID dans la table DIM_Customer est constitué de valeur unique, l’on voit donc TRUE dans cette colonne.
- IsNullable : Est-ce que cette colonne peut contenir une valeur nulle
- Expression : Contient l’expression DAX d’une colonne calculée

INFO.VIEW.RELATIONSHIPS()
Cette fonction permet une vue de toutes les relations du modèle.
On y retrouve entre autres les informations suivantes :
- FromTable & FromColumn : Identifie la table et la colonne qui constitue le point de départ de la relation.
- ToTable & ToColumn : Identifie la table et la colonne qui constitue le point d’arrivée de la relation.
- CrossFilteringBehavior : Indique si la direction du filtre de la relation est dans un sens uniquement ou bien dans les 2 sens.
- FromCardinality : Identifie la cardinalité de la table de départ, une (One) ou plusieurs (Many) lignes de données pour la clé commune entre les deux tables.
- ToCardinality : Identifie la cardinalité de la table d’arrivée.
- SecurityFilteringBehavior : Indique si le filtre de sécurité s’applique seulement dans un sens ou dans les deux sens.

INFO.VIEW.MEASURES()
Cette fonction retourne une table contenant des informations sur toutes les mesures du modèle.
On y retrouve entre autres les informations suivantes :
- Name : Le nom de la mesure
- Table : La table dans laquelle est sauvegardée la mesure
- Expression : L’expression DAX de la mesure
- Description : La description de la mesure
- State : Identifie si le code DAX utilisé dans la mesure est valide ou invalide.
- DisplayFolder : Si vous avez configuré des dossiers pour y glisser vos mesures, le nom du dossier apparaîtra ici.
- FormatStringDefinition : Identifie le format utilisé pour afficher la donnée résultante de la mesure
- IsHidden : Identifie si la mesure est masquée

Voyons maintenant comment utiliser ces fonctions
Créer une table calculée
Il faut créer une table calculée, car ces fonctions retournent une table.
Il faut passer par la vue Table dans Power BI desktop, puis cliquer sur le menu Outils de table.
Ensuite, l’on clique sur Nouvelle table.
Dans la barre de formule, on inscrit le nom souhaité pour la table calculée, puis, après le signe égal (=) on indique la fonction : INFO.VIEW.MEASURES().
Pour ma part, j’ai nommé la table INFO_Mesures :
L’on pourra ensuite accéder à cette table, toujours en passant par la vue Table, en la sélectionnant dans le panneau de données
Créer une page de rapport avec la table calculée
Il est possible de créer une page de rapport et d’insérer ces données dans un visuel de type table afin de permettre aux utilisateurs ou collaborateurs de voir ces informations. Comme ce ne sont pas toutes les colonnes qui seront intéressantes selon votre situation, ceci permettra d’afficher les colonnes souhaitées et ainsi mieux repérer les informations recherchées.

On pourra aussi appliquer un peu de formats, comme une alternance de couleur par ligne et un retour automatique pour voir le texte sur plusieurs lignes.
On pourrait également copier la table complète et la copier dans Excel ou un autre type de document.
Il faut alors passer par la vue Table, cliquer droit sur un en-tête de colonne.
Ensuite, il faut cliquer sur Copier puis sélectionner Table.
Il restera seulement à coller le résultat dans le document souhaité.
J’aime bien, pour ma part, créer un document Word ou Excel dans un environnement SharePoint pour documenter les processus et donner l’accès aux personnes concernées. Pour les non-initiés à Power BI desktop il sera plus facile pour eux de naviguer dans un tel document que d’aller explorer l’information dans Power BI. On pourra également profiter des options de collaboration que nous offre cet environnement.
Ajout d’une description
La description des différents éléments d’un modèle sémantique nous permet d’ajouter des explications en lien avec ces éléments. Il permet de clarifier la donnée.
Pour ajouter une description aux différents éléments, il faut se diriger dans la vue Modèle.
Ensuite, l’on sélectionne l’objet à documenter. Dans mon exemple ici, je veux documenter la mesure Ventes$_Cumul, mais l’on peut également sélectionner une table ou une colonne.
On insère alors l’information dans la case Description dans le panneau de Propriétés.
La description s’affiche alors dans la table calculée créé avec INFO.VIEW.MEASURES().

Actualisation
Pour que les changements (ajout d’une description, d’un dossier, masquer un élément) apportés au modèle soient visibles dans les fonctions INFO.VIEW, il faut actualiser au minimum une table du modèle (n’importe laquelle).
Pour actualiser une table spécifique, vous devez la sélectionner, puis cliquer droit (ou sur les 3 petits points) et sélectionner Actualiser des données.
Voici quelques cas d’usage pratiques
Audit de modèle :
- Identifier rapidement les mesures invalides et les corriger au besoin à l’aide de la colonne State. Si vous avez la mention InvalidExpression, vous devez corriger la mesure ou la supprimer si elle n’est plus utile.
- Identifier les mesures sans format défini, puis ajouter le format souhaité à l’aide de la colonne FormatStringDefinition.

- Identifier toutes les mesures qui utilisent une sous-mesure commune à l’aide d’un filtre sur la colonne Expression. Exemple, identifier toutes les mesures qui utiliser la mesure Ventes$.

- Détecter des incohérences ou des doublons
Documentation et formation:
- Aidez les nouveaux utilisateurs à comprendre le modèle sans avoir à plonger dans l’éditeur DAX.
- Aider les utilisateurs lorsqu’ils voudront utiliser le modèle de données pour se créer leur propre rapport. La description des différents éléments sera alors un atout précieux.
Conclusion sur les fonctions INFO.VIEW
Les fonctions INFO.VIEW représentent une belle avancée pour les développeurs Power BI. Elles permettent de rendre le modèle plus lisible, plus facile à maintenir et plus collaboratif. Si vous ne les avez pas encore explorées, c’est le moment idéal pour les intégrer à vos rapports et améliorer la qualité de vos modèles.
Est-ce que vous voyez d’autres utilités aux fonctions INFO.VIEW?
Faites-nous-en part dans les commentaires ci-dessous!
Fichier d’accompagnement VIP à télécharger
Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.
Formation complémentaire
Pour apprendre comment importer des données non structurées, réelles et budgétées, de diverses sources, les nettoyer, les croiser et les analyser. afin de créer un rapport permettant d’analyser adéquatement les marges de profits et les écarts entre les données réelles et le budget d’une façon originale et pertinente, suivez la formation Power BI (niveau 2).
