Einbetten eines Power BI-Berichts in ein modellgesteuertes App-Hauptformular

Wichtig

Es gibt eine bessere Möglichkeit, einen Power BI-Bericht zu einem modellgesteuertes App-Formular hinzuzufügen. Weitere Informationen: Das Power BI-Berichtssteuerelement verwenden, um einen Bericht hinzuzufügen

Sie können Power BI-Berichte in Power Apps-Modell-basierten Anwendungen verwenden, um Ihren Hauptformularen umfangreiche Berichte und Analysen zu liefern und Ihre Benutzer zu befähigen, mehr zu erreichen. Dadurch erhalten Sie die Möglichkeit, Daten über Systeme hinweg freizugeben und bis hin zum Kontext eines einzelnen Datensatzes anzupassen.  

Voraussetzungen

Das Einbetten von Power BI-Inhalt ist eine optionale Funktion und auf allen Umgebung standardmäßig deaktiviert. Sie müssen sie aktivieren, bevor Sie Power BI-Inhalt einbetten können. Weitere Informationen: Aktivieren von Power BI-Visualisierungen in der Organisation.

Für diese Funktion muss eine Lösung exportiert, dann geändert werden, um den XML-Ausschnitt hinzuzufügen, und dann wieder zurück in die Umgebung importiert werden. Vergessen Sie nicht, die Änderungen nur über eine verwaltete Lösung in die Zielumgebung zu importieren. Siehe Lösungen importieren, aktualisieren und exportieren für Anleitungen zur Installation eines Updates für eine vorhandene verwaltete Lösung.

Einbetten ohne kontextbezogene Filterung

Sie können Power BI-Berichte verwenden, indem Sie sie einbetten, und Sie erhalten genau den gleichen Bericht. Hierzu werden sie nicht dem Kontext des aktuellen modellgestützten Formulars zugeführt, und daher erhalten Sie den gleichen Bericht auf allen Datensätzen der Tabelle. Beispielsweise zeigt der folgende Bericht den geografischen Standort aller Firmen gleichzeitig an, und ist nützlich, um Zusammenfassungsinformationen anzuzeigen.

Eingebetteter Power BI-Bericht ohne kontextbezogene Filterung

Sie können ein Hauptformular-XML sections-Knoten anpassen, damit er einen eingebetteten Power BI-Bericht und Kachel hosten kann, indem Sie die folgenden Schritte ausführen:

  1. Erstellen Sie in Ihrer Entwicklungsumgebung eine Lösung und fügen Sie die Tabelle hinzu, die das Hauptformular enthält, in das Sie den eingebetteten Power BI-Bericht einfügen möchten.

    • Wenn die Tabelle bereits in der Zielumgebung vorhanden ist, in die Sie die Lösung importieren, wählen Sie die Option Komponenten auswählen, wenn Sie die Tabelle zur Lösung hinzufügen. Fügen Sie dann nur das Hauptformular der Tabelle hinzu.
    • Wenn die Tabelle nicht in der Zielumgebung vorhanden ist, in die Sie die Lösung importieren, wählen Sie Alle Komponenten einschließen, wenn Sie die Tabelle zur Lösung hinzufügen.
  2. Exportieren Sie die Lösung als verwaltet.

  3. Extrahieren Sie alle Dateien in der ZIP-Datei des Lösungspakets. Bearbeiten Sie dann die Datei „customizations.xml“ und fügen Sie den unten bereitgestellten XML-Code in den <sections>-Block ein, der sich im Inneren des <forms type="main">-Knoten in der Datei „customizations.xml“ befindet.

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

Wichtig

Vergewissern Sie sich, dass Sie das Steuerelement classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}" wie im XML-Beispiel angegeben verwenden.

  1. Nehmen Sie die folgenden Änderungen an der Formular-XML vor, die Sie in die Datei „customizations.xml“ für Ihren Power BI-Prüfbericht kopiert haben. In dieser Tabelle werden die Werte beschrieben, die Sie für die Elemente im vorherigen XML-Beispiel ändern müssen.
Eigenschaften Beschreibung des Dataflows
PowerBIGroupId Die Power BI-Arbeitsbereichs-ID. Wenn Ihr Bericht in Mein Arbeitsbereich ist**, dann lautet die Arbeitsbereichs-ID 00000000-0000-0000-0000-000000000000. Fügen Sie andernfalls die Arbeitsbereichs-ID hinzu. Die ID Ihres Arbeitsbereichs finden Sie in der Power BI-Dienst-URL. Weitere Informationen: Finden Sie die Power BI-Arbeitsbereichs- und Berichts-IDs.
PowerBIReportId Die Power BI-Berichts-ID. Ersetzen Sie diese durch den Bericht, den Sie einbetten möchten. Die ID Ihres Berichts finden Sie in der Power BI-Dienst-URL. Weitere Informationen: Finden Sie die Power BI-Arbeitsbereichs- und Berichts-IDs
TileUrl Die URL des Power BI-Berichts, den Sie einbetten möchten. Stellen Sie sicher, dass Sie den richtigen Power BI Unterdomänennamen (Sie müssen möglicherweise app.powerbi.com mit Ihrer eigenen ersetzen) die richtige Bericht-ID (ersetzen reportId=544c4162-6773-4944-900c-abfd075f6081 mit Ihrer eigenen). Zum Beispiel: https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081.
solutionaction="Added" Wenn die Tabelle bereits in der Zielumgebung vorhanden ist, verlassen Sie den solutionaction=Added-Parameter für das Zellenelement wie im XML-Beispiel bereitgestellt. Wenn die Tabelle in der Zielumgebung nicht vorhanden ist, entfernen Sie den solutionaction=Added-Parameter.
  1. Erstellen Sie eine ZIP-Datei aus allen zuvor extrahierten Lösungsdateien. Anschließend importieren Sie die Lösung in die Zielumgebung.

Einbetten mit kontextbezogener Filterung

Sie können die Power BI-Berichte sinnvoller machen, indem Sie die kontextbezogenen Filter auf das aktuelle modellgesteuerte Formular anwenden, damit der Bericht anhand der Attribute der aktuellen Spalte gefiltert wird. Beispielsweise zeigt der folgende Bericht den geografischen Standort einer Firma durch Filterung des Power BI-Berichts mithilfe des Firmennamens. Damit können auf einem einzelnen Bericht kontextbezogene Informationen für alle Zeilen der Tabelle angezeigt werden.

Eingebetteter Power BI Bericht mit kontextbezogener Filterung

Die Filterung wird durchgeführt, indem ein <PowerBIFilter>-Element in den <parameter>-Block hinzufügt wird, wie hier dargestellt. Sie können ein beliebiges Attribut der Tabelle das Formulars verwenden, um den Filterausdruck zu erstellen. Weitere Informationen: Erstellen von Filtern zur Information über die Erstellung eigener 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>

Beachten Sie, dass dafür dasselbe Steuerelement wie beim Einbetten des ungefilterten Berichts verwendet wird, und dass die ID der Steuerelementklasse daher unverändert bleibt.

Diese Tabelle beschreibt alle zusätzlichen Eigenschaften, die im XML-Beispiel festgelegt wurden.

Eigenschaft Beschreibung
PowerBIFilter Der Filterausdruck, der den Kontextbezug des Power BI-Berichts bietet, indem die Formularattribute als Parameter übergeben werden. Um die Lesbarkeit zu steigern, wird der Filter wie hier gezeigt erstellt. Der Filterausdruck kann keine kommagetrennte Liste von Werten sein.
    {
            "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"
            }
    }

Der Zielanteil des vorherigen Ausdrucks identifiziert die Tabelle und die und die Spalte, auf die der Filter angewendet wird. Der Bediener identifiziert die Logik und Werte identifizieren die von der Power Apps modellgetriebenen App übergebenen Daten. Für eine generelle Parameterisierung werden die Werte durch Verwendung von Alias erstellt. Im letzten Ausdruck werden die Werte von Vorname und Nachname einer Firma übergeben, und einer davon wird in der Spalte Firmenname im Power BI-Bericht gesucht. Beachten Sie, dass Vorname und Nachname die eindeutigen Namen von Attributen der Firmentabelle sind, deren Wert hier übergeben wird.

Sie können auch komplexere Filterausdrücke erstellen, indem Sie sich Beispiele für das Erstellen von Filtern ansehen und die entsprechenden Werte für $schema und filterType zur Verfügung stellen. Stellen Sie sicher, jedes Literal im Filterteil mit " zu umgeben, damit das JSON ordnungsgemäß generiert wird.

Unverändertes Attribut vor dem Import entfernen

Stellen Sie vor dem Importieren der Lösung in die Zielumgebung sicher, dass das unveränderte Attribut nicht im Abschnitt „formXml“ der Datei „customizations.xml“ enthalten ist. Wenn das unveränderte Attribut in der XML vorhanden ist, die die Power BI-Steuerelement-XML enthält, entfernen Sie das Attribut, bevor Sie die Lösung in die Zielumgebung importieren. Ersetzen Sie beispielsweise <systemform unmodified="1"> durch <systemform>.

Finden Sie die Power BI-Arbeitsbereichs- und Berichts-IDs

  1. In diesem Beispiel lautet die Arbeitsbereichs-ID efc85277-2bdb-47bc-9762-363f64335108.
  2. In diesem Beispiel lautet die Berichts-ID 643ab643-7126-4a57-bd82-ca8f1fb676fc. Power BI-Arbeitsbereichs-ID und Berichts-ID-Beispiel

Bekannte Probleme und Einschränkungen

  • Diese Integration ist nur im Client der einheitlichen Oberfläche, auf unterstützten Webbrowsern und mobilen Geräten verfügbar.

  • Das Öffnen dieses Formulars im Power Apps-Formulardesigner zeigt das Control nicht sinnvoll an. Dies geschieht, weil das Steuerelement nicht außerhalb des Formular-Designers angepasst wird.

  • Die Benutzer werden automatisch mit ihrem Power Apps Benutzernamen und Passwort bei Power BI authentifiziert. Wenn kein Power BI-Konto mit passenden Anmeldeinformationen vorhanden ist, wird eine Anmeldeaufforderung angezeigt, wie hier dargestellt.

    Power BI-Anmeldeaufforderung

    Es werden keine Daten angezeigt, wenn ein falsches Konto zum Anmelden in Power BI verwendet wird. Um sich mit den richtigen Anmeldeinformationen anzumelden, melden Sie sich ab und wieder an.

    Beim Power BI-Dienst anmelden

    Der angemeldete Benutzer verfügt nicht über die entsprechende Berechtigung

  • Die Ansicht der in Power Apps angezeigten Berichtsdaten ist die gleiche wie in Power BI. Power Apps-Sicherheitsrollen und -Rechte haben keinen Einfluss auf die angezeigten Daten. Daher werden sind die Daten im Wesentlichen identisch zu dem, was der Ersteller des Power BI-Datensatzes sehen würde. Um Datenzugriffsbeschränkungen ähnlich wie bei Power Apps Sicherheitsrollen und -teams anzuwenden, verwenden Sie Row-Level Security (RLS) mit Power BI.

  • Wenn das Formular den Power BI-Bericht nach dem Import der Lösung und der Veröffentlichung von Anpassungen nicht anzeigt, öffnen Sie ihn im modellgesteuerten Formular-Editor und speichern Sie ihn, damit das Formular-JSON erneut erstellt wird.

  • Integrieren einer Power BI-Kachel in ein Fomular wird nur ohne kontextbezogene Filterung unterstützt.

  • Das Einbetten eines Power BI-Berichts unterstützt keine mandantenübergreifenden Verweise. Beispielsweise wird der Versuch, einen Power BI-Bericht des Contoso-Mandanten in eine modellgesteuerte App einzubetten, die zum Fabrikam-Mandanten gehört, derzeit nicht unterstützt, selbst wenn der einzubettende Bericht mit Benutzenden über Power BI im Fabrikam-Mandanten geteilt wurde.

Häufige Probleme

  • Die Gruppen-ID ist nicht im TileUrl-Knoten der Steuerelementparameter festgelegt, wenn dies erforderlich ist. Dieses Beispiel enthält eine Gruppen-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>
  • Felder haben unterschiedliche Datentypen in Power BI und Dataverse. Sie müssen vom gleichen Typ sein, z. B. Zeichenfolge in Power BI und Zeichenfolge in Dataverse.
  • Zeichenfolgenfelder haben keine Escape-Anführungszeichen im Power BI-Filter. Beachten Sie, dass values [\"$a\"] anstelle von [$a] hat.
    {
            "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",
            }
    }

Siehe auch

Einbetten eines Power BI Dashboards in ein Power Apps modellgetriebenes persönliches Dashboard

Verwenden Sie Power BI mit Dynamics 365 Apps

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).