Microsoft Dynamics CRM 2011 Beta 版ダッシュボード

今週は、「Bing マップと Microsoft Dynamics CRM オンライン」ブログの冒頭でふれたダッシュボード機能に関する紹介です。
Microsoft Dynamics CRM 2011 Beta 版では、データから素早く実態を把握するためグラフとダッシュボード機能が提供されています。
ここでは Microsoft Dynamics CRM 2011 Beta 版のカスタマイズ機能を使い、どのように分析していくかを紹介します。

ステップ1-グラフとダッシュボードをカスタマイズするときに理解しておくこと

ブログ Tracking Your Data Using Microsoft Dynamics CRM Dashboards(英語) でグラフとダッシュボード デザイナーをどのように使っているか紹介しています。
Account、Contact、Lead、Opportunity、Order、Quote について実態を把握するために簡単なダッシュボードを作成しています。
ブログで作成したすべてのグラフは単一レベルでグループ化したものでした。 もちろん、単純な分析には十分ですが、グラフではもっと色々なことができます!
Account が修正された時だけでなく、Account の現在のステータスを表示し、グラフのプロパティをより詳細にコントロールできる Account 用グラフを想像してみてください。

また、前に作成したグラフをダッシュボード上に表示し、そこからそれぞれのビューに含まれるすべてのレコードの集計情報を表示しました。
特定の Account のコンテキスト情報にアクセスするには Manager ロールが必要な場合もあります。
ここでは、グラフをカスタマイズし、フォームに埋め込む方法を紹介します。

ステップ 2 - カスタマイズが必要なビュー、グラフ、フォーム、ダッシュボードの確認

まず、このブログで説明しているカスタマイズのうち 2 つのカテゴリについて検討します。
1 つ目は、2 つの条件(修正日と現在のステータス)でグループ化されたグラフです。
2 つ目は、特定の Account コンテキストで表示される Account フォームのグラフです。
(メモ:グラフを表示するために CRM の任意のフォームをカスタマイズできます。)

次の表は、ここでカスタマイズする情報をまとめたものです。

ステップ 3 - ソリューションとコンポーネントの作成

メモ: このブログで説明するグラフのカスタマイズは、システム グラフ、ユーザー グラフで行うことができますが、フォームはシステム管理者、あるいはシステム カスタマイザーのみがカスタマイズできます。

組織の全ユーザーとカスタマイズを共有する必要がある場合は、ソリューション パッケージの一部として作成し、ソリューションを公開することをお薦めします。
これにより、組織間でソリューションを再利用できます。

Microsoft Dynamics CRM 2011 Beta 版では、簡単にソリューションを作成することができますが、ここでは CRMTrackingDashboard というソリューションを作成します。
まず最初に、エンティティを追加する必要がありますが、ソリューションの ”Add Existing” を使用します。

ステップ4 - ビューの作成

上記の各コンポーネントに新しいビューを作成する必要があります。
これらの新しいビューを作成するのは簡単で、”Modified On Equals This Month (修正日が今月)” というフィルターで各エンティティ用に新しいビューを作成します。
これらビューは、CRMTrackingDashboard ソリューションの一部として作成されます。

ステップ 5 - グラフの作成

グルーピング条件とプレゼンテーション プロパティを含むグラフをカスタマイズするには XML 定義が必要です。
グラフをより簡単に作成し編集するには、グラフデザイナーを使用して基本的な定義を作成し、それを XML にエクスポート、手で編集し、定義を再度インポートします。

まず、最初のドラフトで Account グラフの定義を作成するために、グラフデザイナーを使用します。 Account エンティティに関するグラフを作成するには次のような手順となります。

       1. ソリューションエクスプローラの Account エンティティに移動します。
       2. グラフに移動します。
       3. 新規グラフをクリックします。
       4. “Modified on” でグループピング条件を指定したグラフを作成し、date-grouping を日別(day)に設定します。
       “日別 Account ステータス”としてグラフ名をセットします。
       5. Action メニューで “Export Chart” を使用して、このグラフ定義をエクスポートします。

ここでグラフの定義を手で編集し、追加のグルーピング条件を加える準備をしておきます。
次のグルーピング条件はステータス フィールドになりますので、これをこのグラフの定義にある”datadescription” の一部に追加する必要があります。追加する条件は次の通りです。

<attribute groupby="true" alias="groupby_status" name="statecode" />

これを既存のグラフ定義に追加すると、更新されたグラフのデータは次のようになります。

<datadescription>
    <datadefinition>
      <fetchcollection>
        <fetch mapping="logical" aggregate="true">
          <entity name="account">
            <attribute alias="aggregate_column" name="name" aggregate="count" />
            <attribute groupby="true" alias="groupby_column" name="modifiedon" dategrouping="day" />
            <attribute groupby="true" alias="groupby_status" name="statecode" />
          </entity>
        </fetch>
      </fetchcollection>
      <categorycollection>
        <category>
          <measurecollection>
            <measure alias="aggregate_column" />
          </measurecollection>
        </category>
      </categorycollection>
    </datadefinition>
  </datadescription>

適当なプレゼンテーション プロパティを指定できるように、プレゼンテーションも少し調整します。

<presentationdescription>
    <Chart Palette="None" PaletteCustomColors="97,142,206; 209,98,96; 168,203,104; 142,116,178; 93,186,215; 255,155,83; 148,172,215; 217,148,147; 189,213,151; 173,158,196; 145,201,221; 255,180,138">
      <Series>
        <Series ChartType="StackedColumn" IsValueShownAsLabel="True" Font="{0}, 9.5px" LabelForeColor="59, 59, 59">
          <SmartLabelStyle Enabled="True" />
        </Series>
      </Series>
      <ChartAreas>
        <ChartArea BorderColor="White" BorderDashStyle="Solid">
          <AxisY TitleForeColor="59, 59, 59" TitleFont="{0}, 10.5px" LineColor="165, 172, 181">
            <MajorGrid LineColor="239, 242, 246" />
            <MajorTickMark LineColor="165, 172, 181" />
            <LabelStyle Font="{0}, 10.5px" ForeColor="59, 59, 59" />
          </AxisY>
          <AxisX TitleForeColor="59, 59, 59" TitleFont="{0}, 10.5px" LineColor="165, 172, 181">
            <MajorGrid Enabled="False" />
            <MajorTickMark Enabled="False" />
            <LabelStyle Font="{0}, 10.5px" ForeColor="59, 59, 59" />
          </AxisX>
        </ChartArea>
      </ChartAreas>
      <Legends>
        <Legend Alignment="Center" LegendStyle="Table" Docking="Bottom" Font="{0}, 11px" ShadowColor="0, 0, 0, 0" ForeColor="59,59,59"></Legend>
      </Legends>
      <Titles>
        <Title Alignment="TopLeft" DockingOffset="-3" Font="{0}, 13px" ForeColor="59, 59, 59"></Title>
      </Titles>
    </Chart>
  </presentationdescription>

「Action」→「Import Chart」から、手で編集したグラフ定義を CRM にインポートします。

ステップ 6 - ダッシュボードの作成

ビュー、グラフを作成し、ダッシュボードをソリューションに追加する準備ができました。 ダッシュボードの作成は次の通りです。
 
 1. ソリューションの”ダッシュボード”へ移動します。
 2. ”新規ダッシュボード”をクリックします。
 
システム ダッシュボードを作成する手順は、ユーザー ダッシュボードを作成する手順と同じです。
これは、ブログ Tracking Your Data Using Microsoft Dynamics CRM Dashboards(英語)に記載されていますので、ここでは省略しますが、カスタマイザーはシステム既定のダッシュボードとして、ソリューション内のダッシュボードを指定できることに注意してください。
システム既定のダッシュボードは、組織のすべてのユーザーに適用されます。各ユーザー用の既定ダッシュボード設定は、システムダッシュボードの設定を上書きすることができます。

ステップ 7 - Account フォームのカスタマイズ

使用する Account のコンテキストで、情報を表示できるとことをお伝えしました。 手順を紹介します。

 1. ソリューションの Account に移動します。
 2. フォーム エディターを使用して、Account フォームを開きます。
 3. Account にグラフを挿入します - ”Order” を挿入するには以下の手順になります。
  a. フォーム エディターのリボンで ”sub-grid” アイコンをクリックします。
  b. ”Order”エンティティを選択します。
  c. ” Show Related Records”を選択します。
  d. ” Orders Modified This Week”のビューを選択します。
  e. グラフにあるチェックボックスをクリックします。
 4. ダッシュボードに他のグラフを追加する場合は、ステップ 3に戻ります。

Account にContact、Opportunity、Quote、Order のグラフを表示している例は次の通りです。

最後に

Microsoft Dynamics CRM 2011 Beta 版のグラフとダッシュボード機能がパワフルになっていることを紹介しました。
Microsoft Dynamics CRM 2011 Beta 版では、エンドユーザーがダッシュボードを作成できますが、広範なビジネス ・ ニーズを満たすように開発者がダッシュボードを拡張する場合もあります。
ここでご紹介した内容を参考に、ダッシュボード機能が活用され、みなさんのお役に立てることを期待してます!

情報元 : Microsoft Dynamics CRM Dashboards for Techies
https://blogs.msdn.com/b/crm/archive/2010/10/20/microsoft-dynamics-crm-dashboards-for-techies.aspx

- Dynamics CRM サポート 斎藤 さち江