Dynamics CRM 2013/Fall '13 ユーザー定義アクション その 1

みなさん、こんにちは。

今回から Microsoft Dynamics CRM 2013 および、Microsoft Dynamics
CRM Online Fall '13 の新機能である、ユーザー定義アクション (操作)
を紹介します。

概要

通常、ビジネスプロセスを把握し改善する担当者とシステムの開発、
保守を行う担当者は異なります。ビジネスアナリストはプロセスを
開発者に伝え、開発者はシステムにプロセスを実装します。

このモデルの場合、以下の様な問題が発生します。

- 開発者がビジネスプロセスを理解する必要がある
- 伝達ミス、相互理解の不足により問題が発生する
- プロセスを変更するたびに改修が入る

これらの問題を解消すべくユーザー定義アクションは導入されました。
アクションでは以下の機能を提供します。

- ビジネスアナリストは GUI エディターを利用して操作を作成
- 開発者は操作に関連付いた要求/応答を呼び出すプログラムのみ作成
- プログラムの完成後もビジネスアナリストは操作の編集を自由に行う
ことができる。(入出力パラメータが同じ場合)

早速具体例を見ていきます。

シナリオ

オープン状態の潜在顧客に対して電話活動が行われていない場合、
任意の担当者にメールで通知する必要があります。毎日 0 時にこの
処理をバッチ実行する予定ですが、今後担当者にメールで通知する
担当者の変更や、プロセスの追加が行われる可能性があります。

実装方式の候補

シナリオを実現するにはいくつかの方式が考えられます。まず夜間の
バッチ処理を前提としているため SDK でコンソールアプリケーション
を使用することはほぼ決まりとなりますが、処理自体は以下の選択肢
があります。

プロセスをコード内にハードコードする

これは今までの方法で、上記に挙げた問題が潜在的に存在します。

ワークフローを利用する

ワークフローを実行するフラグとなるカスタムフィールドを作成し、
その値のみを SDK で更新します。この場合ワークフロー側で実際
の処理を行えるためビジネスアナリストがワークフローの作成および
管理を行うことができます。

ただしフラグ用のフィールド追加や本質的には必要のないレコードの
更新処理が伴います。

ユーザー定義アクションを利用する

今回はユーザー定義アクションを利用します。メリット、デメリット
については今後の記事で紹介していきます。

操作の作成

まずビジネスプロセスに該当する操作を作成します。操作はワークフロー
と同じ要領で作成が可能です。

1. 設定モジュールよりプロセスを選択し、新規ボタンをクリックします。

2. カテゴリより操作、エンティティより潜在顧客を選択し、任意の名前
を設定します。ここでは潜在顧客のフォローアップとしました。

image

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

4. 一意の名前を指定します。この名前が SDK より呼び出すメッセージ
名となります。ここでは followupLead としました。

5. 処理をトランザクションとして設定したい場合、ロールバックを有効
にするにチェックを付けておきます。またエラー発生時にログを見たい
場合は、エラーが発生したワークフロージョブのログを保持する項目で
チェックを付けておきます。

image

6. 入出力パラメーターを利用する場合はパラメーターの追加を行います
が今回はシナリオにないため省略します。

image

7. ステップの追加より電子メールの送信を追加します。任意の名前を指定
します。

image

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

9. 差出人で管理者を指定します。

10. 宛先に潜在顧客の作成者を指定します。

11. 任意の件名、本文を入力して、保存して閉じるをクリックします。

12. アクティブ化をクリックします。

操作がアクティブになれば準備完了です。

次回は SDK より定義した操作を呼び出す方法を紹介します。

- 中村 憲一郎