TMDL dans Power BI : 5 cas d'usage concrets pour transformer vos projets

Découvrez comment exploiter la vue TMDL pour gagner en productivité sur vos modèles sémantiques Power BI.

Nous contacter
createOrReplace

  table Ventes
    measure 'Total Ventes' =
      SUM(Ventes[Montant])
      formatString: #,##0.00 €

    measure 'Croissance YoY' =
      DIVIDE(
        [Total Ventes] - [LY],
        [LY]
      )
      formatString: #,##0.0 %

Vous travaillez sur des modèles Power BI complexes et vous perdez du temps à naviguer entre les interfaces graphiques pour modifier vos mesures, relations et propriétés ? TMDL change la donne.

TMDL (Tabular Model Definition Language) est un langage texte lisible qui décrit l'intégralité d'un modèle sémantique Power BI : tables, colonnes, mesures DAX, expressions Power Query, relations, perspectives, traductions - tout. Depuis septembre 2025, la vue TMDL est Generally Available dans Power BI Desktop. Elle est aussi disponible en preview directement dans le navigateur via le service Power BI.

Dans cet article, vous découvrirez ce qu'est réellement TMDL, comment l'activer, et surtout 5 cas d'usage concrets avec des exemples de code pour l'exploiter immédiatement dans vos projets.

Interface principale de la vue TMDL dans Power BI Desktop
Vue d'ensemble de l'interface TMDL dans Power BI Desktop

Qu'est-ce que TMDL et pourquoi c'est un tournant ?

TMDL est la représentation textuelle de votre modèle sémantique Power BI. Chaque table, chaque mesure, chaque relation est décrite dans un format structuré, lisible par un humain et modifiable comme du code.

Ce n'est pas un nouveau langage à apprendre de zéro. Si vous savez lire du DAX et un fichier de configuration YAML, vous savez déjà lire du TMDL.

TMDL vs l'interface graphique vs Tabular Editor

Critère Interface graphique Tabular Editor Vue TMDL
Modifications en masse Une par une, clic par clic Oui, via l'éditeur tabulaire Oui, via find & replace dans le code
Propriétés cachées Non Oui Oui, nativement
Versioning Git Impossible (.pbix binaire) Oui, via dossier TMDL externe Oui, via format PBIP
Partage de scripts Captures d'écran Export/import JSON Copier-coller du code TMDL
Courbe d'apprentissage Faible Moyenne Faible à moyenne
Outil tiers requis Non Oui Non

Le point clé : TMDL rend accessibles nativement dans Power BI Desktop des capacités qui nécessitaient auparavant Tabular Editor ou des outils externes. Cela ne remplace pas Tabular Editor pour des workflows avancés, mais pour 80 % des tâches quotidiennes, la vue TMDL suffit.

Activer la vue TMDL dans Power BI Desktop

La vue TMDL est disponible pour tous les utilisateurs Power BI depuis septembre 2025. Si vous utilisez une version récente de Power BI Desktop, elle est activée par défaut.

Si ce n'est pas le cas :

  1. Allez dans Fichier → Options et paramètres → Options → Fonctionnalités en preview
  2. Cochez Vue TMDL
  3. Redémarrez Power BI Desktop
  4. L'icône TMDL apparaît dans la barre latérale gauche
Activation de la vue TMDL dans Power BI Desktop
Processus d'activation de la fonctionnalité vue TMDL

Une fois dans la vue TMDL, glissez n'importe quel objet (table, mesure, colonne) depuis le volet Données vers l'éditeur de code. Power BI génère automatiquement le script createOrReplace correspondant.

L'éditeur intègre la coloration syntaxique DAX et Power Query, l'autocomplétion, les tooltips au survol et le formatage automatique (SHIFT + ALT + F).

Comprendre la syntaxe TMDL

Un script TMDL suit une structure hiérarchique simple. Voici un exemple concret :

TMDL
createOrReplace

	table Ventes
		lineageTag: 97143e5b-7736-4fcb-8042-26b92b1f5684

		column Montant
			dataType: decimal
			formatString: #,##0.00

		column DateVente
			dataType: dateTime
			formatString: dd/MM/yyyy

		measure 'Total Ventes' = SUM(Ventes[Montant])
			formatString: #,##0.00 €

		measure 'Croissance YoY' =
			VAR ValeurPrecedente =
				CALCULATE(
					[Total Ventes],
					SAMEPERIODLASTYEAR(Calendrier[Date])
				)
			RETURN
				DIVIDE([Total Ventes] - ValeurPrecedente, ValeurPrecedente)
			formatString: #,##0.0 %

Quelques règles à retenir :

  • L'indentation définit la hiérarchie (comme en Python ou YAML)
  • createOrReplace indique que le script remplacera l'objet existant à l'application
  • Chaque propriété (dataType, formatString…) est déclarée sous l'objet qu'elle qualifie
  • Les expressions DAX s'écrivent directement après le signe =
Exemple de script TMDL avec coloration syntaxique
Exemple de script TMDL avec coloration syntaxique dans Power BI Desktop

Avant d'appliquer un script, Power BI affiche un diff qui montre précisément ce qui va changer. Vous validez visuellement avant d'impacter le modèle - pas de mauvaise surprise.

5 cas d'usage concrets de TMDL

1. Modifications en masse avec Find & Replace

C'est le cas d'usage le plus immédiat. Vous devez renommer un display folder sur 30 mesures ? Changer le formatString de toutes vos mesures financières ? Mettre à jour une référence de table après un refactoring ?

Exemple : changer le dossier d'affichage de toutes les mesures d'une table

  1. Glissez la table entière dans la vue TMDL
  2. Utilisez CTRL+H (Find & Replace)
  3. Remplacez displayFolder: Finance par displayFolder: Finance\KPIs
  4. Prévisualisez le diff → Appliquez

En interface graphique, cette opération nécessite de modifier chaque mesure individuellement. En TMDL, c'est fait en 10 secondes.

Autre exemple courant : renommer des colonnes en masse

Avec le Find & Replace regex, vous pouvez supprimer les espaces de tous les noms de colonnes d'un coup. Power BI Desktop maintient la correspondance entre le nom de la colonne dans le modèle et la sourceColumn en Power Query - pas de casse.

2. Accéder aux propriétés cachées de votre modèle

L'interface graphique de Power BI Desktop n'expose pas toutes les propriétés du modèle sémantique. TMDL les rend accessibles sans outil tiers.

Detail Rows Definition - Personnalise ce que l'utilisateur voit quand il fait "Afficher les détails" sur une valeur dans Excel ou Power BI. Sans cette propriété, l'utilisateur reçoit toutes les colonnes brutes. Avec, vous contrôlez précisément les colonnes retournées.

TMDL
measure 'Total Ventes' = SUM(Ventes[Montant])
	formatString: #,##0.00 €
	detailRowsDefinition =
		SELECTCOLUMNS(
			Ventes,
			"Date", Ventes[DateVente],
			"Client", Ventes[NomClient],
			"Montant", Ventes[Montant]
		)

isAvailableInMdx - Mettre cette propriété à false sur des colonnes techniques réduit la consommation mémoire et nettoie l'expérience "Analyser dans Excel".

TMDL
column ID_Technique
	dataType: int64
	isHidden: true
	isAvailableInMdx: false

isPrivate - Cache une table entière des outils clients (utile pour les tables intermédiaires de calcul).

Perspectives - Créez et gérez des perspectives directement en TMDL pour filtrer ce que voit chaque groupe d'utilisateurs via "Personnaliser les visuels".

3. Partager et réutiliser des composants de modèle

TMDL transforme vos composants de modèle en blocs de code portables. Un Calculation Group, une table calendrier, un ensemble de mesures Time Intelligence - tout devient un script que vous pouvez copier-coller, stocker et partager.

Workflow concret :

  1. Scriptez votre table calendrier en TMDL
  2. Stockez le fichier .tmdl dans un dossier SharePoint ou un repo Git partagé
  3. Un collègue ouvre un nouveau modèle, colle le script dans la vue TMDL, applique → la table est créée instantanément avec toutes ses colonnes, hiérarchies et mesures

Exemple : script d'une table calendrier réutilisable

TMDL
createOrReplace

	table Calendrier
		lineageTag: a1b2c3d4-e5f6-7890-abcd-ef1234567890
		dataCategory: Time

		column Date
			dataType: dateTime
			isKey: true
			formatString: dd/MM/yyyy

		column Annee
			dataType: int64

		column Mois
			dataType: int64
			sortByColumn: Date

		column NomMois
			dataType: string
			sortByColumn: Mois

		hierarchy 'Hiérarchie Date'
			level Annee
				column: Annee
			level Mois
				column: NomMois

Fini les captures d'écran dans Teams pour partager un modèle. Le code est la documentation.

4. Éditer Power Query sans ouvrir l'éditeur

La vue TMDL expose les expressions M (Power Query) de chaque partition. Vous pouvez les lire et les modifier directement dans l'éditeur de code, sans ouvrir la fenêtre Power Query Editor - qui est souvent lente à charger sur les gros modèles.

Exemple : modifier la source d'une table

TMDL / Power Query M
createOrReplace

	table Ventes
		partition Ventes = m
			mode: import
			expression =
				let
					Source = Sql.Database("serveur-prod.database.windows.net", "DW_Prod"),
					Ventes = Source{[Schema="dbo", Item="FACT_Ventes"]}[Data]
				in
					Ventes

Pour pointer vers un autre environnement, modifiez directement la chaîne de connexion dans le script. Pratique pour switcher entre Dev et Prod sans naviguer dans l'interface Power Query.

⚠️ Attention

Si vous modifiez une expression Power Query, un refresh manuel de la table est nécessaire pour que les changements prennent effet.

5. Préparer le terrain pour le versioning Git (PBIP)

Le format PBIP (Power BI Project) décompose votre fichier .pbix en fichiers texte, dont des fichiers .tmdl. C'est la base du versioning Git pour Power BI.

La vue TMDL dans Power BI Desktop est directement alignée avec ce format. Quand vous sauvegardez en PBIP :

  • Chaque script dans la vue TMDL est stocké comme un fichier .tmdl dans le dossier \TMDLScripts
  • Vous pouvez éditer ces fichiers dans VS Code (avec l'extension TMDL) et ils se rechargent à la réouverture dans Power BI Desktop
  • Les diffs Git deviennent lisibles : vous voyez exactement quelle mesure a changé, quelle propriété a été modifiée

Workflow Git typique :

  1. Sauvegardez votre rapport en format PBIP
  2. Initialisez un repo Git dans le dossier du projet
  3. Commitez vos fichiers .tmdl
  4. Chaque modification de modèle = un commit lisible
  5. Les pull requests permettent la revue de code entre développeurs BI

C'est le passage d'une logique "un fichier binaire qu'on s'envoie par mail" à une logique "code versionné et reviewé en équipe".

TMDL sur le web : la prochaine étape

Depuis mars 2025, Microsoft a lancé en preview TMDL View on the Web - la possibilité d'éditer vos modèles sémantiques directement dans le navigateur via le service Power BI.

Cela ouvre la porte à des modifications rapides en production sans télécharger le modèle ni ouvrir Power BI Desktop. L'éditeur web supporte l'édition de propriétés, les partitions, et les propriétés avancées comme isAvailableInMdx.

C'est encore en preview, mais la direction est claire : le code-first devient le standard pour la modélisation sémantique dans l'écosystème Power BI.

Quand utiliser TMDL - et quand s'en passer

TMDL n'est pas la réponse à tout. Voici un guide décisionnel rapide :

Situation Outil recommandé
Créer un modèle de zéro (tables, relations) Interface graphique
Modifier 1-2 mesures Interface graphique ou DAX Query View
Modifier 20+ mesures / propriétés en masse Vue TMDL
Accéder à des propriétés cachées Vue TMDL ou Tabular Editor
Pipeline CI/CD complet PBIP + Git + Tabular Editor
Partager un composant de modèle Vue TMDL (copier-coller le script)
Audit rapide de la structure d'un modèle Vue TMDL (scripter et lire)

L'idée n'est pas de tout faire en TMDL, mais de savoir quand c'est le bon outil. Pour les modifications en masse, l'accès aux propriétés cachées et le partage de scripts, c'est imbattable.

Conclusion

TMDL transforme Power BI Desktop d'un outil purement graphique en un environnement de développement professionnel. Les 5 cas d'usage qu'on a vus - modifications en masse, propriétés cachées, réutilisation de composants, édition Power Query et versioning Git - couvrent des problèmes concrets que tout développeur BI rencontre au quotidien.

La fonctionnalité est GA, gratuite, et ne demande aucun outil externe. Si vous ne l'avez pas encore essayée, glissez une table dans la vue TMDL et explorez. C'est le meilleur moyen de comprendre la valeur ajoutée.

Vous souhaitez structurer vos projets Power BI avec les meilleures pratiques de développement ?

Nous accompagnons nos clients dans la mise en place de workflows professionnels (versioning, CI/CD, standards de modélisation) adaptés à leur contexte.


Contactez l'équipe Datapilot

Conseil d'expert

Pour une utilisation optimale de TMDL, nous vous recommandons d'utiliser Visual Studio Code avec l'extension "Power BI TMDL" qui offre la coloration syntaxique et l'autocomplétion spécifiques à ce langage.

Merci !

Votre accès au reporting financier interactif est prêt.
Explorez vos marges, votre rentabilité, vos tendances mensuelles et votre trésorerie comme dans un reporting PME réel.

Accédez gratuitement à notre reporting financier interactif

Découvrez un exemple complet de dashboard Power BI utilisé par des PME pour piloter leur activité.