Een Power BI-rapport in een hoofdformulier voor modelgestuurde apps insluiten

Belangrijk

Er is een betere manier om een Power BI-rapport toe te voegen aan een modelgestuurd app-formulier. Meer informatie: Het besturingselement voor Power BI-rapporten gebruiken om een rapport toe te voegen

U kunt Power BI-rapporten in modelgestuurde Power Apps-apps gebruiken om uw hoofdformulieren te verbeteren met uitgebreide rapportage en analyse en uw gebruikers in staat te stellen meer te bereiken. Met deze rapporten kunt u gegevens van verschillende systemen samenvoegen, en deze aanpassen aan de context van één record.  

Vereisten

Het insluiten van Power BI-inhoud is een optionele functie en wordt standaard uitgeschakeld in alle omgevingen. U kunt Power BI-inhoud pas insluiten nadat deze is ingeschakeld. Meer informatie: Power BI-visualisaties in de organisatie inschakelen.

Voor deze functie moet een oplossing worden geëxporteerd en gewijzigd om het aan het xml-fragment toe te voegen en vervolgens moet de oplossing weer in de omgeving worden geïmporteerd. Let erop dat u de wijzigingen in uw doelomgeving alleen via een beheerde oplossing importeert. Zie Oplossingen importeren, bijwerken en exporteren als richtlijn voor het installeren van een update naar een bestaande beheerde oplossing.

Insluiten zonder contextueel filteren

U kunt Power BI-rapporten gebruiken door ze in te sluiten en exact hetzelfde rapport te krijgen. Dit houdt niet het contextualiseren ervan voor het huidige modelgestuurde formulier in, en daarom krijgt u hetzelfde rapport voor alle records van de tabel. Bijvoorbeeld het volgende rapport bevat de geografische locatie van alle accounts tegelijk en is handig om overzichtsgegevens weer te geven.

Ingesloten Power BI-rapport zonder contextueel filteren.

U kunt een het XML-knooppunt sections van een hoofdformulier aanpassen zodat het een ingesloten Power BI-rapport en tegel kan hosten door deze stappen te volgen:

  1. Maak in uw ontwikkelomgeving een oplossing en voeg de tabel toe die het hoofdformulier bevat waarin u het ingesloten Power BI-rapport wilt weergeven.

    • Als de tabel al bestaat in de doelomgeving waar u de oplossing gaat importeren, kiest u de optie Onderdelen selecteren wanneer u de tabel aan de oplossing toevoegt. Voeg vervolgens alleen het hoofdformulier van de tabel toe.
    • Als de tabel niet bestaat in de doelomgeving waar u de oplossing gaat importeren, kiest u de optie Alle onderdelen opnemen wanneer u de tabel aan de oplossing toevoegt.
  2. Exporteer de oplossing als beheerd.

  3. Pak alle bestanden in het zip-bestand van het oplossingspakket uit. Bewerk vervolgens het bestand customizations.xml en voeg de onderstaande XML-code toe aan het blok <sections> dat zich bevindt in het <forms type="main">-knooppunt in het bestand 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>

Belangrijk

Zorg ervoor dat u het besturingselement classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}" gebruikt, zoals aangegeven in het XML-voorbeeld.

  1. Breng de volgende wijzigingen aan in de formulier-XML die u hebt gekopieerd naar het bestand customizations.xml voor uw Power BI-rapport. Deze tabel beschrijft de waarden die u moet wijzigen in de elementen in het vorige XML-voorbeeld.
Eigenschappen Omschrijving
PowerBIGroupId De id van van Power BI-werkruimte. De werkruimte-id is 00000000-0000-0000-0000-000000000000 als uw rapport zich in Mijn werkruimte** bevindt. Voeg anders de werkruimte-id toe. U vindt de id van de werkruimte in de Power BI-service-URL. Meer informatie: De Power BI-werkruimte en rapport-id's vinden.
PowerBIReportId De id van het Power BI-rapport. Vervang deze door het rapport dat u wilt insluiten. U vindt de id van uw rapport in de Power BI-service-URL. Meer informatie: De Power BI-werkruimte en rapport-id's vinden
TileUrl De URL van het Power BI-rapport dat u wilt insluiten. Gebruik de juiste Power BI-subdomeinnaam (mogelijk moet u app.powerbi.com vervangen door uw eigen naam) en de juiste rapport-id (vervang reportId=544c4162-6773-4944-900c-abfd075f6081 door uw eigen id). Bijvoorbeeld: https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081.
solutionaction="Added" Als de tabel al in de doelomgeving bestaat, laat u de parameter solutionaction=Added voor het celelement staan, zoals opgegeven in het XML-voorbeeld. Als de tabel niet bestaat in de doelomgeving, verwijdert u de parameter solutionaction=Added.
  1. Maak een zip-bestand van alle eerder uitgepakte oplossingsbestanden. Vervolgens importeert u de oplossing in de doelomgeving.

Insluiten met contextueel filteren

U kunt Power BI-rapporten en -tegels zinvoller maken door contextuele filters toe te passen op het huidige modelgestuurde formulier, zodat het rapport of de tegel wordt gefilterd op basis van kenmerken van de huidige rij. Bijvoorbeeld het volgende rapport bevat de geografische locatie van een account door het Power BI-rapport te filteren met de accountnaam. Hierdoor kan in één rapport gecontextualiseerde informatie worden weergegeven voor alle rijen van de tabel.

Ingesloten Power BI-rapport met contextueel filteren.

De filtering wordt uitgevoerd door een <PowerBIFilter>-element in het blok <parameter> toe te voegen, zoals hier wordt weergegeven. U kunt elk kenmerk van de tabel van het formulier gebruiken om de filterexpressie te maken. Meer informatie: Filters maken om te begrijpen hoe u uw eigen filters kunt maken.

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

Houd er rekening mee dat hiervoor hetzelfde besturingselement wordt gebruikt als bij het insluiten van het ongefilterde rapport. Daarom blijft de klasse-id van het besturingselement ongewijzigd.

In de volgende tabel worden alle aanvullende eigenschappen beschreven die in het vorige XML-voorbeeld zijn gebruikt.

Eigenschap Beschrijving
PowerBIFilter De filterexpressie waarmee het Power BI-rapport wordt gecontextualiseerd door de formulierkenmerken als parameters door te geven. Om het leesbaarder te maken, wordt het filter gemaakt zoals hier wordt weergegeven. De filterexpressie mag geen door komma's gescheiden lijst met waarden zijn.
    {
            "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"
            }
    }

Met het doelonderdeel van de vorige expressie worden de tabel en de kolom geïdentificeerd die op de filters moeten worden toegepast. Met de operator wordt de logica geïdentificeerd en met de waarden worden de gegevens geïdentificeerd die vanuit de modelgestuurde Power Apps-app worden doorgegeven. Om parameters op een algemene manier toe te voegen, worden de waarden gemaakt door aliassen te maken. In de vorige expressie worden de waarde firstname en de waarde lastname van een account doorgegeven, en beide waarden worden gezocht in de kolom Accountnaam in het Power BI-rapport. Houd er rekening mee dat firstname en lastname de unieke namen van kenmerken van de accounttabel zijn, waarvan de waarde hier wordt doorgegeven.

U kunt complexere filterexpressies maken door voorbeelden te bekijken via Filters maken en de juiste waarden te verschaffen voor $schema en filterType. Zorg ervoor dat voor elke letterlijke waarde in het filteronderdeel een escape-teken wordt gebruikt met ", zodat JSON correct wordt gegenereerd.

Ongewijzigd kenmerk verwijderen vóór importeren

Voordat u de oplossing in de doelomgeving importeert, moet u ervoor zorgen dat het ongewijzigde kenmerk niet is opgenomen in de formXml-sectie van het bestand customizations.xml. Als het ongewijzigde kenmerk aanwezig is in de XML die het Power BI-besturingselement XML bevat, verwijdert u het kenmerk voordat u de oplossing in de doelomgeving importeert. Vervang bijvoorbeeld <systemform unmodified="1"> door <systemform>.

De Power BI-werkruimte en rapport-id's vinden

  1. De werkruimte-id voor dit voorbeeld is efc85277-2bdb-47bc-9762-363f64335108.
  2. De rapport-id voor dit voorbeeld is 643ab643-7126-4a57-bd82-ca8f1fb676fc. Voorbeeld van Power BI-werkruimte-id en rapport-id

Bekende problemen en beperkingen

  • Deze integratie is alleen beschikbaar in de Unified Interface-client, in ondersteunde webbrowsers en op mobiele apparaten.

  • Als dit formulier in de Power Apps-formulierontwerper wordt geopend, wordt het besturingselement niet op een zinvolle manier weergegeven. Dit komt doordat het besturingselement buiten de formulierontwerper wordt aangepast.

  • Gebruikers worden automatisch in Power BI geverifieerd aan de hand van hun gebruikersnaam en wachtwoord voor Power Apps. Als er geen Power BI-account met overeenkomende referenties bestaat, wordt een aanmeldingsprompt weergegeven, zoals u hier ziet.

    Power BI-aanmeldprompt.

    Er worden geen gegevens weergegeven als een onjuist account wordt gebruikt voor aanmelding bij Power BI. Als u zich met de juiste referenties aanmeldt, meldt u zich af en weer aan.

    Aanmelden bij Power BI-service.

    Gebruiker die is aangemeld heeft niet de juiste machtiging.

  • De weergave van de rapportgegevens die in Power Apps worden getoond, is hetzelfde als die in Power BI, en beveiligingsrollen en bevoegdheden van Power Apps zijn niet van invloed op de gegevens die worden weergegeven. Daarom zijn de gegevens hoofdzakelijk hetzelfde als wat de maker van de gegevensset van Power BI ziet. Als u gegevenstoegangsbeperkingen wilt toepassen die vergelijkbaar zijn met de beveiligingsrollen en teams van Power Apps, gebruikt u Beveiliging op rijniveau met Power BI.

  • Als in het formulier het Power BI-rapport niet wordt weergegeven na het importeren van de oplossing en het publiceren van aanpassingen, opent u het in de modelgestuurde formuliereneditor en slaat u het op, zodat JSON voor het formulier opnieuw wordt gegenereerd.

  • Het insluiten van een Power BI-tegel op een formulier wordt alleen ondersteund zonder contextueel filteren.

  • Het insluiten van een Power BI-rapport ondersteunt geen cross-tenant verwijzingen. Het proberen insluiten van een Power BI-rapport van de Contoso-tenant in een modelgestuurde app van de Fabrikam-tenant wordt momenteel bijvoorbeeld niet ondersteund, zelfs niet als het ingesloten rapport is gedeeld met gebruikers in de Fabrikam-tenant via Power BI.

Algemene problemen

  • De groeps-id is niet opgegeven in het knooppunt TileUrl van de besturingselementparameters terwijl dat wel zou moeten. Dit voorbeeld bevat een groeps-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>
  • Velden hebben verschillende gegevenstypen in Power BI en Dataverse. Ze moeten van hetzelfde type zijn, zoals tekenreeks in Power BI en tekenreeks in Dataverse.
  • Tekenreeksvelden hebben geen aanhalingstekens in het Power BI-filter. Zoals u ziet, bevat values [\"$a\"] in plaats van [$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",
            }
    }

Zie ook

Een Power BI-dashboard insluiten in een modelgestuurd persoonlijk dashboard van Power Apps

Power BI gebruiken met Dynamics 365-apps

Notitie

Laat ons uw taalvoorkeuren voor documentatie weten! Beantwoord een korte enquête. (houd er rekening mee dat deze in het Engels is)

De enquête duurt ongeveer zeven minuten. Er worden geen persoonlijke gegevens verzameld (privacyverklaring).