PowerBI.com で Dynamics CRM Online のデータを解析する: その 5 高度なデータセットの作成

みなさん、こんにちは。

前回は、Power BI Desktop を利用した独自データセットの作成を紹介しましたが、
今回はより高度なデータセットの作成について紹介します。

テーブルと接続

前回の記事では、Dynamics CRM Online に対して接続を一度だけ行い、そこから
テーブルを複数取得しましたが、実際には各テーブルはそれぞれ独立して接続を
保持しています。

前回の方法でデータを取得した場合には、以下の課題が残ります。

- 取得する列の指定ができないため、不要な行データを取得してしまう。
- テーブルに対してフィルターを指定できないため、不要な列データを取得してしまう。

今回は上記の課題に対応できる、より高度なデータセットの作成を紹介します。

クエリを利用した行と列のフィルター

まず、行と列にフィルターをしてデータを取得する方法から紹介します。

1. Power BI Desktop を開きます。アプリケーション起動時に表示されるスプラッシュウィンドウで
「データを取得」をクリックします。

image

2. データソースの一覧から 「Dynamics CRM Online」 を選択して、「接続」 を
クリックします。

image

3. Web API を利用した取引先企業を取得する URL を入力します。今回は有効な取引先企業のみ、
および名前と取引先企業番号のみを取得するようにしました。

https://<組織名>.crm7.dynamics.com/api/data/v8.0/accounts?$select=name,accountnumber&$filter=statecode eq 0

4. 前回の記事で一度データを取得していると、認証情報が残っているため認証は聞かれません。
認証情報が残っていない場合には、認証画面で「組織アカウント」を選択して、「サインイン」を
してください。

image

5. Office 365 の認証画面がポップアップするので、サインインします。サインイン完了後、
「接続」をクリックします。

6. 前回はエンティティ一覧が表示されましたが、今回は取引先企業を直接クエリしていますので、
テーブルのデータが表示されます。尚、列情報はメタデータから取得するため全て表示されて
いますが、実際のデータはクエリで指定したものだけが取得されます。

image

7. 「読み込み」をクリックして読み込みます。

8. 読み込まれたテーブルを右クリックして、適切な名前に変更します。

image

クエリの変更

一旦テーブルを作成した後、フィルターの変更や、取得する列の追加/削除が必要になる
場合があります。その場合、以下手順でクエリを変更します。

1. テーブルを右クリックして、「クエリの編集」をクリックします。

image

2. 「適用したステップ」欄に表示されている「ソース」の設定アイコンをクリックします。

image

3. URL 入力の画面が出るので、クエリを変更して、「OK」 をクリックします。ここでは
_primarycontactid_value を追加しました。

4. データが読み込まれていることを確認します。

image

ビューを指定したクエリ

通常のクエリ以外にも、Dynamics CRM 2016 Web API の機能である、ビューを指定した
クエリも実行できます。ただしビューの列が対象としているエンティティの列のみを
含む場合のみ利用可能です。

1. 今回は新しくテーブルを作ってみます。「データを取得」リボンより、「さらに表示」をクリックします。

image

2. Dynamics CRM Online を選択して「接続」をクリックします。

3. URL のアドレスを入力して「OK」をクリックします。

https://<組織名>.crm7.dynamics.com/api/data/v8.0/accounts?savedQuery=<ビューの Guid>

例えば「アクティブな取引先企業」ビューの場合、以下のアドレスを利用します。
https://<組織名>.crm7.dynamics.com/api/data/v8.0/accounts?savedQuery=00000000-0000-0000-00AA-000010001002

4. 以下のエラーが表示されます。これはビューに関連テーブルの列が含まれるためです。00

image

5. Dynamics CRM のカスタマイズより、「アクティブな取引先企業」ビューを開きます。

6. 列の一覧より「電子メール(取引先責任者)」を選択して、削除します。

image

7. 変更を保存して公開します。

8. 再度 Power BI Desktop 側から、先ほどと同じ URL で接続を試みます。
今度は正常に接続が行えます。

まとめ

今回は Power BI のデータセットに含まれるテーブルが、それぞれ接続を
持っていることと、データを取得する際にフィルターする方法を紹介しました。
次回は高度なレポートの作成を紹介します。お楽しみに!

‐ 中村 憲一郎