Dataverse からのデータを使用して Power BI レポートを作成します。
Microsoft Dataverse を使用すると、 Power BI Desktop を使用してデータに直接接続し、レポートを作成して Power BI に発行することができます。 Power BI からは、ダッシュボードでレポートを利用したり、他のユーザーと共有したり、 Power BI のモバイル アプリでクロス プラットフォームでアクセスすることができます。
前提条件
Dataverse で Power BI を使用するには、以下の項目が必要となります :
- Power BI Desktop をダウンロードしてインストールします。これはローカル コンピュータで動作する無料のアプリケーションです。 Power BI desktopは こちらでダウンロードできます。
- 次の特権を持つ Power Platform 環境:
- テーブルのデータにアクセスするには、そのテーブルに対する読み取り権限が必要です。
- make.powerapps.com のテーブルを変更するには、システム カスタマイザーや環境作成者など、作成権限を含むセキュリティ ロールを持つ必要があります。
- Power BI レポートを構築して共有するのに適切な Power BI ライセンスが必要です。
- Dataverse コネクタを使用するには、TDS エンドポイントの有効化 設定をご使用の環境で有効にする必要があります。 詳細設定: 機能設定の管理
注意
ほとんどのプロキシ サーバーは、Dataverse コネクタが Power BI に使用する Tabular Data Stream (TDS) プロトコルのデータを処理できません。
コネクタを使用して Dataverse へ接続する
Power BI Desktop を開きます。 ファイル > データの取得 > Power Platform を選択します。
Dataverse コネクタを選択し、接続を選択します。
環境のリストで目的の環境を展開し、目的のテーブルを選択してから 読み込み を選択します。
次のデータ接続モード オプションから選択してください。
- インポート: データを Power BI の可能な場所にインポートすることをお勧めします。 このモードでは、データは Power BI サービスにキャッシュされ、スケジュールされた間隔でインポートされます。
- DirectQuery: Dataverse のデータに直接接続します。 このモードをリアルタイムのデータ取得に使用します。 このモードでは、より厳密に Dataverse セキュリティ モデルも強化します。 詳細情報: Power BI Desktop の DirectQuery モデル ガイダンス。
OK を選択します。 Power Apps や Dataverse に接続する際に使用したものと同じ認証情報を使用してサインインを促される場合があります。 接続 を選択します。
重要
Dataverse コネクタを使用するには、TCP ポート 1433 や 5558 を開いて接続する必要があります。 ポート 5558 のみが有効になっている場合は、そのポート番号を yourenvironmentid.crm.dynamics.com:5558 のように、環境 URL に追加する必要があります。
Dataverse テーブルを使用してレポートを作成する
コネクタを使用してテーブルを読み込んだ後、レポートの作成を開始するか、または前の手順を繰り返してテーブルを追加することができます。 たとえば、列 ペインで、name 列を選択してから、numberofemployees 列を選択します。 視覚化ウィンドウで、円グラフを選択します。 これにより、レポート キャンバスに新たな視覚化が追加されます。
テーブル列の種類
列の選択
選択肢列は、アプリやフローの中で、ユーザーが 1 つの選択をするドロップダウン リストを提供するテーブルで使用されます。 Dataverse コネクタを使用する場合、選択肢の列は、一意の値と表示項目の値の両方を示す 2 つの列として表示されます。
例えば、approvalstatus
という名前のテーブルに選択肢の列がある場合、Power BI では次の 2 列が表示されます。
approvalstatus
- これにより、選択したアイテムごとに一意の整数値が表示されます。approvalstatus
はフィルタを適用するときに役立ちます。これにより、将来表示名に変更を加えたときにフィルタが影響を受けなくなります。approvalstatusname
- アイテムのフレンドリ表示名を示し、一般的にテーブルまたはグラフのオプションを表示する場合に使用されます。approvalstatus
approvalstatusname
1 提出済み 2 レビュー中 3 承認済 4 拒否
パフォーマンスへの影響と選択肢名の列
選択列のラベル名を取得する際、Dataverse 内部の stringmap テーブル (ローカライズされたラベルが保存されている) と結合します。 これは、ラベル/名前の列ごとに実行されます。 なお、この結合と、値の列ではなくラベル名の列に対してフィルターを行うと、レポートのクエリのパフォーマンスに大きな影響を与えます。
選択肢の列
選択肢は選択肢の列に似ていますが、ユーザーがリストから複数の項目を選択できる点が異なります。 選択肢は、現在のところ Dataverse コネクタに完全には対応していません。 Dataverse コネクタを 選択肢列で使用した場合、整数値のみがカンマで区切られて表示されます。 項目ラベル名の列は返されません。 Dataverse コネクタでサポートされていない Dataverse データタイプの詳細については、サポートされている操作とデータ タイプを参照してください。
ルックアップ
ルックアップ列は、作業しているテーブルとルックアップ用に定義された対象行タイプとの間に、多くの多対一 (N:1) テーブルの関連付けを使用します。 ルックアップは、2 つの列、ルックアップ ID と ルックアップ ID 名として、Power BI Desktop で表示されます。
ナビゲーションの関連付け
Dataverse の関連付けには GUID 列を使用する 2 つのテーブル間で、 Power BI Desktop 内での関連付けを作成する必要があります。これはあいまいさや他のフィールドとの重複が存在する可能性のある作成行に対して関連付けが作成されていることを確認するために、システムが生成する一意の識別子です。 Power BI Desktop の関連付けの管理については、 こちら をご覧ください。
関連付けは自動的に作成される場合もありますが、レポートを作成する際にレビューを行い、正しい関連付けが確立されているかどうかを確認することができます。
- テーブルの検索列には、関連テーブルの行の GUID が含まれます。
- この関連テーブルには、GUID を含む "[tableName]ID" 形式の列があります。たとえば、
Accountid
やMyCustomtableid
です - Power BI Desktop の関連付け管理機能を使用して、検索列と関連テーブルの ID 列との間で新しい関連付けを作成します。
環境 URL の検索
Power Apps を開いて、接続する環境を選択し、右上隅設定を選択し、セッションの詳細を選択します。
Power Apps セッションの詳細ダイアログ ボックスで、詳細をコピー を選択します。
セッションの詳細をメモ帳などのどこかに貼り付けて、インスタンスの URL のみをコピーできます。 インスタンス URL は、ご使用の環境に固有の URL です。 URL の形式は次のようになります:
https://yourenvironmentid.crm.dynamics.com/
。 Power BI レポートの作成時に使用できるよう、どこか便利な場所に保管してください。
トラブルシューティング
エラー メッセージ: 戻りレコードのサイズは 83886080 を超えることはできません
このエラーは、結果セットが 80MB を超えるレポートを実行または設計する場合に、Dataverse コネクタで発生する可能性があります。 TDS には、80MB の結果セット サイズ制限があります。
この制限を回避するには、クエリが返すデータが少なくなるように、フィルタを追加して列を削除するクエリを最適化します。
非常に多くのルックアップ列または選択肢列の回避策
非常に多くのルックアップ列または選択列を含むテーブルに接続しようとすると、Power BI でエラー メッセージが表示される場合、次の手動の回避策でテーブルに接続できることがあります。 アカウント、連絡先、および営業案件テーブルが追加のルックアップまたは選択肢列で大幅にカスタマイズされている場合に、この問題が発生することがあります。
テーブルを Power BI レポートに手動で接続する:
レポートを読み込んだ Power BI Desktop で、データの変換 を選択して Power Query を読み込みます。
新しいソース > 空のクエリ を選択します。
クエリに名前を付けます。
Power BI Desktop の ホーム タブで 詳細エディター を選択します。
クエリ テキストを下のクエリ テキストに置き換えます。
let Source = CommonDataService.Database("<myenvironment.crmX>.dynamics.com"), dbo_contact = Source{[Schema="dbo",Item="contact"]}[Data], #"selectedcolumns" = Table.SelectColumns(dbo_contact,{"fullname", "emailaddress1"}) in #"selectedcolumns"
クエリ テキストの myenvironment.crmX を contoso.crm4 などの環境ドメイン値に置き替えます。
完了 を選択します。
列の選択 を選択して必要な追加の列を追加します。
保存して適用する を選択してモデルの変更を保存します。
プロンプトが表示されたら、新しいクエリに 直接クエリ を選択します。
レポートでクエリを使用できるようになります。
エラーメッセージ: 接続できません (プロバイダーの名前付きパイプ プロバイダー、エラー: 40 – SQL Server への接続を開くことができませんでした)
このエラー メッセージが表示されると、コネクタは TDS エンドポイントへの接続に失敗します。 これは、コネクタで使用される URL に、https:// やエンディング*/* が含まれている場合に発生する可能性があります。
https:// とエンディングのスラッシュを削除することで、URL が orgname.crm.dynamics.com 形式になります。
接続問題のトラブルシューティング
TDS エンドポイントを使用する場合の接続に関する問題のトラブルシューティングについては、接続問題のトラブルシューティング を参照してください。
関連項目
Power BI Desktop で Dataverse for Teams テーブル データを表示する
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。