Dynamics CRM 2011 ダイアログに関する Tips & Tricks その 1


みなさん、こんにちは。

つい先日 US の Dynamics CRM チームブログで面白い連載?が始まった
ようですので、日本チームのブログでも紹介したいと思います。

元記事 : Tips and Tricks in Microsoft Dynamics CRM 2011 Dialogs-Part I

効率の良いダイアログをどうやって開発するか

Microsoft Dynamics CRM 2011 では、既存のワークフローの機能を拡張して、UI を利用した
インタラクティブなワークフロー機能をダイアログという名称で提供しています。ダイアログは
プロンプトと応答ページを利用したウィザード形式であり、最低限 1 つのプロンプトと応答が
含まれる必要があります。1 つもページがない状態でアクティブ化を行うと以下エラーになります。

image

ダイアログを利用するにも関わらず、なぜページを表示したくないのでしょうか。

- 例えば、入力変数だけで処理が簡潔するようなロジックがある。
- ダイアログからワークフローを実行した場合、ダイアログには戻れないので、ダイアログとして
処理を簡潔させたい。
- ワークフローは非同期処理だが、ダイアログは同期処理。

例えば、処理を行うにあたりユーザーに情報を入力してもらう必要がある場合は、ページの表示が必要です。
しかし入力された情報を利用してバックグラウンドで処理を行う際は処理ごとにモジュール化して、処理結果を
他のモジュールに引き渡すよう設計することで、開発したモジュールの再利用性が上がります。

しかしダイアログには最低限 1 つのページが必要なため、モジュールを分割するほどページは増えていきます。
つまりユーザーが実行するウィザードのページが増えることにつながります。

しかしあるテクニックを利用することで、この問題を回避可能です。

1. 変数を 1 つ追加します。名前を Dummy、データの種類を 1 行テキスト、既定値を MyDummyText とします。

image

2, ステップの追加より条件の確認を選択します。条件を以下のように設定します。
この条件は満たされることはありません。

image

3. 条件の確認の下にページを追加します。

4. その下にプロンプトと応答を追加します。プロパティをクリックして、必須の箇所のみ
任意の値を入れてます。

image

5. 次の種類としてアクティブ化で、プロセス テンプレートを選択します。

6. 保存してアクティブ化を行います。

今後モジュールを開発する場合、このテンプレートを元に開発を行います。このダイアログはたしかに
プロンプトと応答が 1 つ含まれてはいますが、条件を満たす場合がないため、画面が表示されません。

より少ないページのダイアログを作成するためには、完了のページをどうにかすれば終わりですが
それは簡単そうでなかなか難しいです。それではパート 2 をお楽しみに。

まとめ

一部意訳となっていますが、基本的にはより少ないページのダイアログを作成すること、および
モジュール化していくことを主眼においた記事となっています。あくまで開発手法の 1 例として
お試しください。またパート 2 がリリースされれば紹介します。

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

Comments (0)

Skip to main content