Freigeben über


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

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 dieses Feature muss eine Lösung exportiert, dann geändert werden, um den XML-Ausschnitt zu ersetzen, und dann wieder zurück in die Umgebung importiert werden. Vergessen Sie nicht, die Änderungen nur über eine nicht verwaltete Lösung in die Entwicklungsumgebung zu importieren. Informationen zur Installation eines Updates für eine vorhandene nicht verwaltete Lösung finden Sie unter Lösungen importieren, aktualisieren und exportieren.

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 controls-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. Wählen Sie die Option Komponenten auswählen aus, wenn Sie die Tabelle zur Lösung hinzufügen. Fügen Sie dann nur das Hauptformular der Tabelle hinzu.

  2. Bearbeiten Sie das Hauptformular der Tabelle in Ihrer Lösung, und fügen Sie ein Platzhalterunterraster hinzu, in das Sie Ihren Power BI-Bericht einbetten möchten.

    • Aktualisieren Sie die Beschriftung und den Namen Ihres Unterrasters im Formulardesigner.

    Eingebetteter Power BI-Platzhalter

  3. Exportieren Sie die Lösung als nicht verwaltet, und extrahieren Sie alle Dateien in der ZIP-Datei des Lösungspakets. Bearbeiten Sie dann die customizations.xml-Datei und suchen Sie den Namen Ihres Unterrasters. Ersetzen Sie den im <control>-Block in der customizations.xml-Datei bereitgestellten XML-Code. Die rowspan im übergeordneten cell-Knoten kann angepasst werden, um die Größe des eingebetteten Power BI-Berichts zu ändern.

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

    Wichtig

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

    • 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
    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.
  4. Erstellen Sie eine ZIP-Datei aus allen zuvor extrahierten Lösungsdateien. Anschließend importieren Sie die Lösung in die Entwicklungsumgebung.

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.

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. Beispiel für Power BI-Arbeitsbereichs-ID und Berichts-ID

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.

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

    Melden Sie sich bei Power BI Service an.

    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.

  • Angeheftete Berichte als Teil von Power BI-Dashboards sind nicht dafür vorgesehen, interaktiv zu sein. Wenn Sie interaktive Power BI-Berichte haben möchten, betten Sie sie direkt ein, anstatt sie an ein Dashboard anzuheften.

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