ページ分割されたレポートにデータセットを動的にバインドする

Power BI レポートとページ分割されたレポートは、既存のデータセットに基づいて構築されます。 そのデータセットは、レポート ビジュアルが使用するデータ スキーマを定義します。 動的バインドを使用すると、ページ分割されたレポート ビジュアルを埋め込むときに、その場でデータセットを選択できます。

選択するデータセットは、同じデータ スキーマを使用する必要があります。 同じデータ スキーマを持つ複数のデータセットがある場合、レポートはそれらの各データセットに動的に接続またはバインドできます。 その後、ニーズに応じてさまざまな分析情報を表示できます。

動的バインディングには、他の利点もあります。 ユーザーごとに異なるデータセットを含む同じレポートのコピーを作成する必要はありません。 1 つのレポートで複数のユーザーにサービスを提供できます。 この機能により、保守される項目の数が減り、アプリケーションのライフサイクル処理が改善されます。 その結果、動的バインドにより、新しい顧客のオンボードが簡略化されます。

レポートを複数のデータセットに動的に接続する方法

レポートとデータセットは、個別の ワークスペースに配置できますが、両方のワークスペースに容量が必要です。

顧客向けに埋め込む場合、埋め込みトークンには、レポートと動的にバインドされたデータセットの両方に対するアクセス許可が含まれている必要があります。 新しい API を使用して、レポートやダッシュボードなどの Power BI アイテムをサポートする 埋め込みトークン を生成します。

組織用に埋め込む場合、使用するユーザーの Azure Active Directory (AD) トークンには、すべての Power BI 項目に対する適切なアクセス許可が必要です。

例 1: 動的バインドを使用してページ分割されたレポートを埋め込む

動的バインドを使用して埋め込みページ分割されたレポートを実装するには、次の例に示すように、埋め込み構成オブジェクトに datasetBindings プロパティを追加します。

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

例 2: 動的バインドを使用してページ分割されたレポート ビジュアルを埋め込む

ページ分割されたレポート ビジュアルは、Power BI レポートに埋め込まれたページ分割されたレポートです。 動的バインドを使用してページ分割された埋め込みレポート ビジュアルを実装するには、次の例に示すように、埋め込み構成オブジェクトに datasetBinding プロパティを追加します。

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

考慮事項と制限事項

  • 動的に選択されたデータセットでは、レポート内で同じデータ スキーマを使用する必要があります。
  • 顧客向けに埋め込む場合は、新しい API を使用して 埋め込みトークン を生成します。
  • 組織の埋め込み時に、ユーザーがレポートとデータセットの両方に対するアクセス許可を持っていることを確認します。
  • datasetBinding プロパティを空にすることはできません。 これには、datasetIdpaginatedReportBindings、またはその両方が含まれている必要があります。
  • datasetIdtargetDatasetId の値は同じである必要はありません。 バインドは、.pbix およびページ分割されたレポート 個別に機能します。
  • datasetBinding プロパティには、複数のオブジェクトを含めることができます。