Inserir un informe del Power BI en un formulari principal d'aplicació basada en models

Nota

Vigent a partir del novembre de 2020:

  • S’ha canviat el nom del Common Data Service per Microsoft Dataverse. Més informació
  • S’han actualitzat alguns termes del Microsoft Dataverse. Per exemple, ara entitat s’anomena taula, i el camp ha passat a anomenar-se columna. Més informació

Aquest article s’actualitzarà pròximament per reflectir la terminologia més recent.

Podeu utilitzar els informes del Power BI a les aplicacions basades en models del Power Apps per aportar informes i anàlisis rics als formularis principals i habilitar els vostres usuaris per aconseguir-ne més. Aquesta acció desbloqueja la capacitat d’agregar dades entre sistemes i adaptar-les al context d’un únic registre.

Requisits previs

La incorporació del contingut del Power BI és una funció opcional i està desactivada per defecte a tots els entorns. Heu d’habilitar-la abans d’incorporar el contingut del Power BI. Més informació: Habilitar visualitzacions del Power BI a l’organització.

Aquesta característica requereix exportar una solució, modificar-la per afegir-ne el fragment xml i tornar-la a importar a l'entorn. Assegureu-vos d’importar els canvis al vostre entorn de destinació només mitjançant una solució administrada. Consulteu Importa, actualitza i exporta solucions per obtenir informació sobre com instal·lar una actualització a una solució administrada existent.

Integrar sense filtratge contextual

Podeu utilitzar els vostres informes i peces del Power BI simplement incrustant-los, d'aquesta manera obtindreu el mateix informe. Això no implica contextualitzar-los al formulari basat en model actual i, per tant, s'obté el mateix informe o peça a tots els registres de la taula. Per exemple, el següent informe mostra la ubicació geogràfica de tots els comptes alhora i és útil per mostrar informació resumida.

Informe del Power BI integrat sense filtratge contextual

Podeu personalitzar un node XML sections de formulari principal per tal que pugui allotjar un informe incrustat i peça del Power BI seguint aquests passos:

  1. A l'entorn de desenvolupament, creeu una solució i afegiu la taula que contingui el formulari principal on voleu que es visualitzi l'informe incrustat del Power BI.

    • Si la taula ja existeix a l'entorn de destinació on importareu la solució, trieu l'opció Selecciona els components quan afegiu la taula a la solució. A continuació, afegiu només el formulari principal de la taula.
    • Si la taula no existeix a l'entorn de destinació on importareu la solució, trieu Inclou tots els components quan afegiu la taula a la solució.
  2. Exporteu la solució com a administrada.

  3. Extraieu tots els fitxers del fitxer zip del paquet de la solució. A continuació, editeu el fitxer customizations.xml i afegiu el codi XML proporcionat a continuació en el bloc <sections> que hi ha dins del node <forms type="main"> al fitxer customizations.xml.

<section id="{d411658c-7450-e1e3-bc80-07021a04bcc2}" locklevel="0" showlabel="true" IsUserDefined="0" name="tab_4_section_1" labelwidth="115" columns="1" layout="varwidth" showbar="false">
    <labels>
        <label languagecode="1033" description="Unfiltered Power BI embedding demo"/>
    </labels>
    <rows>
        <row>
            <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>
        </row>
        <row/>
    </rows>
</section>

Important

Assegureu-vos d’utilitzar el control classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}" tal com s’indica a l’exemple XML.

  1. Feu els canvis següents a l'XML de formulari que heu copiat al fitxer customizations.xml de l'informe del Power BI. Aquesta taula descriu els valors que heu de canviar als elements de l'XML d'exemple anterior.
Propietat Descripció
PowerBIGroupId L'id. de l'espai de treball del Power BI. Si l'informe és a La meva àrea de treball, l'id. de l'espai de treball és 00000000-0000-0000-0000-000000000000. Si no, afegiu l'id. de l'espai de treball. Podeu trobar l'id. de l'espai de treball a l'adreça URL del servei del Power BI. Més informació: Cercar l'espai de treball i els id. d'informe del Power BI.
PowerBIReportId Id de l'informe del Power BI. Substituïu-lo per l’informe que vulgueu afegir. Podeu trobar l'id. de l'informe a l'adreça URL del servei del Power BI. Més informació: Cercar l'espai de treball i els id. d'informe del Power BI
TileUrl L'adreça URL de l'informe o peça del Power BI que voleu inserir. Assegureu-vos d’utilitzar el nom de subdomini del Power BI (pot ser que hagueu de substituir app.powerbi.com pel vostre propi) i l’identificador de l'informe (substituïu reportId=544c4162-6773-4944-900c-abfd075f6081 pel vostre propi). Per exemple, https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081.
solutionaction="Added" Si la taula ja existeix a l'entorn de destinació, deixeu el paràmetre de solutionaction=Added de l'element de cel·la segons s'especifica a l'exemple XML. Si la taula no existeix a l'entorn de destinació, suprimiu el paràmetre solutionaction=Added.
  1. Creeu un fitxer zip de tots els fitxers de la solució extrets anteriorment. A continuació, importeu la solució a l’entorn de destinació.

Integrar amb filtratge contextual

Podeu fer que els informes i les peces del Power BI siguin més significatius aplicant filtres contextuals al formulari actual basat en el model, de manera que l’informe o la peça es filtri segons els atributs de la fila actual. Per exemple, l’informe següent mostra la ubicació geogràfica d’un compte mitjançant el filtratge de l’informe del Power BI amb el nom del compte. Això permet que un únic informe mostri informació contextualitzada per a totes les files de la taula.

Informe del Power BI integrat amb filtratge contextual

El filtrat es fa afegint un element <PowerBIFilter> al bloc <parameter> com es mostra a continuació. Podeu utilitzar qualsevol atribut de la taula del formulari per crear l’expressió del filtre. Més informació: Crear filtres per entendre com crear els vostres propis 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\":\"My Active Accounts\",\"column\":\"Account Name\"},\"operator\":\"In\",\"values\":[$a],\"filterType\":1}]", "Alias": {"$a": "name"}}</PowerBIFilter>
    </parameters>
</control>

Tingueu en compte que aquesta acció utilitza el mateix control que l’integració de l’informe sense filtrar i, per tant, l’identificador de la classe de control no es modifica.

Aquesta taula descriu les propietats addicionals que s’utilitzen a l’exemple d'XML anterior.

Propietat Descripció
PowerBIFilter L’expressió del filtre que contextualitza l’informe del Power BI amb els atributs del formulari com a paràmetres. Per fer-lo més fàcil de llegir, el filtre es crea tal com es mostra aquí. L'expressió de filtre no pot ser una llista de valors separada per comes.
    {
            "Filter": "[{
                    \"$schema\":\"basic\",
                    \"target\":{
                            \"table\":\"My Active Accounts\",
                            \"column\":\"Account Name\"
                    },
                    \"operator\":\"In\",
                    \"values\":[$a, $b],
                    \"filterType\":1
            }]",
            "Alias": {
                    "$a": "firstname",
                    "$b":"lastname"
            }
    }

La peça de destinació de l’expressió anterior identifica la taula i la columna on s’aplicaran els filtres. L'operador identifica la lògica i els valors identifiquen les dades transmeses des de l’aplicació basada en el model del Power Apps. Per parametritzar de manera genèrica, els valors es creen per solapament. A l’expressió anterior, s’han passat els valors firstname i lastname d’un compte i s'han cercat a la columna Nom del compte de l’informe del Power BI. Tingueu en compte que firstname i lastname són els noms únics dels atributs de la taula del compte i el seu valor s'ha passat aquí.

Podeu crear expressions de filtre més complexes si mireu exemples de Creació de filtres i proporcioneu els valors apropiats per a $schema i filterType. Assegureu-vos d'escapar de les cadenes de caràcters literals de la peça del filtre mitjançant ", de manera que el JSON es generi correctament.

Suprimir l'atribut no modificat abans d'importar-lo

Abans d'importar la solució a l'entorn de destinació, assegureu-vos que l'atribut no modificat no s'inclogui a la secció formXml del fitxer customizations.xml. Si l'atribut no modificat és a l'XML que inclou el control XML del Power BI, suprimiu l'atribut abans d'importar la solució a l'entorn de destinació. Per exemple, substituïu <systemform unmodified="1"> per <systemform>.

Cercar l'espai de treball i els id. d'informe del Power BI

  1. L'id de l'espai de treball d'aquest exemple és efc85277-2bdb-47bc-9762-363f64335108.
  2. L'id. de l'informe d'aquest exemple és 643ab643-7126-4a57-bd82-ca8f1fb676fc. Exemple d'id. de l'espai de treball i d'informe del Power BI

Problemes i limitacions coneguts

  • Aquesta integració només està disponible al client de la interfície unificada, als navegadors web compatibles i als dispositius mòbils.

  • L’obertura d’aquest formulari al dissenyador de formularis del Power Apps no mostrarà el control d’una manera significativa. Això es deu al fet que el control es personalitza fora del dissenyador de formularis.

  • Els usuaris s’autenticaran automàticament al Power BI amb el seu nom d’usuari i contrasenya del Power Apps. Si no existeix un compte del Power BI amb credencials coincidents, es mostrarà un indicador d'inici de sessió tal com es mostra a la imatge.

    Sol·licitud d'inici de sessió al Power BI

    No es mostrarà cap dada si s’utilitza un compte incorrecte per iniciar sessió al Power BI. Per iniciar la sessió amb les credencials correctes, tanqueu la sessió i torneu a iniciar-la.

    Iniciar sessió al servei del Power BI.

    L'usuari que ha iniciat la sessió no té el permís adient.

  • La visualització de les dades de l’informe que es mostren al Power Apps és la mateixa que les del Power BI i les funcions i privilegis de seguretat del Power Apps no afecten les dades que es mostren. Per tant, les dades són essencialment les mateixes que les que veuria el creador del conjunt de dades del Power BI. Per aplicar restriccions d'accés de dades similars a les funcions i equips de seguretat del Power Apps, utilitzeu la Seguretat a nivell de fila (RLS) amb el Power BI.

  • Si el formulari no mostra l'informe del Power BI després d'importar la solució i publicar personalitzacions, obriu-lo a l'editor de formularis basat en el model i deseu-lo, de manera que es regeneri el formulari JSON.

Problemes comuns

  • L'ID del grup no s'especifica al node TileUrl dels paràmetres de control quan pot ser que calgui. En aquest exemple s'inclou un ID del grup.
<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&amp;groupId=fd266a4c-9a02-4553-9310-80e05ee844f3</TileUrl>
</parameters>
  • Els camps tenen diferents tipus de dades al PowerBI i al Dataverse. Han de ser el mateix tipus, com ara una cadena d'usuari al Power BI i una cadena al Dataverse.
  • Els camps de cadena no tenen estimacions escapades al filtre del Power BI. A continuació, l'avís values[\"$a\"] en comptes de [$a].
    {
            "Filter": "[{
                    \"$schema\":\"basic\",
                    \"target\":{
                            \"table\":\"My Active Accounts\",
                            \"column\":\"Account Name\"
                    },
                    \"operator\":\"In\",
                    \"values\":[\"$a\"],
                    \"filterType\":1
            }]",
            "Alias": {
                    "$a": "name",
            }
    }

Consulteu també

Inserir un escriptori digital del Power BI en un escriptori digital personal basat en el model del Power Apps

Utilitzeu Power BI amb les aplicacions del Dynamics 365