format PBIP (Power BI Project): modifier vos rapports à partir des métadonnées du fichier PBIR
Jun 28, 2024Microsoft a récemment ajouté un "mode développeur" à son logiciel Power BI Desktop, permettant de modifier les rapports en passant par un système de fichiers intermédiaires. Le rapport enregistré porte désormais le nom d'extension ".pbip" pour "projet".
Ce nouveau format de rapport fournit une structure de fichiers facile à contrôler qui améliore la collaboration des équipes de développement de rapports Power BI. Nous explorons dans cet article l'arborescence de ce nouveau format et en particulier l'exploitation de ses métadonnées contenues dans le fichier PBIR.
Arborescence du répertoire
Ouvert dans Visual Studio Code, le projet se décompose en deux parties formatées en JSON:
- Le modèle sémantique contenu dans un fichier "tmdl" (t pour tabular) et qui concerne l'évolution du modèle de données. Un article a déjà été écrit sur l'exploitation de ce fichier avec ChatGPT.
- Les métadonnées du rapport dans un fichier "PBIR" (r pour rapport), le sujet de notre article
Pour arriver à ce niveau de détail et pouvoir agir sur le code source, commencez par créer votre projet en suivant les instruction ci-dessous.
Convertir en format PBIP
L'enregistrement en tant que PBIP est actuellement en version de test (preview). Avant de l'essayer, vous devez d'abord l'activer dans Power BI Desktop : allez dans Fichier > Options et paramètres > Options > Fonctionnalités de prévisualisation et cochez la case à côté de "Stocker les rapports en utilisant le format de métadonnées amélioré (PBIR)”. (File > Options and settings > Options > Preview features et cochez la case “Store reports using enhanced metadata format (PBIR)”)
Lorsque l'aperçu est activé, toutes les données du rapport seront stockées dans un dossier nommé « \definition » lors de l'enregistrement au format PBIP :
Contrôle de la source et co-développement
Un avantage significatif de faire évoluer les rapports en passant par les fichiers de projet Power BI (PBIP) est son intégration avec Git avec plus de contrôle sur les développements, la facilitation de la collaboration des développeurs et la mise en place de procédures de déploiement.
Analysons plus en détails la structure du fichier:
Dans les déclarations du schéma JSON en haut du document se situe une URL, redirigeant vers la documentation des propriétés disponibles et leur signification. Json a comme avantage d'être bien intégré par les éditeurs de code tels que Visual Studio Code, fournissant ainsi l'autocomplétion et la validation lors de l'édition de ce type de fichier. Pour plus de détails sur les schémas JSON PBIR, veuillez vous référer à la documentation.
Chaque page, visuel, signet, etc., est organisé en fichiers individuels distincts au sein d'une structure de dossiers, ce qui facilite grandement la résolution des conflits de co-développement.
Stratégie de développement
Le format PBIR améliore non seulement le contrôle de la source et les expériences de co-développement, et il ouvre de nouvelles possibilités pour améliorer la stratégie de développement des rapports comme par exemple le copier/coller de code source, l'utilisation de script/moulinette automatique, retro codage, contrôle de qualité de code, etc..
Notez que même si ces modifications "externes" sont prises en charge, il s'agit d'une opération avancée et que toute modification incorrecte peut entraîner des erreurs lors de la réouverture du rapport dans Power BI Desktop. Pour plus de détails sur les modifications externes PBIR, reportez-vous à la documentation.
Assurer la cohérence visuelle entre les pages
Il est très fréquent de concevoir un rapport dans lequel un ensemble de visuels ayant exactement la même configuration est dupliqué sur toutes les pages. Il s'agit par exemple de logos, de slicers et de titres.
On peut reproduire les visuels en les copiant et en les collant à chaque fois que l'on effectue une modification. Toutefois, cette tâche peut sembler lourde et entraîner des problèmes tels que des positions mal alignées ou des signets endommagés. Avec le format PBIR, il y a une meilleure façon de procéder : appliquez vos modifications à une page, puis copiez les dossiers de visuels sur d'autres pages, soit manuellement, soit à l'aide de scripts.
Commencez par localiser la page et les dossiers visuels à copier. Dans le répertoire de fichier PBIR, chaque page et chaque visuel sont stockés dans des dossiers distincts. Recherchez le nom d'affichage de la page dans chaque fichier page.json :
Les visuels n'ont pas de nom d'affichage, il faut donc vérifier des propriétés telles que visualType, title et position pour identifier le bon dossier visuel.
Pour plus de clarté la prochaine fois, vous pouvez changer le nom de la page et du dossier visuel en quelque chose de plus descriptif :
Après avoir renommé les dossiers, redémarrez Power BI Desktop pour être assuré qu'il a bien conservé les nouveaux noms lors de l'enregistrement.
Lorsque vous modifiez les paramètres visuels de la "page 1", vous pouvez facilement copier et coller les dossiers visuels dans toutes les pages du rapport. Cela garantit automatiquement la cohérence entre les pages, car l'ensemble de la configuration visuelle est copiée. Il n'est donc pas nécessaire de synchroniser manuellement les modifications sur toutes les pages à l'aide de Power BI Desktop. Cette méthode est particulièrement efficace pour les rapports volumineux comportant de nombreuses pages.
Page 2 avant :
Page 2 après :
Modifications par lots
Si vous souhaitez appliquer certaines modifications à un rapport, comme supprimer les interactions visuelles ou cacher les filtres de niveau visuel dans toutes les pages et tous les visuels, vous pouvez le faire par lot en exploitant le format de fichier PBIR, là configurer ces propriétés à la main prendrait des heures. Vous aurez simplement besoin d'identifier le changement pour ensuite l'appliquer à tous les fichiers, soit manuellement, soit à l'aide d'un script.
Par exemple, pour vous assurer que tous les filtres de niveau visuel sont masqués, commencez par identifier la propriété visuelle responsable. Utilisez Power BI Desktop pour masquer le filtre, enregistrez le fichier et examinez les modifications dans le fichier report (or visual).json. Remarquerez que la propriété "isHiddenInViewMode" responsable du masquage du filtre de niveau visuel a comme valeur "true":
Vous pouvez ensuite appliquer cette configuration à l'aide d'un script, en parcourant en boucle tous les fichiers visuels du rapport et en appliquant à la propriété "isHiddenInViewMode" le valeur "true" pour tous les filtres. Voici un exemple de script PowerShell qui accomplit cette tâche :
$definitionPath = "Chemin du dossier de définition de la PBIR" foreach ($file in Get-ChildItem $definitionPath -Recurse -Filter report.json) { $json = Get-Content $file.FullName | ConvertFrom-Json if ($json.filterConfig.filters) { foreach ($filter in $json.filterConfig.filters) { $filter | Add-Member -MemberType NoteProperty -Name "isHiddenInViewMode" -Value $true -Force } $json | ConvertTo-Json -Depth 100 | Set-Content $file.FullName } }
Masquer la barre de titre de tous les visuels d'une page spécifique
Un autre exemple d'application serait de masquer la barre de titre des visuels dans un rapport Power BI (PBIR) peut aider à simplifier l'apparence du rapport et à mettre davantage en valeur les données elles-mêmes. Cela peut être particulièrement utile pour les pages contenant plusieurs visuels, ou pour créer une visualisation plus immersive.
$definitionPath ="Chemin du dossier de définition de la PBIR" $targetPageName = "nom du page" $filePage = Get-ChildItem "$definitionPath\nom du fichier.json" –Filter $targetPageName -File $pageJson = Get-Content $filePage.FullName | ConvertFrom-Json foreach ($visual in $pageJson.visuals) { $visual.visual.objects.general.properties.title.displayMode = "Hidden" } $pageJson | ConvertTo-Json -Depth 100 | Set-Content $filePage.FullName
Avantages et limitations du rapport PBIR:
En résumé, l'exploitation du format de rapport PBIR permet:
- Le versioning et collaboration améliorés : PBIR stocke les rapports sous forme de fichiers JSON, ce qui facilite le suivi des modifications et la collaboration sur des rapports entre plusieurs utilisateurs. Les outils de contrôle de version comme Git peuvent être utilisés pour gérer les modifications apportées aux fichiers PBIR.
- Une meilleure maintenabilité : La structure de fichier JSON de PBIR est plus lisible et plus facile à modifier que le format .pbix binaire. Cela peut simplifier la maintenance et la personnalisation des rapports complexes.
- Fonctionnalités étendues : PBIR prend en charge des fonctionnalités non disponibles dans le format .pbix, telles que la définition de valeurs par défaut pour les slicers et la modification de l'apparence des éléments du rapport via des scripts.
Limitations du PBIR:
- Publication limitée : Power BI Desktop ne permet pas de publier directement des rapports au format PBIR vers le service Power BI (juin 2024). Vous devez exporter le PBIR et le déployer manuellement.
- Complexité accrue : La structure JSON de PBIR nécessite une compréhension plus approfondie de la structure interne du rapport par rapport au format .pbix. Cela peut être un obstacle pour les utilisateurs novices de Power BI.
- Power BI Embedded : Ne peut pas être utilisé dans Power BI Embedded.
Conclusion
Le PBIR est un choix stratégique pour les utilisateurs expérimentés qui ont besoin d'un meilleur contrôle des versions, de modification à grande échelle et d'une structure de fichier détaillée. Le format .pbix reste incontournable pour voir les visuels dans les outils client web et aussi pour ceux qui recherchent une publication simple et une utilisation immédiate de toutes les fonctionnalités. Pour conclure il est essentiel de prendre d'évaluer vos besoins, les solutions possibles ainsi que les avantages et les limites des rapports PBIR avant de convertir votre rapport en projet et d'exploiter ses metadonnées.