Dynamisches Binden von Datasets an einen paginierten Bericht
Power BI-Berichte und paginierte Berichte basieren auf einem vorhandenen Dataset. Dieses Dataset definiert das Datenschema, das von den visuellen Elementen des Berichts verwendet wird. Mithilfe der dynamischen Bindung können Sie ein Dataset dynamisch auswählen, wenn Sie ein visuelles Seitenbericht-Element einbetten.
Die von Ihnen ausgewählten Datasets müssen dasselbe Datenschema verwenden. Wenn Sie über mehrere Datasets mit demselben Datenschema verfügen, kann Ihr Bericht dynamisch eine Verbindung mit jedem dieser Datasets herstellen oder binden. Je nach Ihren Anforderungen können Sie dann unterschiedliche Einblicke anzeigen.
Dynamische Bindung bietet auch andere Vorteile. Sie müssen keine Kopie desselben Berichts mit einem anderen Dataset für jeden Benutzer erstellen. Ein Bericht kann mehreren Benutzern dienen. Dieses Feature reduziert dann die Anzahl der verwalteten Elemente und verbessert die Anwendungslebenszyklusbehandlung. Daher vereinfacht die dynamische Bindung das Onboarding für neue Kunden.
So verbinden Sie einen Bericht dynamisch mit mehreren Datasets
Ihre Berichte und Datasets können in separaten Arbeitsbereichensein, beide Arbeitsbereiche müssen jedoch über eine Kapazität verfügen.
Wenn Sie Kunden einbetten, muss das Einbettungstoken Berechtigungen sowohl für den Bericht als auch für das dynamisch gebundene Dataset enthalten. Verwenden Sie die neue API, um ein Einbettungstoken zu generieren, das Power BI-Elemente wie Berichte und Dashboards unterstützt.
Wenn Sie für Ihre Organisation einbetten, muss das azure Active Directory (AD)-Token des Benutzers, das Sie verwenden, über entsprechende Berechtigungen für alle Power BI-Elemente verfügen.
Beispiel 1: Einbetten eines paginierten Berichts mit dynamischer Bindung
Um einen eingebetteten Paginated-Bericht mithilfe der dynamischen Bindung zu implementieren, fügen Sie die datasetBindings
-Eigenschaft zum Einbettungskonfigurationsobjekt hinzu, wie im folgenden Beispiel gezeigt.
let config = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: accessToken,
embedUrl: embedUrl,
id: "reportId",
permissions: permissions,
datasetBindings: [{
sourceDatasetId: "originalDatasetId",
targetDatasetId: "notOriginalDatasetId"
}]
};
// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];
// Embed the report and display it within the div container.
let report = powerbi.embed(embedContainer, config);
Beispiel 2: Einbetten eines visuellen Paginierten Berichts mit dynamischer Bindung
Ein ausgelagerter Bericht ist ein paginierter Bericht, der in einen Power BI-Bericht eingebettet ist. Fügen Sie zum Implementieren eines eingebetteten paginierten Berichts mithilfe der dynamischen Bindung die datasetBinding
-Eigenschaft zum Einbettungskonfigurationsobjekt hinzu, wie im folgenden Beispiel gezeigt.
let config = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: accessToken,
embedUrl: embedUrl,
id: "reportId",
permissions: permissions,
datasetBinding: {
datasetId: "notOriginalDatasetId",
paginatedReportBindings: [{
sourceDatasetId: "originalDatasetId",
targetDatasetId: "notOriginalDatasetId"
}]
}
};
// Get a reference to the embedded report HTML element.
let embedContainer = $('#embedContainer')[0];
// Embed the report and display it within the div container.
let report = powerbi.embed(embedContainer, config);
Überlegungen und Einschränkungen
- Das dynamisch ausgewählte Dataset muss dasselbe Datenschema im Bericht verwenden.
- Generieren Sie beim Einbetten für Kunden ein Einbettungstoken mithilfe der neuen API.
- Stellen Sie beim Einbetten für Ihre Organisation sicher, dass der Benutzer über Berechtigungen für den Bericht und das Dataset verfügt.
- Die
datasetBinding
-Eigenschaft darf nicht leer sein. Sie solltedatasetId
,paginatedReportBindings
oder beide enthalten. - Die Werte für
datasetId
undtargetDatasetId
müssen nicht identisch sein. Die Bindung funktioniert unabhängig für PBIX-- und Paginated-Berichte. - Die
datasetBinding
-Eigenschaft kann mehrere Objekte enthalten.