イベントを処理する方法

ヒント

Power BI Embedded Analytics Playground開発者サンドボックス セクションで、独自のレポートまたはサンプル レポートを使用して、リアルタイムで API を試します。

イベントは、Power BI コンポーネント (レポートなど) と Web アプリケーション コードの間で通信するために使用されます。

埋め込みコンポーネントは、コンポーネント内でアクションが実行された後にイベントを生成します。 これらは、コンポーネント内のユーザー操作や自動アクション (ビジュアルのレンダリングなど) です。

たとえば、 は、 buttonClicked ユーザーがレポート内のボタンをクリックしたときに Power BI レポートによって生成されるイベントです。 を使用 report.on(...)してイベントをリッスンし、イベント ハンドラーを設定できます。

イベントを処理する方法の例

この例では、レポート イベントを処理する方法を示します。 その他の種類のイベントについては、「 イベントとその応答値」を参照してください。

注意

API を使用する前に、コンポーネントが読み込まれるのを待ちます。 読み込まれたイベントをリッスンし、新しいコマンドを発行します。

report.on('loaded', function(event)
{
    reportPages = await report.getPages();
});

イベント ハンドラーを削除する方法

を使用 report.off(...) して、特定のイベントのすべてのイベント ハンドラーを削除できます。

イベントとその応答値

使用可能なイベントとその応答値の完全な一覧を表示します。

エラー イベント (すべての埋め込みに関連)

失敗した操作を説明するためにエラー イベントが生成されます。

interface IError {
    message: string // A general message that describes the operation that failed (example: "Could not set page")
    detailedMessage?: string // Detailed message that describes the error
    errorCode?: string  //  Short message that describes the error
    level?: TraceType // The level of the error (example: 'Fatal')
    technicalDetails?: ITechnicalDetails
}

interface ITechnicalDetails {
    requestId?: string // Id for debugging - should be provided when reporting a bug
}

注意

messageプロパティのみが必要であり、他のプロパティは未定義である可能性があります。

イベントを報告する

レポート イベントは、レポート ボタンのクリックやビジュアルのレンダリングなど、埋め込みレポートとの対話のために生成されます。

buttonClicked

イベントは buttonClicked 、ユーザーが [レポート ] ボタンをクリックしたときに発生します。

 id: string
 title?: string
 type?: string (type of button)
 bookmark?: string

commandTriggered

このイベントは commandTriggered 、ユーザーが 拡張機能コマンドをクリックしたときに発生します。

 command: string
 dataPoints?: IIdentityValue[]
 report: models.IReport
 page: models.IPage
 visual: models.IVisual

dataHyperlinkClicked

イベントはdataHyperlinkClicked、ハイパーリンクがクリックされ、ハイパーリンクの動作が または RaiseEventNavigateAndRaiseEvent設定されると発生します。

 url: string
 report: models.IReport
 page: models.IPage
 visual: models.IVisual

詳細については、「 レポート設定を構成する」を参照してください。

dataSelected

イベントは dataSelected 、特定のデータ ポイントが選択されたときに発生します。

 report: models.IReport
 page: models.IPage
 visual: models.IVisual
 filters: IFilter[]
 dataPoints: IIdentityValue[]

loaded

イベントは loaded 、レポートの初期化時に発生します。 Power BI ロゴが消えると、読み込みが完了します。

pageChanged

イベントは pageChanged 、ページが変更されるたびに発生します。

 newPage: Models.IPage

レンダリング

イベントは rendered 、レポートが完全にレンダリングされるときに発生します。 たとえば、レポートの読み込み時やユーザー操作後にすべてのビジュアルがレンダリングされる場合です。

saveAsTriggered

このイベントは saveAsTriggered 、ユーザーが UI で [名前を付けて保存] をクリックすると発生します。 これにより、[ 名前を付けて保存] アクション用の独自のダイアログを作成できます。

保存

イベントはsaved、UI の または アクションまたは saveAs API を使用してsave保存がトリガーされたときに発生します。

selectionChanged

イベントは selectionChanged 、ユーザーが選択したビジュアルを変更するたびに発生します。 selectedItems は、複数のビジュアルが選択されている場合に選択されたすべてのビジュアルの一覧です。

 report: models.IReport
 page: models.IPage
 visual?: models.IVisual
 selectedItems?: models.IVisual[]

visualClicked

イベントは visualClicked 、ビジュアルがクリックされるたびに発生します。

 report: models.IReport
 page: models.IPage
 visual: models.IVisual

visualRendered

イベントはvisualRendered、ビジュアルがレンダリングされるときに発生します (settings オブジェクトで true に設定visualRenderedEventsする必要があります)。

Note

ビジュアルはユーザーの操作によってレンダリングされる可能性があるため、このイベントは必要な場合にのみ有効にすることをお勧めします。

 name: string

詳細については、「 レポート設定を構成する」を参照してください。

モバイル埋め込みイベントをレポートする

モバイル レイアウト内の埋め込みレポートとの対話 (スワイプの開始や終了など) に対して、レポート埋め込みモバイル イベントが生成されます。

swipeStart イベントと swipeEnd イベント

swipeStart または swipeEnd 、ユーザーが埋め込みレポートでスワイプ移動を開始または終了したときにイベントが発生します。

interface ISwipeEvent {
    currentPosition: IPosition
    startPosition: IPosition
}

interface IPosition {
    x: number
    y: number
}

ダッシュボード イベント

ダッシュボード イベントは、ダッシュボードが読み込まれ、ユーザーがダッシュボード内のタイルをクリックしたときに生成されます。

loaded

イベントは loaded 、ダッシュボードが初期化されるときに発生します。

tileClicked

イベントは tileClicked 、エンド ユーザーがタイルをクリックしたときに発生します。 ピン留めされたライブ ページでは発生しません。

 tileId: string
 navigationUrl: string
 pageName: string
 reportEmbedUrl: string

Q&A イベント

質問と回答 (Q&A) イベントは、質問を入力した後にビジュアルがレンダリングされるときに発生します。

visualRendered (Q&A)

イベントは visualRendered 、質問が入力され、回答が表示された後にビジュアルがレンダリングされるときに発生します。

 question: string
 normalizedQuestion: string

タイル イベント

タイル イベントは、ユーザーがタイルをクリックしたときに発生します。

tileClicked (tile イベント)

イベントは tileClicked 、エンド ユーザーがタイルをクリックしたときに発生します。 ピン留めされたライブ ページでは発生しません。

 tileId: string
 navigationUrl: string
 pageName: string
 reportEmbedUrl: string

tileLoaded

イベントは tileLoaded 、タイルが初期化されるときに発生します。 Power BI ロゴが消えると、読み込みが完了します。

次の手順