Intégrer un rapport Power BI dans un formulaire principal d’application pilotée par modèle
Vous pouvez utiliser des rapports Power BI dans des applications pilotées par modèle Power Apps pour apporter des rapports et des analyses enrichis à vos formulaires principaux et permettre à vos utilisateurs d’en faire plus. Cela permet d’exploiter pleinement le regroupement des données entre différents systèmes, et de les personnaliser dans le contexte d’un enregistrement unique.
Configuration requise
L’intégration du contenu Power BI est une fonctionnalité optionnelle qui est désactivé sur tous les environnements par défaut. Avant de pouvoir intégrer du contenu Power BI, vous devez l’activer. Informations complémentaires : Activation des visualisations Power BI dans l’organisation.
Cette fonctionnalité nécessite d’exporter une solution, de la modifier pour remplacer l’extrait de code XML, puis de la réimporter dans l’environnement. Assurez-vous d’importer les modifications dans votre environnement de développement via une solution non gérée uniquement. Accédez à Importer, mettre à jour et exporter des solutions pour obtenir des instructions sur l’installation d’une mise à jour dans une solution non gérée existante.
Intégrer sans filtrage contextuel
Vous pouvez utiliser les rapports Power BI en les intégrant afin d’obtenir exactement le même rapport. Cela ne requiert pas de les placer dans un contexte du formulaire basé sur le modèle actuel et, par conséquent, vous obtenez le même rapport ou vignette sur tous les enregistrements de la table. Par exemple, le rapport suivant illustre la situation géographique de tous les comptes simultanément, et est utile pour indiquer les informations résumées.
Vous pouvez personnaliser un nœud controls
XML de formulaire principal afin qu’il puisse héberger un rapport Power BI intégré et une vignette en procédant comme suit :
Dans votre environnement de développement, créez une solution et ajoutez la table qui contient le formulaire principal où vous souhaitez intégrer le rapport Power BI intégré à afficher. Choisissez l’option Sélectionner des composants lorsque vous ajoutez la table à la solution. Ensuite, ajoutez simplement le formulaire principal de la table.
Modifiez le formulaire principal de la table dans votre solution et ajoutez une sous-grille d’espace réservé où vous souhaitez incorporer votre rapport Power BI.
- Mettez à jour l’étiquette et le nom de votre sous-grille dans le concepteur de formulaires.
Exportez la solution en tant que solution non gérée et extrayez tous les fichiers du fichier zip du package de solution. Ensuite, modifiez le fichier customizations.xml et recherchez le nom de votre sous-grille. Remplacez le code XML fourni dans le bloc
<control>
dans le fichier customizations.xml. Lerowspan
dans le nœud parentcell
peut être ajusté pour modifier la taille du rapport Power BI intégré.<cell id="{7d18b61c-c588-136c-aee7-03e5e74a09a1}" showlabel="true" rowspan="20" colspan="1" auto="false" solutionaction="Added"> <labels> <label languagecode="1033" description="Accounts (Parent Account)"/> </labels> <control id="unfilteredreport" classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}"> <parameters> <PowerBIGroupId>00000000-0000-0000-0000-000000000000</PowerBIGroupId> <PowerBIReportId>544c4162-6773-4944-900c-abfd075f6081</PowerBIReportId> <TileUrl>https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081</TileUrl> </parameters> </control> </cell>
Important
Assurez-vous d’utiliser le contrôle
classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}"
comme indiqué dans l’exemple XML.- Apportez les modifications suivantes au formulaire XML que vous avez copié dans le fichier customizations.xml pour votre rapport Power BI. Ce tableau décrit les valeurs que vous devez remplacer par les éléments dans l’exemple XML précédent.
Property Description PowerBIGroupId L’ID de l’espace de travail Power BI. Si votre rapport se trouve dans Mon espace de travail, alors l’ID de l’espace de travail est 00000000-0000-0000-0000-000000000000. Sinon, ajoutez l’ID de l’espace de travail. Vous trouverez l’ID de l’espace de travail dans l’URL de service Power BI. Plus d’informations : Rechercher les identifiants de l’espace de travail Power BI et de rapport. PowerBIReportId L’ID de rapport Power BI. Remplacez-le par le rapport que vous voulez intégrer. Vous trouverez l’ID de votre rapport dans l’URL de service Power BI. Plus d’informations : Rechercher les identifiants de l’espace de travail Power BI et de rapport TileUrl URL du rapport Power BI que vous souhaitez intégrer. Assurez-vous d’utiliser le nom de sous-domaine Power BI (remplacez app.powerbi.com par le vôtre) et l’ID du rapport corrects (remplacez reportId=544c4162-6773-4944-900c-abfd075f6081 par le vôtre). Par exemple, https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081
- Apportez les modifications suivantes au formulaire XML que vous avez copié dans le fichier customizations.xml pour votre rapport Power BI. Ce tableau décrit les valeurs que vous devez remplacer par les éléments dans l’exemple XML précédent.
Créez un fichier zip à partir de tous les fichiers de solution précédemment extraits. Ensuite, importez la solution dans l’environnement de développement.
Intégrer avec filtrage contextuel
Vous pouvez rendre les rapports et vignettes Power BI plus significatifs en appliquant des filtres contextuels au formulaire basé sur le modèle actuel, de sorte que le rapport ou la vignette soient filtrés selon les attributs de la ligne actuelle. Par exemple, le rapport suivant illustre la situation géographique d’un compte, en filtrant le rapport Power BI avec le nom du compte. Cela permet un rapport unique pour afficher des informations contextualisées pour toutes les lignes de la table.
Le filtrage est possible en ajoutant l’élément <PowerBIFilter>
au bloc <parameter>
comme illustré ci-dessous. Vous pouvez utiliser n’importe quel attribut de la table du formulaire pour créer l’expression de filtre. Informations complémentaires : Construction de filtres pour comprendre comment créer vos propres filtres.
<control id="filteredreport" classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}">
<parameters>
<PowerBIGroupId>00000000-0000-0000-0000-000000000000</PowerBIGroupId>
<PowerBIReportId>544c4162-6773-4944-900c-abfd075f6081</PowerBIReportId>
<TileUrl>https://xyz.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081</TileUrl>
<PowerBIFilter>{"Filter": "[{\"$schema\":\"basic\",\"target\":{\"table\":\"table_name_of_power_bi_dataset\",\"column\":\"power_bi_field\"},\"operator\":\"In\",\"values\":[$a],\"filterType\":1}]", "Alias": {"$a": "field_name_in_powerapps_to_filter"}}</PowerBIFilter>
</parameters>
</control>
Notez que cette opération utilise le même contrôle que l’intégration de rapport non filtré, par conséquent l’ID de classe de contrôle reste inchangée.
Ce tableau décrit toutes les propriétés supplémentaires utilisées dans l’exemple XML précédent.
Propriété | Description |
---|---|
PowerBIFilter | L’expression de filtre qui met dans un contexte le rapport Power BI en transmettant les attributs du formulaire en tant que paramètres. Pour le rendre plus accessible en lecture, celui-ci est construit comme indiqué ci-dessous. L’expression de filtre ne peut pas être une liste de valeurs séparées par des virgules. |
{
"Filter": "[{
\"$schema\":\"basic\",
\"target\":{
\"table\":\"table_name_of_power_bi_dataset\",
\"column\":\"power_bi_field\"
},
\"operator\":\"In\",
\"values\":[$a, $b],
\"filterType\":1
}]",
"Alias": {
"$a": "field1_name_in_powerapps_to_filter",
"$b":"field2_name_in_powerapps_to_filter"
}
}
La partie cible de l’expression précédente identifie la table et la colonne auxquelles appliquer des filtres. L’opérateur identifie la logique et les valeurs identifient les données transmises depuis l’application basée sur une modèle Power Apps. Pour paramétrer de manière générique, les valeurs sont construites à l’aide d’alias. Dans l’expression précédente, les valeurs firstname et lastname d’un compte sont transmises, et chacune est recherchée dans la colonne Nom du compte du rapport Power BI. Notez que firstname et lastname sont des noms d’attributs uniques de la table Compte, dont la valeur est transmise ici.
Vous pouvez créer des expressions de filtres plus complexes en regardant des exemples dans Construction de filtres et en fournissant des valeurs appropriées à $schema et à filterType. Assurez-vous d’échapper chaque littéral dans la partie du filtre en utilisant ", afin que le JSON soit généré correctement.
Rechercher les identifiants de l’espace de travail Power BI et de rapport
- L’ID d’espace de travail pour cet exemple est efc85277-2bdb-47bc-9762-363f64335108.
- L’ID de rapport pour cet exemple est 643ab643-7126-4a57-bd82-ca8f1fb676fc.
Problèmes connus et limitations
Cette intégration est disponible uniquement dans le client Unified Interface, sur les navigateurs web et les appareils mobiles pris en charge.
L’ouverture de ce formulaire dans le concepteur de formulaires Power Apps n’affichera pas le contrôle de manière significative. Cela est dû au fait que le contrôle est personnalisé en dehors du concepteur de formulaires.
Les utilisateurs seront authentifiés dans Power BI automatiquement avec leur nom d’utilisateur et leur mot de passe Power Apps. Si un compte Power BI avec des informations d’identification correspondantes n’existe pas, une invite de connexion apparaît comme décrit ici.
Aucune donnée ne s’affiche si un compte non valide est utilisé pour se connecter à Power BI. Pour vous connecter avec des informations d’identification correctes, déconnectez-vous et reconnectez-vous.
La vue des données du rapport affichées dans Power Apps est la même que dans Power BI, et les privilèges et rôles de sécurité Power Apps n’affectent pas les données affichées. Par conséquent, les données sont essentiellement identiques à ce que le créateur du jeu de données Power BI verrait. Pour appliquer des restrictions d’accès aux données semblables aux rôles et équipes de sécurité Power Apps, utilisez Sécurité au niveau de la ligne avec Power BI.
Si le formulaire n’affiche pas le rapport Power BI après l’importation de la solution et une fois les personnalisations publiées, ouvrez-le dans l’éditeur de formulaires basé sur des modèles et enregistrez-le, de sorte que le formulaire JSON soit généré à nouveau.
L’incorporation d’une vignette Power BI dans un formulaire est uniquement prise en charge sans filtrage contextuel.
L’intégration d’un rapport Power BI ne prend pas en charge les références entre clients. Par exemple, la tentative d’incorporation d’un rapport Power BI appartenant au client Contoso dans une application pilotée par modèle appartenant au client Fabrikam n’est pas actuellement prise en charge, même si le rapport incorporé a été partagé avec des utilisateurs dans le client Fabrikam via Power BI.
Les rapports épinglés dans le cadre des tableaux de bord Power BI ne sont pas censés être interactifs. Si vous souhaitez avoir des rapports Power BI interactifs, incorporez-les directement au lieu de les épingler à un tableau de bord.
Problèmes courants
- L’ID de groupe n’est pas spécifié dans le nœud
TileUrl
des paramètres de contrôle lorsqu’il peut être nécessaire. Cet exemple inclut un ID de groupe.
<parameters>
<PowerBIGroupId>fd266a4c-9a02-4553-9310-80e05ee844f3</PowerBIGroupId>
<PowerBIReportId>544c4162-6773-4944-900c-abfd075f6081</PowerBIReportId>
<TileUrl>https://xyz.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081&groupId=fd266a4c-9a02-4553-9310-80e05ee844f3</TileUrl>
</parameters>
- Les champs ont différents types de données dans Power BI et Dataverse. Ils doivent être du même type, comme une chaîne dans Power BI et une chaîne dans Dataverse.
- Les champs de chaîne n’ont pas de guillemets d’échappement dans le filtre Power BI. Remarquez que
values
possède[\"$a\"]
plutôt que[$a]
.
{
"Filter": "[{
\"$schema\":\"basic\",
\"target\":{
\"table\":\"table_name_of_power_bi_dataset\",
\"column\":\"power_bi_field\"
},
\"operator\":\"In\",
\"values\":[\"$a\"],
\"filterType\":1
}]",
"Alias": {
"$a": "field_name_in_powerapps_to_filter",
}
}
Voir aussi
Intégrer un tableau de bord Power BI à un tableau de bord personnel piloté par modèle Power Apps