Share via


Inbädda en Power BI-rapport i ett huvudformulär för modellbaserad app

Viktigt

Det finns ett bättre sätt att lägga till en Power BI-rapport i ett modellbaserat appformulär. Mer information: Använd Power BI-rapportkontrollen för att lägga till en rapport

Du kan använda Power BI-rapporter i Power Apps modellstyrda appar för att hämta omfattande rapportering och analys till dina huvudformulär och underlätta för användarna att göra mer. Detta öppnar upp befogenhet att samla data över system och anpassar det nedåt till för en enskild post.  

Förutsättningar

Inbäddat Power BI-innehåll är en valfri funktion och är som inaktiverad på alla miljöer. Du måste aktivera den innan du kan inbädda Power BI-innehåll. Mer information: Aktivera Power BI-visualiseringar i organisationen.

Den här funktionen kräver export av en lösning, ändra den om du vill lägga till xml-kodavsnitt och sedan importera till miljön. Se till att importera ändringar i din målmiljö via en hanterad lösning. Se Importera, uppdatera och exportera lösningar för anvisningar om hur du installerar en uppdatering till en befintlig hanterad lösning.

Inbädda utan kontextuell filtrering

Du kan använda Power BI-rapporter genom att bädda in dem och få exakt samma rapport. Detta innebär inte att kontextualisera dem till det aktuella modellbaserade formuläret, och därför får du samma rapport för alla tabellens poster. Följande rapport visar t.ex. den geografiska platsen av alla konton samtidigt och är användbar om du vill visa sammanfattningsinformation.

Inbädda Power BI-rapport utan kontextuell filtrering.

Du kan anpassa en XML-nod i huvudformulär sections så att den kan vara värd för en inbäddad Power BI rapport och en panel genom att följa stegen nedan:

  1. I utvecklingsmiljön skapar du en lösning och lägger till tabellen som innehåller huvudformuläret där du vill att den inbäddade Power BI rapporten ska visas.

    • Om tabellen redan finns i målmiljön där du importerar lösningen väljer du alternativet Välj komponenter när du lägger till tabellen i lösningen. Lägg sedan endast till tabellens huvudformulär.
    • Om tabellen inte finns i målmiljön där du importerar lösningen väljer du alternativet Inkludera alla komponenter när du lägger till tabellen i lösningen.
  2. Exportera den ohanterade lösningen.

  3. Extrahera alla filer i zip-filen i lösningspaketet. Redigera sedan filen customizations.xml och lägg till XML-koden som finns nedan i <sections> blocket som finns i <forms type="main"> noden i filen 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>

Viktigt

Se till att använda kontrollen classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}" som anges i XML-exemplet.

  1. Gör följande ändringar i formulärets XML-kod som du kopierade till filen customizations.xml för Power BI rapporten. I den här tabellen beskrivs de värden som du behöver ändra för elementen i det föregående XML-exemplet.
Property Beskrivning
PowerBIGroupId Arbetsyte-ID för Power BI. Om din rapport finns i Min arbetsyta,** blir arbetsytans ID 00000000-0000-0000-0000-000000000000. Annars lägger du till arbetsyte-ID:t. Du hittar ID:t för arbetsytan i URL:en för Power BI-tjänsten. Mer information: Hitta Power BI arbetsytor och rapport-ID.
PowerBIReportId Rapport-ID för Power BI. Ersätt detta med hjälp av rapporten som du vill bädda in. Du hittar ID:t för rapporten i URL:en för Power BI-tjänsten. Mer information: Hitta Power BI arbetsytor och rapport-ID
TileUrl Power BI-rapport-URL som du vill bädda in. Se till att använda rätt namn för Power BI-underdomän (du kan komma att behöva ersätta app.powerbi.com med ditt eget) och rapport-ID (ersätt reportId=544c4162-6773-4944-900c-abfd075f6081 med ditt eget). Exempel: https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081
solutionaction="Added" Om tabellen redan finns i målmiljön lämnar du solutionaction=Added-parametern för cellelementet enligt vad som anges i XML-exemplet. Om tabellen inte finns i målmiljön tar du bort solutionaction=Added parametern.
  1. Skapa en zip-fil av alla lösningsfiler som tidigare extraherats. Importera sedan lösningen i målmiljön.

Inbädda med kontextuell filtrering

Du kan göra Power BI-rapporter mer meningsfulla genom att använda det aktuella modellstyrda formuläret så att rapporten filtreras baserat på attributen för den aktuella raden. Till exempel visar följande rapport den geografiska platsen för ett konto genom att filtrera Power BI-rapporten med kontonamnet. Detta gör att en rapport kan visa kontextualiserad information om alla rader i tabellen.

Inbädda Power BI-rapport med kontextuell filtrering.

Filtrering görs genom att lägga till ett <PowerBIFilter> element i blocket <parameter> som visas här. Du kan använda alla attribut i formulärets tabell för att skapa uttryck för filtret. Mer information: konstruera filter för att förstå hur du kan skapa egna filter.

<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>

Observera att detta använder samma kontroll som den ofiltrerade rapportinbäddningen, och därför ändras inte kontrollklass-ID:t.

Den här tabellen beskriver eventuella ytterligare egenskaper som används i XML-exemplet.

Egenskap Beskrivning
PowerBIFilter Det filteruttryck som kontextualisera Power BI-rapport genom att skicka formulärattribut som parametrar. Filtret skapas så att det blir lättare att läsa, som visas här. Filteruttrycket kan inte vara en lista med kommaavgränsade värden.
    {
            "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"
            }
    }

Måldelen av det föregående uttrycket identifierar tabellen och kolumnen du vill filtrera på. Operatorn identifierar logiken och värden identifierar de data som skickas från Power Apps modellstyrda appen. Om du vill parameterstyra på ett allmänt sätt, konstrueras värdena av alias. I det föregående uttrycket skickas värdet för ett kontos förnamn och efternamn och ett av dem söks igenom i kolumnen kontonamn i Power BI-rapporten. Observera att förnamn och efternamn är unika namn på attribut för kontotabellen vars värde kommer att skickas.

Du kan skapa mer komplexa filteruttryck genom att studera exempel från konstruera filter och ge lämpliga värden för $schema och filterType. Se till att lämna alla literaler i filterdelen med ", så att JSON skapas på rätt sätt.

Ta bort attribut som inte har ändrats före importen

Innan du importerar lösningen till målmiljön ska du kontrollera att det oförändrade attributet inte är inkluderat i avsnittet formXml i filen anpassningar.xml. Om det oförändrade attributet finns i XML-koden som innehåller Power BI-kontrollens XML, tar du bort attributet innan du importerar lösningen till målmiljön. Ersätt till exempel <systemform unmodified="1"> med <systemform>.

Hitta Power BI arbetsytor och rapport-ID

  1. Arbetsyte-ID:t för det här exemplet är efc85277-2bdb-47bc-9762-363f64335108.
  2. Rapport-ID:t för detta exempel är 643ab643-7126-4a57-bd82-ca8f1fb676fc. Power BI exempel på arbetsyta-ID och rapport-ID

Kända problem och begränsningar

  • Den här integreringen är endast tillgänglig i enhetligt gränssnitt-klienten på mobila enheter och webbläsare som stöds.

  • Om du öppnar formuläret i Power Apps-formulärdesigner visas inte kontrollen på ett meningsfullt sätt. Detta beror på att kontrollen har anpassats utanför formulärdesigner.

  • Användare autentiseras till Power BI automatiskt med sina Power Apps användarnamn och lösenord. Om det inte finns ett Power BI-konto med matchande autentiseringsuppgifter visas en inloggningsskärm enligt nedan.

    Power BI uppmaning att logga in.

    Inga data visas om ett felaktigt konto som används för att logga in på Power BI. Om du vill logga in med rätt autentiseringsuppgifter, logga ut och logga in igen.

    Logga in på Power BI-tjänst.

    Den inloggade användaren har inte rätt behörighet.

  • Vyn över rapportdata som visas i Power Apps visas på samma sätt som i Power BI och Power Apps säkerhetsroller och behörigheter påverkar inte de data som visas. Därför är data i huvudsak samma som utvecklaren av Power BI datauppsättningen skulle se. Använd dataåtkomstbegränsningar som liknar Power Apps säkerhetsroller och team genom att använda säkerhet på radnivå (RLS) med Power BI.

  • Om formuläret inte visar Power BI-rapporten efter import av lösningen och publicerar anpassningar, öppna den i enlighet med den modellstyrda formulärredigeraren och spara den, så att formuläret JSON återskapas.

  • Inbäddning av en Power BI panel i ett formulär stöds endast utan sammanhangsbaserad filtrering.

  • Inbäddning av en Power BI-rapport stöder inte referenser för flera innehavare. Till exempel, försöka bädda in en Power BI-rapport som tillhör Contoso-organisationen i en modellbaserad app som tillhör Fabrikam-organisationen stöds för närvarande inte, även om rapporten som ska bäddas in har delats med användare i Fabrikam-organisationen via Power BI.

Vanliga problem

  • Grupp-ID anges inte i TileUrl-noden för kontrollparametrarna när det kan behövas. Detta exempel innehåller ett grupp-ID.
<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>
  • Fält har olika datatyper i Power BI och Dataverse. De måste vara av samma typ, till exempel sträng i Power BI och sträng i Dataverse.
  • Strängfält har inte undantagna citationstecken i Power BI filter. Observera att values har [\"$a\"] hellre än [$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",
            }
    }

Se även

Bädda in en Power BI‑instrumentpanel i en Power Apps modellstyrd personlig instrumentpanel

Använd Power BI med Dynamics 365‑appar

Anteckning

Kan du berätta om dina inställningar för dokumentationsspråk? Svara i en kort undersökning. (observera att undersökningen är på engelska)

Undersökningen tar ungefär sju minuter. Inga personuppgifter samlas in (sekretesspolicy).