Support formation Rapports Power BI

Objets sans interface : perspectives, traductions, lignes de détail

Certains objets du modèle sémantique n'ont aucune interface dans Power BI Desktop : les perspectives, les traductions et les expressions de lignes de détail. La vue TMDL permet de les créer en quelques lignes de script. Source

Les exemples ci-dessous s'appuient sur un modèle simple :

  • Table Ventes : colonnes Date, Clé produit, Quantité, Montant HT ; mesures CA HT et Quantité vendue.
  • Table Produit : colonnes Clé produit, Produit, Catégorie.
  • Relation Ventes[Clé produit] vers Produit[Clé produit].

Mode opératoire commun aux trois exemples :

  1. Ouvrir la vue TMDL et créer un nouvel onglet vide (ou scripter l'objet existant).
  2. Coller le script et adapter les noms de tables, colonnes et mesures.
  3. Cliquer sur Aperçu pour contrôler l'écart, puis sur Appliquer.
  4. Vérifier le résultat avec une requête DAX dans la vue Requête DAX.

Les scripts ont été vérifiés par sérialisation TMDL avec la bibliothèque Microsoft.AnalysisServices (version 19.118.3).

1 | Perspectives

À quoi sert une perspective

  • Une perspective est un sous-ensemble nommé du modèle : quelques tables, colonnes et mesures.
  • Dans Power BI, elle sert à filtrer la liste des champs proposée au lecteur lorsqu'il personnalise un visuel ou utilise l'exploration.
  • Ce n'est pas un mécanisme de sécurité : tous les objets restent accessibles par ailleurs (utiliser RLS ou OLS pour sécuriser). Source

Exemple 1 : une perspective commerciale

createOrReplace

    perspective 'Vue commerciale'
        perspectiveTable Ventes
            perspectiveMeasure 'CA HT'
            perspectiveMeasure 'Quantité vendue'
            perspectiveColumn Date
        perspectiveTable Produit
            perspectiveColumn Catégorie
            perspectiveColumn Produit
  • perspectiveTable : table visible dans la perspective.
  • perspectiveMeasure et perspectiveColumn : objets de cette table retenus ; ceux qui ne sont pas cités n'apparaissent pas.
  • Le nom contient une espace : il est placé entre apostrophes droites.

Exemple 2 : une seconde perspective pour la logistique

createOrReplace

    perspective Logistique
        perspectiveTable Ventes
            perspectiveMeasure 'Quantité vendue'
            perspectiveColumn Date

        perspectiveTable Produit
            perspectiveColumn Produit

Le montant n'y figure pas : l'équipe logistique ne voit que les quantités dans la liste des champs.

Utiliser la perspective dans le rapport

  1. Fichier > Options et paramètres > Options > Fichier actif > Paramètres du rapport : cocher Personnaliser les visuels.
  2. Sélectionner la page, puis volet Format > section Personnaliser le visuel > Perspective du lecteur du rapport : choisir « Vue commerciale ».
  3. Cliquer sur Appliquer à toutes les pages si besoin.
  4. Publier ; dans le service, le lecteur qui personnalise un visuel ne voit que les champs de la perspective.

Vérifier dans la vue Requête DAX :

EVALUATE INFO.PERSPECTIVES ()
EVALUATE INFO.PERSPECTIVEMEASURES ()

2 | Traductions (métadonnées)

À quoi servent les traductions

  • Une culture (par exemple en-US) porte les traductions des noms de tables, colonnes et mesures, de leurs descriptions et de leurs dossiers d'affichage.
  • Le service Power BI affiche ces traductions selon la langue du navigateur du lecteur.
  • Power BI Desktop n'affiche pas les traductions : le test se fait dans le service. Source

Exemple 3 : traduire le modèle en anglais

createOrReplace

    cultureInfo en-US
        translations

            model Model

                table Ventes
                    caption: Sales
                    column Date
                        caption: Date
                    column Quantité
                        caption: Quantity
                    column 'Montant HT'
                        caption: Amount excl. VAT
                    measure 'CA HT'
                        caption: Sales excl. VAT
                        description: Sum of sales amounts excluding VAT
                        displayFolder: Revenue
                    measure 'Quantité vendue'
                        caption: Quantity sold

                table Produit
                    caption: Product
                    column Produit
                        caption: Product
                    column Catégorie
                        caption: Category
  • cultureInfo en-US : la langue et la région traduites.
  • translations > model Model : point d'entrée obligatoire, suivi des tables.
  • Trois propriétés traduisibles : caption (nom affiché), description (info-bulle), displayFolder (dossier d'affichage).
  • Les objets non traduits gardent leur nom d'origine.

Attention : createOrReplace remplace la culture entière. Si la culture existe déjà (Power BI y stocke aussi les métadonnées linguistiques de Questions et réponses), la scripter d'abord et compléter le script plutôt que de repartir de zéro.

Ajouter une seconde langue

Copier le script, remplacer en-US par es-ES et traduire les valeurs. Prévoir une culture par variante régionale utile (fr-FR, fr-BE, fr-CA) : pour les tables et colonnes, le service exige une correspondance exacte de la culture. Source

Tester dans le service

  1. Publier le rapport dans un espace de travail.
  2. Ouvrir le rapport et ajouter ?language=en-US à la fin de l'adresse.
  3. Les noms des tables, colonnes et mesures s'affichent en anglais dans les visuels et le volet Données. Source

Vérifier dans la vue Requête DAX :

EVALUATE INFO.CULTURES ()
EVALUATE INFO.OBJECTTRANSLATIONS ()

Pour aller plus loin (étiquettes du rapport, données traduites), voir la page Rapports multilangue.

3 | Lignes de détail

À quoi sert une expression de lignes de détail

  • Elle définit la table renvoyée quand on demande le détail d'une valeur agrégée : double-clic sur une cellule d'un tableau croisé dynamique Excel connecté au modèle, ou fonction DAX DETAILROWS.
  • Sans expression, le détail renvoie toutes les colonnes de la table qui porte la mesure, souvent illisibles (clés techniques).
  • Deux niveaux : par mesure (detailRowsDefinition) ou par défaut pour toutes les mesures d'une table (defaultDetailRowsDefinition). Source

Exemple 4 : détail de la mesure CA HT

createOrReplace

    ref table Ventes

        measure 'CA HT' = SUM ( Ventes[Montant HT] )
            formatString: #,##0.00 €
            displayFolder: Chiffre d'affaires

            detailRowsDefinition =
                    SELECTCOLUMNS (
                        Ventes,
                        "Date", Ventes[Date],
                        "Produit", RELATED ( Produit[Produit] ),
                        "Catégorie", RELATED ( Produit[Catégorie] ),
                        "Quantité", Ventes[Quantité],
                        "Montant HT", Ventes[Montant HT]
                    )
  • ref table Ventes : la table n'est pas redéfinie, seule la mesure est remplacée.
  • La mesure est remplacée entièrement : reprendre son expression et ses propriétés (formatString, displayFolder), sinon elles sont perdues. Le plus sûr est de scripter la mesure existante puis d'y ajouter le bloc detailRowsDefinition.
  • RELATED ramène les libellés de la table Produit à la place de la clé technique.

Exemple 5 : un détail par défaut pour toute la table

createOrReplace

    ref table Ventes

        defaultDetailRowsDefinition =
                SELECTCOLUMNS (
                    Ventes,
                    "Date", Ventes[Date],
                    "Produit", RELATED ( Produit[Produit] ),
                    "Quantité", Ventes[Quantité]
                )

Toutes les mesures de la table Ventes sans expression propre (ici Quantité vendue) utilisent ce détail.

Tester

Dans la vue Requête DAX :

EVALUATE
CALCULATETABLE (
    DETAILROWS ( [CA HT] ),
    Produit[Catégorie] = "Vélos"
)

La requête renvoie les lignes de ventes de la catégorie Vélos, avec les cinq colonnes définies dans l'expression.

Dans Excel : Analyser dans Excel depuis le service, construire un tableau croisé dynamique avec CA HT par Catégorie, puis double-cliquer sur une valeur : une nouvelle feuille affiche les lignes de détail.

Récapitulatif

ObjetMot-clé TMDLOù l'effet est visibleVérification DAX
PerspectiveperspectivePersonnalisation des visuels, explorationINFO.PERSPECTIVES ()
TraductioncultureInfo > translationsService, selon la langue du navigateurINFO.OBJECTTRANSLATIONS ()
Lignes de détaildetailRowsDefinition, defaultDetailRowsDefinitionExcel (double-clic), DETAILROWSINFO.DETAILROWSDEFINITIONS ()