Retour au blog

Dérive de mesure : détecter qu'un client a modifié votre DAX à la main

Un client corrige une mesure directement dans son modèle, et votre prochain déploiement l'écrase en silence. Comment détecter cette dérive avant qu'elle ne fasse des dégâts.

Publié par

Le scénario qui fait mal

Vous déployez une mesure chez un client. Quelques semaines plus tard, quelqu'un côté client, un analyste, un autre consultant, corrige cette mesure directement dans Power BI Desktop, parce qu'un cas particulier n'était pas géré. Le rapport a l'air bon. Puis vous redéployez une mise à jour de template, sans savoir que cette mesure a été modifiée, et vous écrasez la correction. Le bug réapparaît, et personne ne comprend pourquoi.

Ce qu'on appelle une dérive

Une dérive, c'est simplement un écart entre l'expression DAX réellement présente dans le modèle du client et celle que vous avez déployée en dernier. Elle peut être bénigne (un correctif légitime) ou dangereuse (une modification qui casse quelque chose ailleurs). Dans les deux cas, le danger n'est pas la modification elle-même, c'est de l'écraser sans le savoir.

Comment la détecter

Le principe est direct : comparer, mesure par mesure, l'expression réellement déployée chez le client à celle que vous avez vous-même poussée la dernière fois.

Attendu (déployé par vous)
  DIVIDE([marge],[ca_total],0)

Réel (modifié côté client)
  DIVIDE([marge],[ca_total])*100

Si les deux expressions diffèrent, il y a dérive. Cette comparaison peut se faire à la demande, avant un déploiement, ou automatiquement de façon récurrente pour être alerté sans avoir à y penser.

La bonne réaction : ne rien écraser en silence

Une fois la dérive détectée, la mesure concernée ne doit pas être écrasée par défaut au prochain déploiement. La case correspondante doit démarrer décochée dans l'aperçu, à vous de décider, après avoir vu le diff, si vous voulez reprendre la main ou garder la version modifiée du client. C'est le même principe qu'un aperçu avant chaque push : rien ne s'écrit tant que vous n'avez pas vu, et validé, ce qui va changer.

Dérive de mesure : détecter qu'un client a modifié votre DAX à la main