Microsoft Dataverse を使用すると、Power BI Desktop を使用してデータに直接接続してレポートを作成し、Power BI に発行できます。 Power BI から、ダッシュボードでレポートを使用したり、他のユーザーと共有したり、Power BI モバイル アプリでクロス プラットフォームにアクセスしたりできます。
[前提条件]
Dataverse で Power BI を使用するには、次のものが必要です。
- Power BI Desktop をダウンロードしてインストールします。これは、ローカル コンピューターで実行される無料のアプリケーションです。 Power BI デスクトップ は、ここからダウンロードできます。
- 次の特権を持つ Power Platform 環境。
- テーブル内のデータにアクセスするには、テーブルに対する読み取り特権が必要です。
- Power Apps (make.powerapps.com) のテーブルを変更するには、システム カスタマイザーや環境作成者などの作成者特権を含むセキュリティ ロールが必要です。
- Power BI レポートを構築して共有するのに適切な Power BI ライセンスが必要です。
- Dataverse コネクタを使用するには、環境内で [TDS エンドポイントを有効にする] 設定を有効にする必要があります。 詳細情報: 機能設定の管理
注
ほとんどのプロキシ サーバーでは、Power BI 用 Dataverse コネクタによって使用される表形式データ ストリーム (TDS) プロトコル データは処理されません。
コネクタを使用して Dataverse に接続する
- Power BI Desktopを開きます。 [ 他のソースからデータを取得する] を選択します。
- [ データの取得 ] ボックスの一覧 で [Dataverse] を選択し、[ 接続] を選択します。
- メッセージが表示されたら、ユーザー資格情報を選択または入力し、[ 接続] を選択します。
- Dataverse を使用する Power Platform 環境の一覧が表示されます。 環境の一覧で、目的の環境を展開し、目的のテーブルを選択して、[ 読み込み] を選択します。
- 次の データ接続 モード オプションから選択します。
- インポート: 可能な限り Power BI にデータをインポートすることをお勧めします。 このモードでは、データは Power BI サービスにキャッシュされ、スケジュールされた間隔でインポートされます。
- DirectQuery: Dataverse 内のデータに直接接続します。 このモードは、リアルタイムのデータ取得に使用します。 このモードでは、Dataverse セキュリティ モデルをより厳密に適用することもできます。 詳細については、 Power BI Desktop の DirectQuery モデル ガイダンスを参照してください。
- [OK] を選択. Power Apps と Dataverse への接続に使用するのと同じ資格情報を使用してサインインするように求められる場合があります。 [接続] を選択します。
Important
Dataverse コネクタを使用するには、TCP ポート 1433 または 5558 を開いて接続する必要があります。 ポート 5558 のみが有効になっている場合は、そのポート番号を環境 URL ( yourenvironmentid.crm.dynamics.com,5558 など) に追加する必要があります。
Dataverse テーブルを使用してレポートを作成する
コネクタを使用してテーブルを読み込んだ後、レポートの作成を開始したり、前の手順を繰り返してテーブルを追加したりできます。 たとえば、列ペインで名前列を選択し、その後従業員数列を選択します。 [視覚化] ウィンドウで、[円グラフ] を選択します。 これらの選択により、レポート キャンバスに新しい視覚化が追加されます。
特殊な列の種類
列の選択
選択列は、アプリとフローで 1 つの選択を行うためにユーザーに項目のドロップダウン リストを提供するために、テーブルで使用されます。 Dataverse コネクタを使用する場合、選択列は 2 つの列として表示され、一意の値と表示項目の値の両方が表示されます。
たとえば、テーブルに approvalstatus
という名前の選択列がある場合、Power BI には次の 2 つの列が表示されます。
approvalstatus
- この列には、選択した項目ごとに一意の整数値が表示されます。approvalstatus
は、フィルターを適用するときに役立ちます。表示名を今後変更してもフィルターが影響を受けないようにします。approvalstatusname
- この列にはアイテムのフレンドリ表示名が表示され、テーブルまたはグラフでオプションを表示するときに最も一般的に使用されます。approvalstatus
approvalstatusname
1 送信済み 2 レビュー中 3 承認済み 4 拒否
パフォーマンスへの影響と選択肢の名前の列
選択列のラベル名を取得すると、Dataverse は内部 stringmap
テーブル (ローカライズされたラベルが格納されている) との結合を行います。 これは、ラベル/名前列ごとに実行されます。 この結合とフィルター処理は、値列ではなくラベル名列に対して行うと、レポート クエリのパフォーマンスに大きな影響を与える可能性があることに注意してください。
選択肢の列
選択肢は選択肢列に似ていますが、ユーザーがリストから複数の項目を選択できる点が違います。 現在、Dataverse コネクタでは選択肢は完全にはサポートされていません。 選択肢の列で Dataverse コネクタを使用する場合は、整数値 (コンマ区切り) のみを受け取ります。 項目ラベル名の列は返されません。 Dataverse コネクタでサポートされていない Dataverse データ型の詳細については、「 サポートされる操作とデータ型」を参照してください。
Lookups
ルックアップ列では、使用しているテーブルと、ルックアップ用に定義されたターゲット行の種類との間に多対一 (N:1) テーブル リレーションシップが使用されます。 ルックアップは、 lookupid
と lookupid-name
の 2 つの列として Power BI Desktop に表示されます。
リレーションシップの管理
Dataverse でのリレーションシップ作成には、Power BI Desktop で 2 つのテーブル間に GUID 列を使用したリレーションシップを構築する必要があります。この GUID はシステムが自動生成する一意の識別子であり、他の列との間であいまいさや重複が発生する可能性がある場合に、リレーションシップを適切に作成することができます。 Power BI Desktop でのリレーションシップの管理の詳細 については、こちらをご覧ください。
一部のリレーションシップは自動的に作成されますが、レポートの作成時に正しいリレーションシップが確立されていることを確認して確認できます。
- テーブルのルックアップ列には、関連するテーブルの行の GUID が含まれています。
- 関連テーブルには、GUID を含む "[tableName]ID" という形式の列があります (例:
Accountid
またはMyCustomtableid
- Power BI デスクトップのリレーションシップの管理機能を使用して、参照列と関連テーブルの ID 列の間に新しいリレーションシップを作成します。
環境の URL を見つける
Power Apps を開き、接続先の環境を選択し、右上隅にある [設定] を選択して、[セッションの詳細] を選択します。
[Power Apps セッションの詳細] ダイアログ ボックスで、[詳細のコピー] を選択します。
インスタンス URL のみをコピーできるように、セッションの詳細をメモ帳などの場所に貼り付けます。 インスタンス URL は、環境の一意の URL です。 URL の形式は、
https://yourenvironmentid.crm.dynamics.com/
です。 Power BI レポートの作成時に使用できるように、これをどこか便利な場所に保管してください。
トラブルシューティング
エラーメッセージ: 戻り値のレコードサイズは83886080バイトを超えてはいけません。
このエラーは、結果セットが 80 MB を超えるレポートを実行またはデザインするときに、Dataverse コネクタで発生する可能性があります。 TDS の結果セット のサイズ制限は 80 MB です。
この制限を回避するには、クエリが返すデータが少ないほど、フィルターの追加と列の削除を最適化します。
非常に多くの参照または選択列の回避策
非常に多くの参照列または選択列を使用してテーブルに接続しようとすると、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:// や終了 /が含まれている場合に発生する可能性があります。
URL が orgname.crm.dynamics.com 形式になるように、https:// と末尾のスラッシュを削除します。
接続に関する問題のトラブルシューティング
TDS エンドポイントを使用するときの接続の問題のトラブルシューティングについては、「接続の 問題のトラブルシューティング」を参照してください。
こちらも参照ください
Power BI Desktop で複合モデルを使用する