Del via


Bygge inn en Power BI-rapport i et hovedskjema i en modelldrevet app

Du kan bruke Power BI-rapporter i modelldrevne Power Apps-apper for å tilføre omfattende rapportering og analyse til hoveskjemaene og gi brukerne muligheten til å oppnå mer. Dette gir deg mulighet til å samle inn data på tvers av systemer og skreddersy ned til konteksten for en enkelt oppføring.  

Forhåndskrav

Innebygging av Power BI-innhold er en valgfri funksjon og deaktiveres i alle miljøer som standard. Du må aktivere den før du kan bygge inn Power BI-innhold. Hvis du vil ha mer informasjon: Aktivere Power BI-visualiseringer i organisasjonen.

Denne funksjonen krever eksport av en løsning, endring av den for å erstatte XML-snutten og deretter importering tilbake til miljøet. Sørg for å importere endringene i utviklingsmiljøet bare via en uadministrert løsning. Gå til Importer, oppdater og eksporter løsninger for retningslinjer for hvordan du installerer en oppdatering til en eksisterende uadministrert løsning.

Bygge inn uten kontekstavhengig filtrering

Du kan bruke Power BI-rapporter ved å innebygge dem, og få nøyaktig samme rapport. Dette innebærer ikke å kontekstualisere dem til det gjeldende modelldrevne skjemaet, og derfor får du samme rapport for alle oppføringer i tabellen. Følgende rapport viser for eksempel den geografiske plasseringen av alle forretningsforbindelser samtidig, og er nyttig for å vise sammendragsinformasjon.

Innebygd Power BI-rapport uten kontekstavhengig filtrering.

Du kan tilpasse en XML-controls-node for hovedskjema slik at den kan drifte en innebygd Power BI-rapport og -flis ved å følge denne fremgangsmåten:

  1. Opprett en løsning i utviklingsmiljøet, og legg til tabellen som inneholder hovedskjemaet der du vil at den innebygde Power BI-rapporten skal vises. Velg alternativet Velg komponenter når du legger til tabellen i løsningen. Deretter legger du bare til hovedskjemaet for tabellen.

  2. Rediger tabellens hovedskjema i løsningen, og legg til et delrutenett for plassholder der du vil bygge inn Power BI-rapporten.

    • Oppdater etiketten og navnet på delrutenettet i skjemautformingen.

    Power BI-innbyggingsplassholder

  3. Eksporter løsningen som uadministrert, og pakk ut alle filene i løsningspakkens ZIP-fil. Deretter redigerer du customizations.xml filen og finner navnet på delrutenettet. Erstatt XML-koden i <control>-blokken i customizations.xml-filen. rowspan i den overordnede cell-noden kan justeres for å endre størrelsen på den innebygde Power BI-rapporten.

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

    Viktig!

    Kontroller at du bruker kontrollen classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}" som angitt i XML-eksemplet.

    • Gjør følgende endringer i skjema-XML-filen du kopierte til filen customizations.xml for Power BI-rapporten. Denne tabellen beskriver verdiene du må endre til elementene i det forrige XML-eksemplet.
    Egenskap Bekrivelse
    PowerBIGroupId ID for Power BI-arbeidsområde. Hvis rapporten din er i Mitt arbeidsområde, er ID-en for arbeidsområdet 00000000-0000-0000-0000-000000000000. Hvis ikke legger du til arbeidsområde-IDen. Du finner ID-en for arbeidsområdet i URL-adressen for Power BI-tjenesten. Mer informasjon: Finn ID-ene for Power BI-arbeidsområdet og rapporten..
    PowerBIReportId Power BI-rapport-IDen. Erstatt denne med rapporten du vil innebygge. Du finner ID-en for rapporten i URL-adressen for Power BI-tjenesten. Mer informasjon: Finn ID-ene for Power BI-arbeidsområdet og rapporten
    TileUrl Nettadressen for Power BI-rapporten du vil bygge inn. Bruk riktig Power BI-underdomenenavn (du må kanskje erstatte app.powerbi.com med ditt eget) og rapport-ID (erstatt reportId=544c4162-6773-4944-900c-abfd075f6081 med din egen). Eksempel: https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081.
  4. Opprett en ZIP-fil av alle løsningsfilene som ble pakket ut tidligere. Deretter kan du importere løsningen i utviklingsmiljøet.

Bygge inn med kontekstavhengig filtrering

Du kan gjøre Power BI-rapporter mer meningsfylte ved å bruke kontekstavhengige filtre i det gjeldende modelldrevne skjemaet, slik at rapporten filtreres basert på attributter for den gjeldende raden. Eksempelvis viser rapporten nedenfor den geografiske plasseringen for en forretningsforbindelse ved filtrering av Power BI-rapporten ved hjelp av navnet på forretningsforbindelsen. Dette gjør det mulig for en enkeltrapport å vise kontekstavhengig informasjon for alle rader i tabellen.

Innebygd Power BI-rapport med kontekstavhengig filtrering.

Filtreringen gjøres ved å legge til et <PowerBIFilter>-element i <parameter>-blokken, som vist her. Hvilket som helst attributt i skjemaets tabell kan brukes til å konstruere filteruttrykk. Hvis du vil ha mer informasjon: Lage filtre for å forstå hvordan du oppretter 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>

Vær oppmerksom på at dette bruker den samme kontrollen som den ufiltrerte rapporten, og derfor blir kontrollklasse-IDen uendret.

Denne tabellen beskriver eventuelle tilleggsegenskaper som brukes i det foregående XML-eksemplet.

Egenskap Beskrivelse
PowerBIFilter Filteruttrykket som konteksttilpasser Power BI-rapporten ved å sende til skjemaattributter som parametere. Hvis du vil gjøre det enklere å lese, lages filteret som vist her. Filteruttrykket kan ikke være en kommadelt liste over verdier.
	{
	        "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 forrige uttrykket identifiserer tabellen og kolonnen som filtrene skal brukes på. Operatoren identifiserer logikken, og verdier identifisere dataene som sendes fra den modelldrevne Power Apps-appen. For å lage parametere på en generell måte lages verdiene ved hjelp av alias. I det forrige uttrykket sendes verdien av en forretningsforbindelses fornavn og etternavn, og et av dem søkes det etter i Navn på forretningsforbindelse-kolonnen i Power BI-rapporten. Vær oppmerksom på at fornavn og etternavn er unike navn for attributtene til forretningsforbindelsestabellen, og den tilhørende verdien sendes hit.

Du kan opprette mer komplekse filteruttrykk ved å se på eksempler fra Lage filtre og angi de riktige verdiene for $schema og filterType. Husk å velge escape for hver litteral i filterdelen ved å bruke ", slik at JSON genereres på riktig måte.

Finn ID-ene for Power BI-arbeidsområdet og rapporten.

  1. ID-en for arbeidsområdet i dette eksemplet er efc85277-2bdb-47bc-9762-363f64335108.
  2. ID-en for rapporten i dette eksemplet er 643ab643-7126-4a57-bd82-ca8f1fb676fc. Eksempel på ID for Power BI-arbeidsområde og ID for rapport

Kjente problemer og begrensninger

  • Denne integreringen er bare tilgjengelig i klienten Enhetlig grensesnitt, på nettlesere og mobile enheter som støttes.

  • Åpning av dette skjemaet i Power Apps-skjemautforming vil ikke vise kontrollen på en meningsfull måte. Dette er fordi kontrollen tilpasses utenfor skjemautformingen.

  • Brukere godkjennes til Power BI automatisk med Power Apps-brukernavn og -passord. Hvis en Power BI-forretningsforbindelse med samsvarende legitimasjon ikke finnes, vises det en påloggingsledetekst som illustrert her.

    Power BI-påloggingsforespørsel.

    Ingen data vises hvis feil forretningsforbindelse brukes til å logge på Power BI. Hvis du vil logge på med riktig legitimasjon, logger du av og deretter på igjen.

    Logg på Power BI-tjenesten.

    Brukeren som er logget på, har ikke nødvendig tillatelse.

  • Visningen av rapportdataene som vises i Power Apps, er den samme som i Power BI, og Power Apps-sikkerhetsroller og -rettigheter har ingen innvirkning på dataene som vises. Derfor er dataene stort sett de samme som de oppretteren av Power BI-datasettet ser. Hvis du vil bruke datatilgangsbegrensninger tilsvarende Power Apps-sikkerhetsroller og -team, bruker du Radnivåsikkerhet (RLS) med Power BI.

  • Hvis skjemaet ikke viser Power BI-rapporten når du har importert løsningen og publisert tilpasninger, åpne den i det modelldrevne skjemaredigeringsprogrammet og lagre den, slik at skjema-JSON genereres.

  • Innbygging av en Power BI-flis i et skjema støttes bare uten kontekstavhengig filtrering.

  • Innbygging av en Power BI-rapport støtter ikke referanser på tvers av leiere. Hvis du for eksempel prøver å bygge inn en Power BI-rapport som hører til i Contoso-leieren, i en modelldrevet app som hører til i Fabrikam-leieren, støttes ikke for øyeblikket, selv om rapporten som bygges inn, har blitt delt med brukere i Fabrikam-leieren via Power BI.

  • Festede rapporter som en del av Power BI-instrumentbord er ikke ment å være interaktive. Hvis du vil ha interaktive Power BI-rapporter, kan du bygge dem direkte inn i stedet for å feste dem til et instrumentbord.

Vanlige problemer

  • Gruppe-ID-en er ikke angitt i TileUrl-noden for kontrollparameterne når den kanskje må være det. Dette eksemplet inkluderer en 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 forskjellige datatyper i Power BI og Dataverse. De må være av samme type, for eksempel streng i Power BI og streng i Dataverse.
  • Strengfelter har ikke anførselstegn i Power BI-filteret. Merk at values har [\"$a\"] i stedet 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å

Bygge inn et Power BI-instrumentbord i et modelldrevet, personlig Power Apps-instrumentbord

Bruke Power BI med Dynamics 365-apper