Dynamics CRM 2011 新機能 ダイアログ

みなさん、こんにちは。

今回は Dynamics CRM 2011 の新機能であるダイアログを紹介します。
ダイアログはプロセスの一種であり、プロセスに関しては前回の記事で
紹介しましたので、まだご覧になっていない方はご覧ください。

シナリオ

ダイアログを作成するにあたり、以下のシナリオを前提にします。

既存の取引先レコードに関連するサポート案件を作成する。契約は
既にあるものから選択でき、かつタイトル(サポート案件名)を入力できる。

事前準備

実際にダイアログを作りにあたり、事前準備をします。以下の手順で
作業を行ってください。

1. 取引先企業を 2 つ作成します。ここではサンプルデータを用います。

2. 契約を 5 つ作成します。

サンプル契約 1 :
- 契約終了日が今日より先
- 顧客はストアー (サンプル)
- 契約品目が 2 つ
  - サンプル契約品目 1 : 残りのサービス単位 10、金額 10万
  - サンプル契約品目 2 : 残りのサービス単位 20、金額 20万

サンプル契約 2 :
- 契約終了日が今日より先
- 顧客はストアー (サンプル)
- 契約品目が 2 つ
  - サンプル契約品目 3 : 残りのサービス単位 15、金額 15万
  - サンプル契約品目 4 : 残りのサービス単位 25、金額 30万

サンプル期限切れ契約 1 :
- 契約終了日が今日より前 (期限切れ用)
- 顧客はストアー (サンプル)
- 契約品目が 1 つ
  - サンプル契約品目 5 : 残りのサービス単位 20、金額 50万

サンプル契約 3 :
- 契約終了日が今日より先
- 顧客はアドバンツ (サンプル)
- 契約品目が 2 つ
  - サンプル契約品目 6 : 残りのサービス単位 5、金額 10万

3. 全ての契約を選択して、アクティブ化をクリックします。

image

これで事前準備は完了です。

ダイアログの作成

ではダイアログを作成しましょう。

1. 設定 | プロセス センター | プロセス を開き、新規をクリックします。

2. 以下のように設定します。

image

3. OK をクリックすると、エディターが開きます。

4. まずは契約の情報を取得します。「この行を選択し、[ステップの追加] をクリックします」 を
クリックして、ステップの追加より 「CRM データのクエリ」 を選択します。このステップでは、
名前のとおり、データをクエリで取得することが可能です。

5. 説明に、「アクティブな契約取得クエリ」 と入力し、プロパティの設定をクリックします。

6. 高度な検索と良く似た画面になりますので、検索対象として契約を、保存されている
ビューの使用で 「すべての契約」 を選んで、条件を以下のように設定してください。

image

7. 検索ボタンをクリックして、検索を実行します。ストアー(サンプル) のアクティブな
契約だけが表示されることを確認してください。

8. このままでは、常にストアー(サンプル) の契約だけが取得されますので、少し
手を加えます。クエリに戻るをクリックして、前の画面に戻ります。

9. クエリ変数の変更タブをクリックします。

10. FetchXML の定義が表示され、変数が 2 つあることが確認できます。
1 つめは状態がアクティブであることを示す数値の 2 が、2 つ目は、取引先企業の
GUID が入っています。ここを動的なものに変更するため、Variable 2 の値を削除します。

11. フォームアシスタントより、検索に 「取引先企業」 の 「取引先企業」 が選択されている
ことを確認して、追加のボタンをクリックします。

image

12. 続いて OK をクリックすると、 Variable 2 が以下のように動的な値になります。

image

13. 保存して閉じるをクリックします。これで初めのクエリは完成です。

14. 次にステップの追加よりページを選択します。

15. 説明に 「契約の選択ページ」 と入力します。

16. 続いて 「この行を選択し、[ステップの追加] をクリックします。」 を選択して、
ステップの追加より 「プロンプトと応答」 を選択します。

16. 説明に 「契約の選択」 と入力してプロパティの設定をクリックします。

17. プロンプトのテキストはユーザーに表示される内容になるので、ここでは
「契約を選択してください。」 としてみます。

18. 契約が複数表示されても、1 つだけ選んで欲しいので、応答の種類では
オプション セット (ラジオ ボタン) を選択します。

19. 値の提供は、先ほどのクエリを使うため 「CRM データのクエリ」 を選択し、
アクティブな契約取得クエリを選択します。列より契約名、契約 ID にチェックを入れます。

image

20. 保存して閉じるをクリックします。これでウィザードの 1 ページ目が
作成できました。

21. 2 ページ目では、選択した契約に対応した契約品目を選択してもらい、
同時にサポート案件の件名も入力してもらいます。

22. ページの段を選択した状態で、ステップの追加より 「CRM データのクエリ」
を選択します。説明に 「契約品目取得クエリ」 と入力してプロパティの設定を
クリックします。

23. 検索に契約品目を、保存されているビューにアクティブな契約品目を選択し
以下のような条件を付け加えます。

image

24. クエリ変数の変更タブをクリックして、Variable 2 から 「あああ」 を
削除します。

25. 動的な値として、以下のように選択します。契約の選択 (契約) は
先ほど作成したプロンプトと応答の結果を表します。よってユーザーに
よって選択された契約の契約 ID を動的な値をして指定しています。

image

image

26. 保存して閉じるをクリックして画面を閉じます。

27. ステップの追加からページを追加し、「契約品目と案件名指定ページ」 とします。

28. 先ほどと同じ要領で、プロンプトと応答を追加し、契約品目の選択と
説明に入力して、プロパティの設定をクリックします。

29. プロンプトのテキストには、「契約品目を選択してください。」 と入力し、
応答の詳細は以下のように選択し、保存して閉じるをクリックします。

image

ここで 1 つポイントですが、列を複数選択した場合には、結果がただ
横並びで出ます。よって今回の場合既定では、「サンプル契約品目 1 15」 の
ように、タイトルと残りのサービス単位数がそのまま出ますが、契約 ID の
ようなものと違い、ただの数字の 15 では意味が分かりません。

区切り記号は、本来 「、」 や 「: 」 のような記号を入れて結果を区切る目的で
使いますが、今回はタイトルと残りのサービス単位数の 2 つしか結果に表示
しないため、「、残りのサービス単位数: 」 という区切り文字を指定し、結果
「サンプル契約品目 1、残りのサービス単位数: 15 」 と出るようにしています。

30. プロンプトと応答が選択された状態で、ステップの追加よりもう 1 つ
プロンプトと応答を追加します。

31. 「サポート案件名の入力」 と説明に入力し、プロパティの設定をクリックします。

32. プロンプトのテキストは 「サポート案件名を入力してください。」 とし、
応答の詳細は以下のように、テキストを入力できるように指定します。

image

33. また既定値を選択して、フォームアシスタントより以下のものを選択します。

image

34. OK をクリックして、さらに以下のように変更します。

image

これはウィザード上に案件名の既定を表示しつつも、ユーザーに編集する
機会を与えることになります。

35. 保存して閉じるをクリックします。

36. 最後に今まで得た情報を元に、サポート案件を作成します。最後のページの
領域を選択して、ステップの追加よりレコードの作成を選択します。

37. サポート案件の作成と説明に入力し、サポート案件をプルダウンから
選択します。

image

38. プロパティの設定をクリックします。

39. タイトルを選択した状態で、動的な値より以下のものを選択します。

image

これは先ほどプロンプトと応答で指定したサポート案件名の値です。

40. OK をクリックして動的な値をタイトルに追加します。

41. 他の箇所も同様に動的な値を設定します。

- 顧客 : 取引先企業 - 取引先企業
- 契約 : 契約の選択 (契約) - 契約
- 契約品目 :  契約品目の選択 (契約品目) : 契約品目

42. 保存して閉じるをクリックします、

43. これで全ての設定が完了したので、保存ボタンをクリックしてから、
アクティブ化をクリックします。

動作の確認

最後に動作の確認です。

1. ワークプレース | 取引先企業を開いて、ストアー(サンプル) を選択します。

2. リボンにある、ダイアログの開始ボタンをクリックします。

3. サポート案件作成ダイアログをクリックします。

4. 初めの画面では、契約の選択が可能です。アクティブなもののみ表示されます。

image

5. 1 つ選択して、次へをクリックします。

6. 次の画面では、選択した契約に紐付いた契約品目が表示されます。また
サポート案件のタイトルを入力するテキストボックスも表示されています。
既定で入っている内容を変更も可能です。

image

2 ページ目なので、前へボタンも追加されています。

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

8.  ダイアログ終了のメッセージが出ますので、完了をクリックします。

image

9. サービス | サポート案件を開いて、レコードができているか確認します。

image

選択したものが、全て正しく入っています。また取引先企業レコードを開き、関連の
プロセス | ダイアログ セッションからは、ダイアログの履歴が確認できます。

image

まとめ

ダイアログを利用すれば、ウィザード形式でユーザーの作業をアシスト
することが可能です。ポイントは以下のとおりです。

- ダイアログはページから成り立っている。
- 各ページには、複数のプロンプトと応答を設置できる。
- プロンプトと応答の結果をそれ以降のステップで利用できる。
- CRM データのクエリを利用して、データを取得できる。パラメータは動的にできる。
- 埋め込みのオプションセットも作成可能。

今回紹介したのは基本中の基本です。もっと柔軟なウィザードを作ることが
できますので、是非ご活用ください!

次回はワークフローの作成を紹介します。

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