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
BilâlÀ lire aussi
Capacité Premium, PPU ou Fabric : ce qu'il faut activer avant d'automatiser Power BI
Power BI Pro ne suffit pas pour créer ou modifier des mesures par API. Le point de passage obligé : une capacité avec l'endpoint XMLA en lecture/écriture activé.
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])*100Si 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.