Del via


Integrere en Power BI-rapport i en modelbaseret app-formular

Du kan bruge Power BI-rapporter i Power Apps-modelbaserede apps til hentning af rapporter og analyser til dine hovedformularer og til at give brugerne mulighed for at udrette mere. Det giver mulighed for at samle data på tværs af systemer og skræddersy dem ned til konteksten af en enkelt post.  

Forudsætninger

Integrering af Power BI-indhold er en valgfri funktion, der som standard er deaktiveret på alle miljøer. Du skal aktivere den, før du kan integrere Power BI-indhold. Flere oplysninger: Aktivere Power BI-visualiseringer i organisationen.

Denne funktion kræver eksport af en løsning, ændring af den for at erstatte XML-kodestykke og derefter import tilbage til miljøet. Sørg for at importere ændringerne på udviklingsmiljøet via en ikke-administreret løsning. Gå til Importere, opdatere og eksportere løsninger for at få vejledning til installation af en opdatering til en eksisterende ikke-administreret løsning.

Integrere uden kontekstafhængig filtrering

Du kan bruge Power BI-rapporter ved at integrere dem og få den nøjagtigt samme rapport. Dette omfatter ikke at ændre konteksten til den aktuelle modelbaserede formular, så derfor får du samme rapport over alle poster i tabellen. For eksempel viser følgende rapport den geografiske placering af alle konti på én gang, og den kan bruges til at vise opsummeringsoplysninger.

Integreret Power BI-rapport uden kontekstafhængig filtrering.

Du kan tilpasse en XML controls-node i hovedformularen, så den kan være vært for en integreret Power BI-rapport og et integreret felt ved at følge disse trin:

  1. I udviklingsmiljøet skal du oprette en løsning og tilføje den tabel, der indeholder den hovedformular, hvor den integrerede Power BI-rapport skal vises. Vælg indstillingen Vælg komponenter, når du føjer tabellen til løsningen. Tilføj derefter kun hovedformularen i tabellen.

  2. Rediger tabellens hovedformular i løsningen, og tilføj et pladsholderundernet, hvor du vil integrere Power BI-rapporten.

    • Opdater etiketten og navnet på dit undergitter i formulardesigneren.

    Power BI integrer pladsholder

  3. Eksportér løsningen som ikke-administreret, og udpak alle filer i zip-filen til løsningspakken. Rediger derefter customizations.xml filen, og find navnet på dit undergitter. Erstat XML-koden i blokken <control> i customizations.xml filen. rowspan i den overordnede cell-node i kan justeres for at ændre størrelsen på den integrerede Power BI-rapport.

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

    Vigtige oplysninger

    Sørg for at bruge kontrolelementet classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}" som angivet i XML-eksempel.

    • Foretag følgende ændringer af den formular-XML, du har kopieret til customizations.xml-filen for Power BI-rapporten. I denne tabel beskrives de værdier, du skal ændre til elementerne i det forrige XML-eksempel.
    Egenskab Beskrivelse
    PowerBIGroupId Id for Power BI-arbejdsområde. Hvis rapporten findes i Mit arbejdsområde, er arbejdsområde-id 00000000-0000-0000-0000-000000000000. Ellers skal du tilføje arbejdsområde-id. Du kan finde id for arbejdsområdet i Power BI-tjenestens URL-adresse. Flere oplysninger: Find arbejdsområde- Power BI og rapport-id'er.
    PowerBIReportId Power BI-rapport-id. Erstat det med den rapport, du vil integrere. Du kan finde id for rapporten i Power BI-tjenestens URL-adresse. Flere oplysninger: Finde Power BI-arbejdsområdet og rapport-id'er
    TileUrl Power BI-rapportens URL-adresse, som du vil integrere. Sørg for at bruge det korrekte Power BI-underdomænenavn (udskift evt. app.powerbi.com med dit eget) og rapport-id (erstat reportId=544c4162-6773-4944-900c-abfd075f6081 med dit eget). F.eks., https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081.
  4. Opret en zip-fil ud af alle løsningsfiler, der tidligere er udpakket. Importér derefter løsningen i udviklingsmiljøet.

Integrere med kontekstafhængig filtrering

Du kan gøre Power BI-rapporter mere sigende ved at angive kontekstafhængige filtre for den aktuelle modelbaserede formular, så rapporten filtreres på basis af den aktuelle række. F.eks. viser følgende rapport den geografiske placering af et firma ved at filtrere Power BI-rapporten ved hjælp af firmanavnet. Det gør det muligt for en enkelt rapport at vise kontekstbetingede oplysninger for alle rækker i tabellen.

Integreret Power BI-rapport med kontekstafhængig filtrering.

Filtreringen udføres ved at tilføje et <PowerBIFilter>-element i <parameter>-blokken som vist her. Du kan bruge enhver attribut i formularens tabel til at oprette filterudtrykket. Flere oplysninger: Oprette filtre for at forstå, hvordan du kan oprette dine egne filtre.

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

Bemærk, at den bruger det samme kontrolelement som integrationen af den ikke-filtrerede rapport, så kontrolelementets klasse-id'et forbliver uændret.

I denne tabel beskrives eventuelle ekstra egenskaber i forrige XML-eksempel.

Egenskab Beskrivelse
PowerBIFilter Filterudtrykket, der sætter Power BI-rapporten i kontekst ved at overføre formularattributterne som parametre. For at gøre den lettere at læse er filteret oprettet som vist her. Filterudtrykket kan ikke være en kommasepareret liste over værdier.
	{
	        "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 af det forrige udtryk identificerer tabellen og kolonnen, der skal anvendes filtre på. Operatoren identificerer logikken, og værdier identificerer de data, der overføres fra Power Apps-modelbaseret app. For at angive parametre på en generisk metode er værdierne oprettet med alias. I det foregående udtryk bliver værdien af et firmas fornavn og efternavn overført, og en af dem eftersøges i kolonnen Kontonavn i Power BI-rapporten. Bemærk, at fornavn og efternavn er entydige navne på attributterne for firmatabellen, hvis værdi vil blive overført her.

Du kan oprette mere komplekse filterudtryk ved at se eksempler fra Oprette filtre og angive de tilsvarende værdier for $schema og filterType. Sørg for at indsætte alle bogstavelige værdier i filteret ved at bruge ", så JSON genereres korrekt.

Find Power BI-arbejdsområde- og rapport-id'er

  1. Arbejdsområde-id for dette eksempel er efc85277-2bdb-47bc-9762-363f64335108.
  2. Rapport-id for dette eksempel er 643ab643-7126-4a57-bd82-ca8f1fb676fc. Power BI-eksempel på arbejdsområdet-id og rapport-id

Kendte problemer og begrænsninger

  • Denne integration er kun tilgængelig i Unified Interface-klienten på understøttede webbrowsere og mobilenheder.

  • Åbning af denne formular i Power Apps-formulardesigner viser kontrolelementet på en måde, der giver mening. Det skyldes, at kontrolelementet er brugerdefineret uden for formulardesigneren.

  • Brugere godkendes i Power BI automatisk med deres Power Apps-brugernavn og -adgangskode. Hvis et Power BI-firma med matchende legitimationsoplysninger ikke findes, vises der en logon-prompt, som vist her.

    Power BI-logonprompt.

    Hvis et forkert firma bruges til at logge på Power BI, vises der ingen data. For at logge på med de korrekte legitimationsoplysninger skal du logge af og logge på igen.

    Log på Power BI-servicen.

    Bruger, der er logget på, har ikke de rette tilladelser.

  • Rapportdataene vises i Power Apps på samme måde som i Power BI, og Power Apps-sikkerhedsroller og -rettigheder påvirker ikke de data, der vises. Det vil sige, at dataene stort set er de samme som dem, forfatteren af Power BI-datasættet kan se. Hvis du vil anvende dataadgangsbegrænsninger på Power Apps-sikkerhedsroller og -teams, kan du bruge Rækkeniveausikkerhed (RLS) med Power BI.

  • Hvis formularen ikke viser Power BI-rapporten, når du har importeret løsningen og udgivet tilpasninger, skal du åbne den i den modelbaserede formulareditor og gemme den, så formularens JSON gendannes.

  • Indlejring af et Power BI-felt i en formular understøttes kun uden kontekstafhængig filtrering.

  • Hvis du indlejrer en Power BI-rapport, understøttes referencer på tværs af lejere ikke. Når du f.eks. forsøger at indlejre en Power BI-rapport, der tilhører Contoso-lejeren, i en modelbaseret app, der tilhører Fabrikam-lejeren, understøttes den ikke i øjeblikket, heller ikke selvom rapporten, der indlejres, er delt med brugere i Fabrikam-lejeren via Power BI.

  • Fastgjorte rapporter som en del af Power BI-dashboards er ikke beregnet til at være interaktive. Hvis du vil have interaktive Power BI-rapporter, skal du indlejre dem direkte i stedet for at fastgøre dem til et dashboard.

Almindelige problemer

  • Gruppe-id'et er ikke angivet i TileUrl-noden for kontrolelementets parametre, selvom det kan være nødvendigt. Dette eksempel indeholder et gruppe-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>
  • Felter har forskellige datatyper i Power BI og Dataverse. De skal være af samme type, f.eks. streng i Power BI og streng i Dataverse.
  • Strengfelter har ikke anførselstegn som escape i Power BI-filteret. Bemærk, at values har [\"$a\"] frem for [$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 også

Integrere et Power BI-dashboard i et Power Apps-modelbaseret personligt dashboard

Bruge Power BI sammen med Dynamics 365-apps