ブックマークを使用してユーザーのエクスペリエンスを向上させる
Power BI のレポート ブックマークを使用すると、埋め込みレポート ページの現在の状態 (すべてのフィルターとそのビジュアルの状態を含む) をキャプチャできます。 後でレポートを開くと、ブックマークを選択して、レポートを保存された状態に復元できます。 開発者は、Power BI クライアント API を使用してブックマークをキャプチャして適用することで、ユーザー エクスペリエンスを制御できます。
保存されたブックマークには、レポートの一部として保存されたブックマーク、またはレポートのリアルタイム状態としてキャプチャされたブックマークを指定できます。 レポートを読み込むときに保存したブックマークを適用する場合は、ブックマークの名前またはその状態を指定して、使用するブックマークを指定できます。 名前でブックマークを指定する場合、レポートには同じ名前の保存済みブックマークが含まれている必要があります。
この記事では、ブックマークをサポートするレポートを埋め込むために必要なさまざまな API 設定について説明します。
Note
組織用に埋め込んだレポートでは、レポート コンシューマーは、レポートの状態をキャプチャして個人用ブックマークを作成し、ブックマークを選択してその状態にすばやく戻ります。 詳細については、「 個人用ブックマーク 」を参照してください。
顧客向けに埋め込んだレポートで同様のエクスペリエンスを作成する方法については、Power BI 埋め込み分析プレイグラウンドのレポート ビューのキャプチャ ショーケースを参照してください。
Power BI でブックマークを使用する方法の詳細については、「Power BI Desktopでブックマークを作成する」を参照してください。
Power BI を埋め込むときに個人用ブックマークを使用する方法については、「 個人用ブックマーク」を参照してください。
レポート ブックマークの使用方法
次のセクションでは、Power BI クライアント API を使用してレポート ブックマークを操作する方法について説明します。
レポートのブックマークを管理する
レポートのブックマークを管理するには、埋め込みレポート インスタンスの プロパティを使用bookmarksManager
します。
BookmarksManager クラスには、次のメソッドがあります。
getBookmarks
- レポートに関連付けられている保存済みブックマークの一覧を返します。apply
- 以前に保存したブックマークをレポートに名前で適用します。capture
- レポートの現在の状態を表す base64 シリアル化文字列をキャプチャして返します。applyState
以前にキャプチャした base64 シリアル化状態のブックマークをレポートに適用します。play
- レポートのブックマークのスライド ショー表示モードを制御します。
レポート ブックマークにアクセスする
個々のブックマークにアクセスするには、 メソッドを getBookmarks
使用してオブジェクトの ReportBookmark
一覧にアクセスします。
クラスには ReportBookmark
、次のプロパティがあります。
name
- レポート ブックマークの一意識別子。displayName
- [ブックマーク] ウィンドウに表示されるレポート ブックマーク の表示名。state
- レポート ブックマークの状態の base64 シリアル化。 これを保存し、 メソッドを使用してレポートにbookmarksManager.applyState
適用できます。children
- レポート ブックマーク グループを表すオブジェクトのReportBookmark
一覧 (存在する場合)。
レポート ブックマーク API を使用する
埋め込みレポートでは、開発者は次のことができます。
- 保存されたレポート ブックマークの一覧を取得します。
- レポートの読み込み時またはセッション中に、名前によって保存されたブックマークを適用します。
- 現在のビューをブックマーク オブジェクトとしてキャプチャして取得します。
- レポートの読み込み時またはセッション中にキャプチャされたブックマークの状態を適用する
- レポート ブックマークが適用されたときに、追加のロジックを実行します。
- [ブックマーク] ウィンドウを表示または非表示にします。
- ブックマークのスライド ショー モードを開始または終了します。
保存されたレポート ブックマークの一覧を取得する
レポートに関連付けられている保存済みブックマークの一覧を取得するには、レポートの プロパティによって返される BookmarksManager オブジェクトの bookmarksManager
メソッドを呼び出getBookmarks
します。
メソッドは getBookmarks
次のように定義されます。
getBookmarks(): Promise<models.IReportBookmark[]>
次に例を示します。
let bookmarks = await report.bookmarksManager.getBookmarks();
レポートの読み込み時またはセッション中に名前で保存されたブックマークを適用する
以前に保存したブックマークを、そのブックマーク名を使用してレポートに適用するには、レポートの プロパティによって返される BookmarksManager オブジェクトの bookmarksManager
メソッドを呼び出apply
します。
詳細については、「 レポート設定の構成」を参照してください。
メソッドは apply
次のように定義されます。
apply(bookmarkName: string): Promise<void>
次に例を示します。
await report.bookmarksManager.apply("Bookmark1234");
現在のビューをブックマーク オブジェクトとしてキャプチャして取得する
レポートの現在の状態を base64 文字列としてキャプチャするには、BookmarksManager オブジェクトの メソッドを呼び出capture
します。 メソッドは capture
、特定のレポートに IReportBookmark
保存されていないブックマークを表す オブジェクトを返します。 プロパティを IReportBookmark.state
使用して、ブックマークの状態を識別する base64 文字列を取得します。この文字列は、読み込み時間または実行時に後でレポートに適用できます。
メソッドは capture
次のように定義されます。
capture(options?:ICaptureBookmarkOptions): Promise<models.IReportBookmark>
次に例を示します。
let capturedBookmark = await report.bookmarksManager.capture();
ブックマーク オプションをキャプチャする
オブジェクトを ICaptureBookmarkOptions
メソッドに capture
渡すこともできます。
interface ICaptureBookmarkOptions {
allPages?: boolean;
personalizeVisuals?: boolean;
}
allPages
- 既定では、キャプチャされたブックマークの状態では、現在のページの状態のみが保存されます。 すべてのページの状態をキャプチャするには、 オプションを に設定して メソッドをallPages
true
呼び出しますcapture
。personalizeVisuals
- カスタマイズされたビジュアルで現在の状態をキャプチャするには、 オプションを に設定してcapture
メソッドをpersonalizeVisuals
true
呼び出します。
たとえば、次のコードは、パーソナライズされたビジュアルを含むすべてのページの状態をキャプチャします。
let capturedBookmark = await report.bookmarksManager.capture({
allPages: true,
personalizeVisuals: true
});
レポートの読み込み時またはセッション中にキャプチャされたブックマークの状態を適用する
以前にキャプチャしたブックマークの状態をレポートに適用するには、BookmarksManager オブジェクトの メソッドを使用applyState
します。
詳細については、「 レポート設定の構成」を参照してください。
メソッドは applyState
次のように定義されます。
applyState(state: string): Promise<void>
次に例を示します。
await report.bookmarksManager.applyState(capturedBookmark.state);
レポート ブックマークが適用されたときに追加のロジックを実行する
レポート ブックマークが適用されたタイミングを確認するには、レポート オブジェクトの メソッドをbookmarkApplied
呼び出on
してイベントをリッスンします。
次に例を示します。
report.on("bookmarkApplied", (event) => {
console.log(event.detail.name);
});
[ブックマーク] ウィンドウの表示と非表示を切り替える
[Power BI ブックマーク ] ウィンドウを表示または非表示にするには、レポート設定の プロパティを更新 panes
します。
[ブックマーク] ウィンドウを表示する
let embedConfig = {
...
panes: {
bookmarks: {
visible: true
}
}
};
[ブックマーク] ウィンドウを非表示にする
let embedConfig = {
...
panes: {
bookmarks: {
visible: false
}
}
};
レポート設定の更新の詳細については、「レポート設定の 構成」を参照してください。
ブックマークのスライド ショー モードを開始または終了する
レポートのブックマークのスライド ショー表示モードを制御するには、BookmarksManager オブジェクトの メソッドを呼び出play
します。 詳細については、「 スライド ショーとしてのブックマーク」を参照してください。
メソッドは play
次のように定義されます。
play(playMode: models.BookmarksPlayMode): Promise<void>
Note
ブックマークスライド ショー モードに入る前に、 getBookmarks API を使用してレポートに少なくとも 1 つのブックマークがあることを確認します。
スライド ショーのプレゼンテーション モードに入る
await report.bookmarksManager.play(models.BookmarksPlayMode.Presentation);
スライド ショーのプレゼンテーション モードを終了する
await report.bookmarksManager.play(models.BookmarksPlayMode.Off);
制限事項
ブックマーク API を使用すると、レポートに対する特定の変更によってエラーや予期しない結果が発生する可能性があります。 その 1 つの例として、レポートからレポート フィルターを削除する方法があります。 エラーを回避するには、対応するフィルター カードが存在する必要があります。 フィルターを削除する代わりに、その値を に設定します
All
。 削除または変更されたフィルターがわからない場合は、変更をレポートに適用した後にブックマークを再キャプチャします。埋め込みセッションによって作成された、または更新フィルターの追加操作によって追加された読み込みフィルターなどのフィルターは、ブックマーク状態でキャプチャされますが、現在のセッションでのみ適用されます。 この制限を克服するには、フィルターを値と共
All
にレポートに保存し、 更新フィルターの更新操作を使用して埋め込みセッションで変更する必要があります。