Einbetten eines schnellen Berichts in eine eingebettete Power BI-Analyseanwendung für Ihre Organisation

Mit Power BI-Client-APIs können Sie schnell einen interaktiven Bericht und ein Dataset aus den Daten Ihrer Anwendung erstellen, ohne dass Ihre Benutzer Ihre App verlassen müssen. Mithilfe dieser clientseitigen Bibliothek geben Sie Informationen zur Datenquelle an, die Power BI zum Generieren eines Datasets innerhalb des Power BI-Diensts verwendet. Gleichzeitig generiert Power BI automatisch einen Bericht mit Einblicken zu den Daten für Ihre Benutzer, um ihre Anforderungen zu untersuchen und anzupassen.

In diesem Lernprogramm erfahren Sie, wie Sie:

  • Einrichten Ihrer eingebetteten Umgebung
  • Konfigurieren eines Objekts zum Speichern von Informationen zu Ihrer Datenquelle und Anpassen des Berichts
  • Übergeben Sie dieses Objekt an die API, um Ihrer App Datenerkundungsfunktionen hinzuzufügen.

Um diese Erfahrung zu verwenden, müssen sich Ihre Benutzer bei Power BI anmelden.

Sie verwenden ein Konfigurationsobjekt, um Informationen zu Ihrer Datenquelle zu speichern. Darüber hinaus können Sie das Konfigurationsobjekt verwenden, um die Darstellung und das Verhalten Des Berichts anzupassen. Sie können z. B. das Design und die Positionseinstellungen im Konfigurationsobjekt anpassen. Wenn Sie das Dataset erstellen und einbetten, übergeben Sie dieses Objekt dann an die API.

Wichtig

Wenn Sie Inhalte für eine nationale Cloud einbetten, unterscheiden sich die ersten Schritte dieses Lernprogramms. Weitere Informationen finden Sie unter Einbetten von Inhalten für nationale Clouds.

Voraussetzungen

Bevor Sie dieses Lernprogramm starten, stellen Sie sicher, dass Sowohl die Power BI- als auch die Codeabhängigkeiten unten aufgeführt sind:

Methode

In den folgenden Abschnitten wird erläutert, wie Power BI-Inhalte mithilfe Ihres bevorzugten Text-Editors eingebettet und konfiguriert werden.

Die IQuickCreateConfiguration Schnittstelle zeigt Eigenschaften an, die ein Konfigurationsobjekt den Power BI-Client-APIs über das Dataset bereitstellen kann, das Sie erstellen möchten:

Beispiel

interface IQuickCreateConfiguration { 
    type?: "quickCreate"; 
    accessToken: string; 
    settings?: ISettings; 
    tokenType?: TokenType; 
    theme?: IReportTheme; 
    embedUrl?: string; 
    datasetCreateConfig: IDatasetCreateConfiguration; 
    reportCreationMode?: ReportCreationMode; 
    eventHooks?: EventHooks; 
}

Zugriffstokenberechtigung für QuickCreate

QuickCreate unterstützt nur AAD-Token. Stellen Sie sicher, dass Ihre Anwendung über die folgenden Bereiche verfügt:

  • Content.Create
  • Dataset.ReadWrite.All
  • Report.Read.All
  • Workspace.Read.All

Weitere Informationen finden Sie unter Registrieren einer App zum Einbetten von Power BI-Inhalten.

Einbettungs-URL

Einzigartig für diese Form der Einbettung, hat diese Erfahrung eine spezielle Route /quickcreate. Eine typische Einbettungs-URL für diese Oberfläche sieht wie folgt aus: https://app.powerbi.com/quickcreate

Schritt 1.1 – Erstellen eines Datasets ohne Datenquelle

PowerBI bietet eine einfache Möglichkeit, Entwicklern das direkte Einschließen von Daten in die Anforderung an Power BI zu ermöglichen, wenn Sie keine Datenquelle einrichten können. Wir beschränken die Größe der Anforderung auf 16 MB. Beachten Sie, dass das Dataset nach der Erstellung nicht aktualisiert werden kann, da es keine Datenquelle für Power BI gibt, mit der eine Verbindung hergestellt werden kann.

  1. IDataTable

    IDataTable ist im Wesentlichen ein Wrapper eines 2D-Zeichenfolgenarrays, in dem Sie Ihre Daten ausfüllen sollten. Obwohl Es sich bei Daten um ein Array handelt, werden derzeit nur 1 Datentabellen unterstützt. Der Name kann von Ihnen festgelegt werden, muss aber mit dem Namen in ITableSchema übereinstimmen.

    Damit Power BI Ihre Daten im richtigen Format analysieren kann, sollten Ihre Datenwerte nach der M-Sprachwertspezifikation formatiert werden. Die in IQuickCreateConfiguration definierte Gebietsschemaeigenschaft wirkt sich auch auf die Analyse der Werte aus. Weitere Informationen finden Sie unter M Language-Werte – PowerQuery M.

    Ihre Daten sollten in Zeilen übergeben werden. Jede Zeile sollte dieselbe Anzahl von Spalten enthalten, die in ITableSchema definiert sind.  

    Anmerkung

    Daten und tableSchemaList müssen in Paaren enthalten sein.

Beispiel

const data: IDataTable = [
    { "name": "MyTableName", 
      "rows": [ 
              ["1", "1", "1991"], 
              ["1", "1", "1991"], 
        ]
    } 
] 

Anmerkung

Derzeit kann die eigenschaft name nicht angepasst werden, sodass Sie keine Tabelle benennen können. Der Standardname für die Eigenschaft lautet "Table".

  1. ITableSchema

    Damit Power BI Ihre Daten verstehen kann, müssen Sie das Schema für jede Spalte der Tabelle angeben. Jedes Spaltenschema muss über einen Namen und einen Typ verfügen. Der Name wird nach dem Erstellen des Datasets als Feldlistenname verwendet. Der Typ ist eine Teilmenge der M Language-Typspezifikation. Die unterstützten Typen werden bequem in DataType aufgeführt. Weitere Informationen finden Sie unter M-Sprachtypen – PowerQuery M.

    Ähnlich wie die Dateneigenschaft, obwohl tableSchemaList als Array definiert ist, unterstützen wir derzeit nur eine einzelne Tabelle.

    export const enum DataType { 
        Number = "Number", 
        Currency = "Currency", 
        Int32 = "Int32", 
        Percentage = "Percentage", 
        DateTime = "DateTime", 
        DateTimeZone = "DateTimeZone", 
        Date = "Date", 
        Time = "Time", 
        Duration = "Duration", 
        Text = "Text", 
        Logical = "Logical", 
        Binary = "Binary",  
        }
    

    Zusätzlich zu Name und DataType können Benutzer die Standardaggregation für Spalten angeben, indem sie eine optionale Eigenschaft aggregateFunction für jede Spalte angeben. Die Zahl für unterstützte Aggregatfunktionen basiert auf dem AggregateFunction Enum Typ.

Beispiel

const tableSchemaList: ITableSchema = [{ 
    name: "MyTableName",  
    columns: [ 
        { 
            name: "createdby", 
            dataType: DataType.Text
             aggregateFunction: 6 // Count 
        }, 
        { 
            name: "createdon", 
            dataType: DataType.DateTime 
        }, 
        { 
            name: "size", 
            dataType: DataType.Number 
        } 
    ]     
}];   
const data: IDataTable = [
    { 
        "name": "MyTableName", 
        "rows": [ 
                ["1", "1", "1991"],
                ["1", "1", "1991"],
        ]
    }
] 
const datasetCreateConfig: IDatasetCreateConfiguration = {
    "modelName": "my model", 
    "locale": "en_US", 
    "tableSchemaList": tableSchemaList,
    "data": data
} 

Schritt 1.2 – Erstellen eines Datasets mit ihrer vorhandenen Datenquelle

IDatasetCreateConfiguration ist eine Konfiguration, mit der Power BI wissen kann, wie das Dataset erstellt wird. Dazu gehören das Mashup-Dokument, das Gebietsschema des Datasets und die Verbindungsinformationen, die Power BI angibt, wie eine Verbindung mit Ihrer Datenquelle hergestellt werden kann.

Mashup-Dokument

Mashup-Dokumente oder M-Dokumente verfügen über eigene Sprachspezifikationen. Für diese Einbettungsumgebung besteht die einfachste Möglichkeit, eine Verbindung mit der Datenquelle Ihrer Wahl in Power BI Desktop herzustellen und dann die resultierende Mashup-Abfrage aus der Abfrage-Editor-Ansicht zu kopieren. Weitere Informationen finden Sie in der dokumentation Abfrage-Editor für Power BI Desktop.

Beispiel

Let Source = Csv.Document(Web.Contents("https://yourdomain.com/sample.csv"), [Delimiter=",", QuoteStyle=QuoteStyle.None]), #"Promoted Headers" = Table.PromoteHeader(Source, [PromoteAllScalars=true]) in #"Promoted Headers";" 

Um den obigen Quellcode in ein Mashupdokument umzuwandeln, müssen Sie lediglich einen Abschnitthinzufügen. Ein Abschnitt enthält:

  • Abschnittsname;
  • Freigegebener Abschnittsmitgliedsname = Ausdruck;
  • dabei handelt es sich um Ihre Mashupabfrage,
  • und der Name des Abschnittsmitglieds wird in Power BI als Tabellen-/Entitätsname angezeigt.

Für die oben bereitgestellte Mashup-Beispielabfrage ist hier ein entsprechendes Mashup-Dokumentbeispiel:

"section Section1; shared #"Table" = let Source = Csv.Document(Web.Contents("https://yourdomain.com/sample.csv"), [Delimiter=",", QuoteStyle=QuoteStyle.None]), #"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]) in #"Promoted Headers";" 

  Sobald Sie ihr Mashupdokument haben, können Sie identifizieren, welche Teile statisch sind und welche Teile dynamisch sind und programmgesteuert ausgefüllt werden können. Im obigen Beispiel verfügen wir über einige anpassbare Variablen, die Webinhaltsdomäne, das Trennzeichen, das Anführungszeichen, und wenn Sie die Kopfzeilen höher stufen möchten oder nicht. Daher kann die Abfrage in eine Vorlage umgewandelt und mit den entsprechenden Parametern auf der Hostinganwendungsseite aufgefüllt werden, je nachdem, welche Daten der Benutzer zum Zeitpunkt in Anspruch nimmt.

Gebietsschema

PowerBI verwendet die in dieser Konfiguration bereitgestellten Gebietsschemainformationen, um das Mashup-Dokument auszuwerten und Werte zu analysieren, wenn Rohdaten bereitgestellt werden.

Datenquellenkonfiguration

Autorisierung für die Datenquelle

Derzeit unterstützen wir nur anonyme Verbindungen zu Datenquellen. Dies bedeutet, dass Power BI ohne Authentifizierung in der Lage sein muss, eine Verbindung mit Ihrer Datenquelle herzustellen.

Anmerkung

Wenn Sie die Daten direkt in die Anforderung aufnehmen, sollten Sie die dataSourceConnection-Eigenschaft weglassen.

DataCacheMode

Für die meisten Datenquellen sollte Import Modus Ihren Anforderungen entsprechen. In einigen Fällen, in denen daten schnell geändert werden oder Datenquellen sehr groß sind, können Sie auch den DirectQuery-modus verwenden. Wenn Sie der Meinung sind, dass dies für Sie gelten könnte, lesen Sie weitere Informationen zu DirectQuery in Power BI.

Anmerkung

Wenn Sie Rohdaten in die Anforderung einschließen, muss dataCacheMode importiert werden.

Probe

const datasetCreateConfig: IDatasetCreateConfiguration = { 
    "modelName": "temp model", 
    "locale": "en_US", 
    "mashupDocument": "section Section1; shared Table = let Source = Csv.Document(Web.Contents(\"https://yourdomain.com/sample.csv\"),[Delimiter=\",\", QuoteStyle=QuoteStyle.None]), #\"Promoted Headers\" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]) in #\"Promoted Headers\";", 
    "dataSourceConnection": { 
        "credentialType": CredentialType.Anonymous, // =1 
        "dataCacheMode": DataCacheMode.Import // =1 
    } 
} 

Schritt 2 : Erstellen eines Datasets und automatisch generieren eines Berichts

Nachdem Sie nun die datasetCreateConfig festgelegt haben, können Sie das Dataset generieren und einen automatisch generierten Bericht einbetten. Dies ähnelt der createReport Methode, mit der Sie in berichtseinbettung erstellen können, die quickCreate Methode, die in einem iframe-Container verwendet wird, und der quickCreateConfig Methode, mit der Sie den Bericht einbetten können.

Beispiel

const powerbi = window.powerbi; 
const iframeContainer = document.getElementById("myIframeContainer"); 
const quickCreateConfig: IQuickCreateConfiguration = { 
    type: "quickCreate", 
    accessToken: "ey.....",  
    tokenType: TokenType.Aad, // Aad token only 
    embedUrl: "https://app.powerbi.com/quickcreate", // see below for generating the embed url 
    datasetCreateConfig: datasetCreateConfig, 
    reportCreationMode: ReportCreationMode.QuickExplore, // QuickExplore for auto-generated visual,    
    settings: { 
        localeSettings: { 
            language: "en_US" // this should match the current locale of your window/product. It will be used to localize the UI. 
        } 
    } 
}; 
const quickCreateReport = powerbi.quickCreate(iframeContainer, quickCreateConfig);