Partager via


Utiliser la vue TMDL dans Power BI Desktop

La vue TMDL vous permet de créer des scripts, de modifier et d’appliquer des modifications aux objets de modèle sémantique avec un éditeur de code moderne à l’aide de TMDL (Tabular Model Definition Language) dans Power BI Desktop, ce qui améliore l’efficacité du développement et offre une visibilité et un contrôle complets sur les métadonnées du modèle sémantique.

La vue TMDL offre une autre expérience que la modélisation sémantique à l’aide du code, au lieu d’une interface utilisateur graphique telle que la vue Modèle.

La vue TMDL offre les avantages suivants :

  • Amélioration de l’efficacité du développement avec un éditeur de code enrichi qui inclut la recherche et le remplacement, des raccourcis clavier, des modifications multilignes et plus.
  • Augmentez la réutilisation en scriptant, en partageant et en réutilisant facilement des scripts TMDL parmi les développeurs de modèles sémantiques. Par exemple, utilisez un site SharePoint centralisé pour partager facilement des objets de modèle sémantique réutilisables tels que des tables de calendrier ou des groupes de calcul d’intelligence temporelle.
  • Bénéficiez d’un contrôle et d’une transparence accrus, affichant tous les objets et propriétés de modèle sémantique et autorisant les modifications apportées aux éléments non disponibles dans l’interface utilisateur de Power BI Desktop, comme IsAvailableInMDX ou DetailRowsDefinition.

Script vers TMDL

Dans Power BI Desktop, sélectionnez l’icône d’affichage TMDL située le long du côté gauche de la fenêtre, comme illustré dans l’image suivante.

Capture d’écran de la vue T-M-D-L du langage de définition de modèle tabulaire.

Lorsque la vue TMDL ouvre l’éditeur de code est initialement vide. Vous pouvez scripter n’importe quel objet de modèle sémantique tel qu’une table, une mesure ou une colonne en sélectionnant les objets dans le volet Données et en les faisant glisser vers l’éditeur de code :

Capture d’écran du glissement d’un objet de modèle sémantique vers le canevas de vue T-M-D-L.

Lorsque vous utilisez la vue TMDL et faites glisser l’objet à partir du volet Données, Power BI scripte l’intégralité des métadonnées de l’objet dans l’onglet actif sous la forme TMDL ou ouvre un nouvel onglet si l’onglet actuel n’est pas vide, en tant que script TMDL createOrReplace des objets sélectionnés, comme illustré dans l’image suivante :

Capture d’écran de la création automatique des métadonnées T-M-D-L.

Vous pouvez également faire un clic droit sur un objet dans la Vue Données et sélectionner Script TMDL dans un nouvel onglet ou dans le Presse-papiers, comme illustré dans l'image suivante.

Capture d’écran du clic droit sur un objet en mode Données pour que Power BI crée du code de métadonnées T-M-D-L.

Conseil / Astuce

  • Vous pouvez scripter des sections entières ( mesures, tables ou colonnes) en faisant glisser la section dans l’éditeur de code pour générer un script de tous les objets de la section.
  • La sélection multiple est prise en charge en appuyant sur la touche Ctrl avant de scripter les objets dans l’éditeur de code de vue TMDL.

Éditeur de code

Une fois que vous avez scripté un objet de modèle sémantique ou collé un script TMDL dans l’éditeur de code, vous pouvez utiliser les fonctionnalités complètes de l’expérience de code offertes par l’éditeur de code de vue TMDL. Les fonctionnalités d’expérience de code vous permettent d’explorer les métadonnées du modèle ou d’apporter des modifications qui peuvent être appliquées ultérieurement au modèle sémantique.

Mise en surbrillance sémantique

La mise en surbrillance sémantique est intégrée à l’éditeur de code, ce qui améliore la lisibilité en appliquant différentes couleurs à des parties de votre code en fonction de la signification. Ce codage de couleur facilite la compréhension de la structure et des fonctionnalités de votre code TMDL, comme illustré dans l’image suivante.

Capture d’écran du codage de couleur et de la mise en surbrillance sémantique du code de métadonnées T-M-D-L.

Vous pouvez également développer ou réduire des sections de votre script TMDL, comme illustré dans l’image suivante :

Capture d’écran de sections de code repliées dans l’éditeur de code.

Autocomplétion

La saisie semi-automatique est intégrée à l’éditeur de code et propose des suggestions intelligentes pendant que vous tapez. La saisie semi-automatique peut accélérer votre flux de travail, réduire les risques d’erreurs et vous aider à comprendre vos options de code en suggérant dynamiquement des valeurs ou des propriétés possibles en tenant compte de la position du curseur.

Capture d’écran de la saisie semi-automatique dans l’éditeur de code.

Vous pouvez également déclencher la fonctionnalité de saisie semi-automatique à n’importe quel emplacement en appuyant sur Ctrl+Espace.

Info-bulles

L’info-bulle de contexte s’affiche au passage de la souris, fournissant des informations sur chaque objet ou propriété TMDL.

Capture d’écran d’une info-bulle contextuelle affichée sur le pointage de la souris dans l’éditeur de code, affichant des informations sur un objet ou une propriété TMDL.

Actions de code

Lorsque le curseur se trouve sur un soulignement ondulé ou un texte sélectionné, la vue TMDL affiche une icône d’ampoule indiquant les actions de code disponibles, telles que la génération de balises de lignage ou la correction des fautes d’orthographe du nom de propriété.

Capture d’écran de la vue TMDL dans l’éditeur de code montrant une icône d’ampoule en regard d’une bascule, indiquant les actions de code disponibles telles que la génération de balises de traçabilité.

Capture d’écran de la vue TMDL dans l’éditeur de code montrant une icône d’ampoule en regard d’une bascule, indiquant les actions de code disponibles, telles que la correction des fautes d’orthographe de nom de propriété.

Mise en forme du code

Mettez en forme votre code TMDL en appuyant sur Maj + Alt + F ou en cliquant sur l’option Format dans le ruban.

Capture d’écran de l’éditeur de code avec le code TMDL mis en forme à l’aide de l’option Format dans le ruban.

Vous pouvez également mettre en forme le texte sélectionné à l’aide de l’option « Format de sélection » dans le menu contextuel.

Capture d’écran de l’éditeur de code avec le code TMDL mis en forme avec le raccourci clavier Maj + Alt + F.

Diagnostics des erreurs

Les diagnostics d’erreurs intégrés de l’éditeur de code vous aident à identifier et à résoudre les problèmes en mettant en surbrillance les erreurs de langage TMDL dans l’éditeur de code, avec des messages détaillés qui fournissent des conseils sur leur résolution. En outre, un résumé des erreurs est disponible dans le volet Problèmes, ce qui permet de naviguer facilement vers l’emplacement d’erreur dans l’éditeur de code, comme illustré dans l’image suivante.

Capture d’écran des diagnostics d’erreur dans l’éditeur de code.

Appliquer des modifications au modèle sémantique

Lorsque vous êtes prêt, vous pouvez sélectionner le bouton Appliquer pour exécuter le script TMDL sur le modèle sémantique et appliquer vos modifications de code TMDL.

Capture d’écran de l’application de votre script à l’aide du bouton Appliquer dans l’éditeur de code.

En cas de réussite, une notification s’affiche et votre modification de modélisation est appliquée au modèle sémantique.

Capture d’écran de la bannière de réussite dans l’éditeur de code indiquant que les modifications ont été correctement appliquées.

En cas d’échec, une notification d’erreur s’affiche pour montrer que vos modifications de modélisation n’ont pas été appliquées au modèle sémantique. Vous pouvez afficher plus d’informations sur l’erreur en sélectionnant le lien Afficher les détails dans la notification, qui développe ensuite le volet Sortie et affiche les détails de l’erreur.

Capture d’écran de la bannière d’échec dans l’éditeur de code indiquant que les modifications n’ont pas réussi.

Remarque

La vue TMDL modifie uniquement les métadonnées du modèle sémantique, sans actualiser les données ni affecter le rapport. Si vos modifications nécessitent une actualisation des données, comme la modification d’une expression PowerQuery ou d’une expression de colonne calculée, vous devez actualiser manuellement la table ou le modèle pour que les modifications prennent effet. En outre, le changement de nom d’un champ dans la vue TMDL peut interrompre les visuels dans le rapport qui utilisent ce champ.

Aperçu des modifications apportées au modèle sémantique

La vue TMDL vous permet d’afficher un aperçu des modifications de script en affichant un aperçu du modèle sémantique avant et après l’exécution du script, illustré sous forme de différences de code TMDL. L’aperçu des modifications de script est particulièrement utile lors de la copie de scripts à partir d’autres sources, ce qui vous permet d’évaluer leur impact avant de les exécuter sur votre modèle sémantique.

La sélection du bouton Aperçu affiche une différence TMDL du modèle sémantique avant et après l’exécution du script TMDL dans l’onglet ouvert.

Capture d’écran du bouton d’aperçu pour afficher un aperçu des modifications de script.

Une fenêtre côte à côte apparaît dans le volet droit, comme illustré dans l’image suivante.

Capture d’écran du volet d’affichage d’aperçu pour les modifications de script en attente.

Des boîtes rouges et vertes mettent en surbrillance les modifications, avec les boîtes rouges indiquant les lignes supprimées ou modifiées, et les vertes indiquant les nouvelles lignes.

Capture d’écran des surbrillances rouges et vertes pour les modifications de script en attente.

Remarque

La comparaison n’est pas directement effectuée par rapport au script TMDL actuellement affiché, mais plutôt une comparaison complète du modèle sémantique avant et après l’exécution du script. Par conséquent, certaines propriétés peuvent être classées différemment de celles affichées dans l’onglet, en respectant l’ordre des propriétés/objets TMDL par défaut.

L'aperçu est en lecture seule, mais vous pouvez poursuivre la modification de votre script. Pour actualiser l’aperçu après les modifications, sélectionnez le bouton Mettre à jour l’aperçu, comme illustré dans la bannière de l’image suivante.

Capture d’écran du bouton d’aperçu de mise à jour.

Il y a une barre d'outils dans le coin supérieur droit de l'écran d'aperçu qui permet de naviguer dans toutes les différences de code, ce qui vous permet de basculer entre les différences en ligne ou côte à côte, d'afficher ou de masquer les régions inchangées, et de fermer la vue d'aperçu.

Capture d’écran de la barre d’outils pour l’aperçu du script.

Il existe quelques considérations à prendre en compte lors de l’aperçu des modifications apportées au modèle sémantique :

  • La vue TMDL réinitialise les configurations d’affichage par défaut sur chaque exécution en préversion.
  • Une préversion s’exécute uniquement avec une modification TMDL valide. Les scripts TMDL non valides n’exécutent pas d’aperçu et une erreur s’affiche dans le volet Sortie.

Onglets de script TMDL

Dans la vue TMDL, vous pouvez avoir plusieurs onglets de script à la fois, qui peuvent être renommés ou supprimés.

Capture d’écran de plusieurs onglets dans la vue T-M-D-L.

Le contenu des onglets d’affichage TMDL est enregistré dans le fichier de rapport lorsque vous enregistrez le rapport Power BI Desktop. Vous pouvez donc continuer là où vous avez quitté la prochaine fois que vous ouvrez le fichier de rapport Power BI Desktop. Lors de l’enregistrement dans un projet Power BI (PBIP), chaque onglet de script est enregistré sous forme de fichier .tmdl dans le dossier \TMDLScripts , comme illustré dans l’image suivante.

Capture d’écran de la structure de fichiers pour enregistrer des onglets dans un fichier Power BI Desktop.

Conseil / Astuce

Vous pouvez ouvrir et modifier des scripts TMDL dans Visual Studio Code et les recharger correctement après le redémarrage de Power BI Desktop.

Les volets Problèmes et sortie affichent des erreurs et des messages spécifiques à l’onglet script actuellement sélectionné et affiché. Le passage à un autre onglet de script TMDL actualise les deux volets avec des informations spécifiques à l’onglet sélectionné et actuellement affiché.

Vous pouvez sélectionner le bouton Effacer pour vider les messages du volet Sortie .

Capture d’écran du bouton Effacer utilisé pour vider les messages du volet de sortie.

Les messages sont conservés uniquement pour chaque session Power BI Desktop. Par conséquent, le redémarrage de Power BI Desktop efface tous les messages de sortie pour tous les onglets de script.

Message de mise à niveau du niveau de compatibilité

Le niveau de compatibilité d’un modèle sémantique Power BI détermine les fonctionnalités accessibles. La vue TMDL vous permet d’ajouter un objet ou une propriété Analysis Services, même s’il n’est pas disponible au niveau de compatibilité actuel. Lors de l’application d’une modification nécessitant une mise à niveau de niveau de compatibilité, la vue TMDL fournit une invite indiquant quels objets ou objets nécessitent la mise à niveau.

Capture d’écran de la vue TMDL dans Power BI avec une invite de mise à niveau au niveau de compatibilité. Le message indique que le niveau de compatibilité actuel de 1550 est inférieur au niveau requis de 1601 pour la propriété FormatStringDefinition et demande s’il faut mettre à niveau et réappliquer la modification.

Changement de nom d’objet avec la vue TMDL

Pour renommer un objet dans la vue TMDL, il est nécessaire de scripter son parent. Par exemple, le changement de nom d’une colonne nécessite un script de la table, tandis que le changement de nom d’une table nécessite un script de l’intégralité du modèle sémantique. En savoir plus sur la hiérarchie de modèle objet tabulaire dans le document suivant : hiérarchie de modèle objet tabulaire.

Avec la vue TMDL, le renommage en bloc peut être effectué efficacement à l’aide de modèles de recherche et de remplacement simples. Par exemple, vous pouvez renommer toutes les colonnes de table en minuscules en suivant ces étapes.

Ouvrez la vue TMDL, scriptez la table que vous envisagez de modifier.

Appuyez sur Ctrl+F pour ouvrir la boîte de dialogue Rechercher et remplacer, vérifiez que l’option Expression régulière est activée.

Capture d’écran de la vue TMDL dans Power BI montrant la fonctionnalité Rechercher et remplacer en cours d’utilisation. L’entrée Replace est active avec une option permettant de basculer entre les modes Rechercher et Remplacer, mise en surbrillance dans la barre d’outils au-dessus de l’éditeur de code.

Entrez les modèles suivants dans les champs rechercher et remplacer, puis sélectionnez Remplacer tout.

Action Modèle/remplacement
Rechercher (^\s+column\s+)(.+)
Remplacer $1\L$2

Capture d’écran d’un écran de configuration de modèle de données Power BI montrant une définition de table product avec deux colonnes : product (chaîne) et productkey (int64), ainsi que leurs propriétés de métadonnées.

Exécutez votre script TMDL pour renommer toutes les colonnes de table en minuscules instantanément :

Capture d’écran d’un tableau Produit Power BI montrant 14 colonnes, notamment la marque, la catégorie, la couleur, le fabricant, le produit, la clé de produit, la sous-catégorie, le coût unitaire, le prix unitaire et les attributs de poids.

Notez que le nom de colonne diffère de la propriété sourceColumn.

Capture d’écran d’une configuration de modèle de données Power BI montrant la définition de colonne productKey avec type de données int64, où la sourceColumn est mappée à ProductKey dans les données sources.

La synchronisation entre la table de modèle sémantique et la requête Power Query s’appuie sur sourceColumn, en conservant les noms indépendants. Lorsque vous ouvrez l’éditeur Power Query, il affiche les noms de colonnes qui correspondent à la sourceColumn, plutôt que le nom de colonne du modèle. En outre, le changement de nom d’une colonne dans l’interface utilisateur n’ajoute pas automatiquement une étape de renommage à la requête tant que sourceColumn et nom de colonne ne sont pas identiques.

Capture d’écran de l’Éditeur de requête Power BI montrant les données de produit avec des colonnes pour ProductKey, Product Code, Product et Manufacturer, avec 16 requêtes visibles dans le volet de navigation.

Vue TMDL et projet Power BI

Lorsque vous enregistrez votre travail en tant que projet Power BI (PBIP), vous accédez à vos métadonnées de définition de modèle sémantique en tant que fichiers TMDL, en fournissant un contrôle de code source et une expérience de co-développement utiles, tout en vous permettant d’apporter des modifications au modèle sémantique en dehors de Power BI Desktop. Toutefois, si vous modifiez les fichiers TMDL au sein du PBIP, vous devez redémarrer Power BI Desktop pour recharger ces modifications. En revanche, la vue TMDL suit un modèle mental de script, ce qui vous permet d’appliquer efficacement des modifications directement au modèle sémantique en cours de modification dans Power BI Desktop à l’aide de TMDL, que le format de fichier soit PBIX ou PBIP.

Vous pouvez intégrer en toute transparence les deux expériences. Par exemple, vous pouvez mettre à jour la définition TMDL dans PBIP pour des modifications rapides sans lancer Power BI Desktop et utiliser la vue TMDL lorsque Power BI Desktop est déjà ouvert pour implémenter efficacement une série de modifications apportées au modèle sémantique à l’aide de TMDL. Ces deux approches offrent une expérience de codage TMDL riche et cohérente.

Conseil / Astuce

Pour une expérience de création TMDL améliorée lors de la modification de fichiers TMDL en externe dans Visual Studio Code, utilisez l’extension TMDL Visual Studio Code. Cette extension fournit la mise en surbrillance sémantique DAX et Power Query, la saisie semi-automatique, les diagnostics, les actions de code, la mise en forme du code, la navigation dans la barre d’accès et la prise en charge de la localisation pour les documents TMDL.

Cas d'utilisation courants pour la vue TMDL

Scénario: Je dois réutiliser ou partager une table de modèle sémantique avec sa définition complète, y compris les colonnes, l’expression Power Query et trier par configuration, et d’autres dans un autre modèle sémantique.

Solution: Ouvrez le modèle sémantique avec la table, scriptez-le à l’aide de la vue TMDL. Copiez le script dans l’autre fenêtre Power BI Desktop, ouvrez l’onglet affichage TMDL et appliquez le script.



Scénario: J’ai nommé toutes mes tables avec les préfixes « dim_ » ou « fact_ ». J’aimerais supprimer ces préfixes sans mettre à jour manuellement chacune des plus de 100 tables.

Solution: Ouvrez la vue TMDL, scriptez le modèle sémantique, recherchez le préfixe (les expressions régulières sont prises en charge) et remplacez-le par un texte vide.



Scénario: Je dois créer une perspective dans mon modèle sémantique pour utiliser la fonctionnalité de visuels personnalisés. Toutefois, je ne peux pas le créer ou le modifier à l’aide de l’interface graphique de Power BI Desktop.

Solution: Ouvrez la vue TMDL, créez un nouvel onglet vide (ou utilisez le script à partir d’une perspective existante), puis créez ou modifiez la perspective à l’aide de TMDL. Cette méthode s’applique également à d’autres métadonnées de modèle sémantique qui n’ont pas d’interface graphique, telles que les traductions, les expressions de ligne de détail et d’autres.

createOrReplace
      perspective SalesView
        perspectiveTable Sales
            perspectiveMeasure 'Sales Amount'
            perspectiveMeasure 'Sales Qty'
            perspectiveColumn Quantity
            perspectiveColumn 'Amount'


Scénario: Je dois modifier l’expression Power Query de ma table sans déclencher d’actualisation.

Solution: Scriptez la table, modifiez l’expression Power Query et appliquez les modifications. La vue TMDL ne nécessite pas d’actualisation de vos données.



Scénario: J’ai besoin de basculer le mode de stockage de ma table de DirectQuery vers Importer, et vice versa

Solution: Scriptez la table, mettez à jour le mode partition et appliquez des modifications.



Scénario: Je dois sauvegarder ma définition de modèle sémantique avant d’apporter des modifications significatives et de revenir facilement à une définition précédente, si nécessaire.

Solution: Scriptez le modèle sémantique ou des parties spécifiques que vous souhaitez sauvegarder, apportez vos modifications dans d’autres vues et, si nécessaire, revenez à la vue TMDL pour restaurer les métadonnées précédentes en exécutant le script enregistré.



Considérations et limitations

  • Vous pouvez utiliser la vue TMDL pour modifier n’importe quel objet ou propriété dans un modèle sémantique. Toutefois, des modifications incomplètes ou incorrectes peuvent entraîner un comportement inattendu. Pour plus d’informations sur ces opérations, reportez-vous à l’article De création de modèles.
  • La palette de commandes affiche certaines commandes qui ne sont pas prises en charge actuellement.
  • La configuration initiale de l'intégration Git à partir de l'espace de travail n'inclut pas les scripts TMDL View sauvegardés dans le modèle sémantique publié. Pour en savoir plus, consultez l’article Fabric d'intégration Git.

Les articles suivants décrivent plus en détail TMDL et ses utilisations.