Dynamics CRM 2011 Fetch XML レポート

みなさん、こんにちは。

今回は新機能である Fetch XML レポートを紹介します。

Dynamics CRM 4.0 までは SQL Server 上で提供されるフィルターされたビュー
に対してクエリを実行する方法でレポートを作成していました。引き続きこの
方法はサポートされますが、新たに Fetch XML という機能を利用してレポート
の作成が可能になりました。また、オンライン環境では、この Fetch XML での
レポートが必須となります。

また Fetch XML はグラフでも利用されます。グラフに関しては以下の記事を
参考にしてください。

Dynamics CRM 2011 グラフ機能
https://blogs.msdn.com/b/crmjapan/archive/2011/04/18/dynamics-crm-2011-chart.aspx

Dynamics CRM 2011 グラフのカスタマイズ
https://blogs.msdn.com/b/crmjapan/archive/2011/04/20/dynamics-crm-2011-chart-customize.aspx

Fetch XML とは

Fetch XML 自体は、以前から提供しているデータ取得手法の 1 つで、XML
形式でクエリを記述することができる機能です。以前は CrmService が提供
する Fetch メソッドで実行していましたが、Dynamics CRM 2011 からは
RetrieveMultiple メソッドの引数として Fetch XML を渡しデータを取得します。

Fetch XML レポートの開発

カスタム Fetch XML レポートを開発するには、以下のものが必要です。

- SQL Server 2008 Business Intelligence Development Studio
SQL Server 2008 に付属。
- Microsoft Dynamics CRM 2011 Report Authoring 拡張
こちら よりダウンロード可能。以下の作業を行う前に、インストールをお願いします。

では早速手順を確認してみましょう。

1. SQL Server Business Intelligence Development Studio (BIDS) を
起動して、新規のプロジェクトを作成します。

2. ビジネス インテリジェンス プロジェクトより、レポート サーバー プロジェクト
テンプレートを選択して、任意の名前で作成します。

image

3. 空のレポート サーバー プロジェクトが作成されますので、ソリューション
エクスプローラーよりレポートフォルダーを右クリックして、「新しいレポートの
追加」 をクリックします。

image

4. レポートウィザードが起動しますので、次へをクリックします。

5. データソースの型に Microsoft Dynamics CRM Fetch が存在するか確認します。
表示されない場合には、Microsoft Dynamics CRM 2011 Report Authoring 拡張が
インストールできていないので、インストールをしてください。

image

6. 接続文字列は ServerURL;OrganizationName;HomeRealmURL を指定します。
今回はオンラインの環境なので以下の文字列を指定しました。

https://crm5org93eae.crm5.dynamics.com;crm5org93eae

7. 資格情報をクリックして、接続に利用できるユーザー情報を入力します。

8. 次へをクリックします。

9. クエリのデザイン画面が表示されるので、「クエリ ビルダ」 をクリックします。

10. 以下の Fetch XML を入力して、「! 」 ボタンをクリックします。以下の Fetch XML は
自分のアクティブな取引先企業ビューと同じレコードを返すクエリです。
※実際のビューより ID 等のプラスアルファの情報があります。

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
  <entity name="account">
    <attribute name="name" />
    <attribute name="address1_city" />
    <attribute name="primarycontactid" />
    <attribute name="telephone1" />
    <attribute name="accountid" />
    <order attribute="name" descending="false" />
    <filter type="and">
      <condition attribute="ownerid" operator="eq-userid" />
      <condition attribute="statecode" operator="eq" value="0" />
    </filter>
    <link-entity name="contact" from="contactid" to="primarycontactid" visible="false" link-type="outer" alias="accountprimarycontactidcontactcontactid">
      <attribute name="emailaddress1" />
    </link-entity>
  </entity>
</fetch>

11. 結果が確認できたら、OK をクリックして、次へをクリックします。

12. レポートの種類を選択するページが出るので、今回はテーブルを選択します。

13. そのまま完了をクリックします。

14. レポートデータに追加したばかりのデータセットが表示されます。

image

15. デザインでプレビューをクリックします。データが表示されるか確認します。

image

16. 表示などは通常のレポートと同じくデザインで変更が可能です。

image

Fetch XML の取得

Fetch XML は高度な検索から取得が可能です。先ほどのクエリは以下の手順で取得しました。

1. Internet Explorer で Dynamics CRM 2011 に接続します。

2. 高度な検索をクリックします。

3. 検索対象に取引先企業を選択して、自分のアクティブな取引先企業を選択します。

image

4. Fetch XML のダウンロードをクリックします。

5. ダウンロードしたファイルをメモ帳等で開きます。

まとめ

今回はごく簡単に Fetch XML レポートの開発に触れました。次回以降では
より複雑で柔軟な Fetch XML クエリの作成を紹介していきます。

- Dynamics CRM サポート 中村 憲一郎