Dynamics CRM 2011 Developer Toolkit で XAML ワークフローを開発

みなさん、こんにちは。

以前 Developer Toolkit のベータ版 を数回に渡り紹介しましたが、
先日公開された SDK 5.0.7 で正式版となり、機能も追加されました。
その中から今回は XAML ワークフローの開発を紹介します。

情報元 : Creating and Deploying XAML Workflows using the CRM Developer Toolkit

本記事のトピック一覧です。

‐ 前提条件
‐ Visual Studio でソリューションを作成
‐ CRM ワークフローアクティビティライブラリの追加
‐ CRM ワークフローアクティビティの追加
‐ ワークフローの開発
‐ ワークフローの展開
‐ ワークフローの有効化
‐ 関連リンク

前提条件

本記事のステップを試すにあたり、以下の前提条件が必要となります。

1. Visual Studio 2010 (ぷろふぇっしょなる版以上)
2. Microsoft Silverlight 4 (Visual Studio 2010 SP1 に含まれています。
個別にインストールする場合は こちら)
3. 最新の Dynamics CRM 2011 SDK (英語版)
4. 設置型の Dynamics CRM 2011 および XAML ワークフローの許可。
(許可の方法は こちら をご覧ください。)
5. Developer Toolkit 1.0 のインストール
(手順は こちら をご覧ください。※英語)

尚ベータ版をインストールして頂いている場合には、一旦そちらを削除する
必要がありますので、ご注意ください。削除自体はコントロールパネルの
プログラム機能より通常のアプリケーション同様の手順で削除できます。

Visual Studio でソリューションを作成

まずは Visual Studio のソリューションを作成します。

1. Visual Studio 2010 を起動して、新しいプロジェクトをクリックします。

2. 新しいプロジェクトの画面で、以下のように Dynamics CRM を選択します。

3. 一番上の ‘New Visual Studio Solution Template for Dynamics CRM 2011’
を選択し、任意の名前をつけて OK をクリックします。今回は既定のままにします。

image

4. 設置型の CRM サーバーに接続するため、情報を入力します。

a. 検索サービスサーバー名、ポートおよびプロトコルを入力し Connect ボタンをクリックします。
b. ユーザー資格情報を入力して、Log On ボタンをクリックします。
c. ワークフローを展開した組織を選択してから、ソリューションを選びます。
※ソリューションは事前に作成する必要があります。今回は既定を利用します。

d. 最後に OK をクリックします。

image

CRM ワークフローアクティビティライブラリの追加

選択したテンプレートには、既定で展開用パッケージ、プラグイン、Silverlight 開発
ワークフロー(カスタムアクティビティ) のプロジェクトが含まれます。

今回は XAML ワークフローの開発をするので、プロジェクトを追加します。

1. ソリューションエクスプローラーより、ソリューションを右クリックして、
追加 | 新しいプロジェクトをクリックします。

2. Dynamics CRM 2011 XAML Workflow Library を選択します。

3. 任意の名前を指定して、OK をクリックします。ここでは既定を利用します。

image

4. 追加したプロジェクトを展開し、参照設定を右クリック | 参照の追加を
クリックし、 System.Runtime.Serialization を追加します。

image

CRM ワークフローアクティビティの追加

追加されたプロジェクトに対して、ワークフローアクティビティを追加します。

1. 追加されたプロジェクトを右クリックして、追加 | 新しい項目をクリックします。

2. Dynamics CRM テンプレートより XAML Workflow Activity を追加します。

image

3. プロセス作成の画面が出るので、プロセス名と対象エンティティを指定します。
ここでは Test Workflow および取引先担当者を選択しました。

image

4. Create をクリックすると、デザイナーが開きます。

ワークフローの開発

今回は、メモを 10 個追加するワークフローを開発してみます。

1. 画面最下部にある引数をクリックします。

image

2. 引数の作成をクリックして、名前に InputEntities、方向に入力を
選択します。この引数にはワークフローで指定した主エンティティの
情報がはいってきます。

image

3. 引数の型をクリックして、型の参照を選択します。

4. 型の名前に IDictionary をいれます。結果より System.Collections.Generic
の IDictionary を選択します。

image

5. 初めにドロップダウンに String を指定し、次のドロップダウンからは再度
型の参照を選択します。

6. 型の名前に Microsoft.Xrm.Sdk.Entity と入力して、結果より
Microsoft.Xrm.Sdk.Entity を選択します。初めの画面に戻ります。

image

7. OK をクリックします。

image

8. 同様に以下の引数も追加します。こちらに追加するメモを格納します。
名前: CreatedEntities
方向: 入力
引数の型: プルダウンより先ほど指定したものを選択

image

9. ツールボックスを開いて、CRM Workflow Activities があるか確認します。
その中から Workflow をデザイナーの画面にドラッグします。

image

10. 設置した Workflow の中に 制御フローより Sequence をドラッグします。

11. プリミティブより Assign を Sequence の中にドラッグします。

image

12. プロパティに以下の値を入力します。

DisplayName : Initialize Memo Entity
To : CreatedEntities("MyNoteEntity")
Value : New Entity("annotation")

上記の設定で、CreatedEntities 引数に新しいメモを作りました。

13. 追加した Assign の下に、再度 Assign を追加します。
プロパティに以下の値を入力します。

DisplayName : Add subject
To : CreatedEntities("MyNoteEntity")("subject")
Value : "XAML Subject"

これでメモのタイトルを指定しています。

14. さらに以下の設定で Assign を追加します。メモの本文です。

DisplayName : Add note text
To : CreatedEntities("MyNoteEntity")("notetext")
Value : "XAML Note Text"

15. さらに以下の設定で Assign を追加します。今度は取引先担当者
への関連の設定です。よって EntityReference を作ります。
InputEntities("primaryEntity") でワークフロー実行時の主エンティティ
レコードの情報が取得できます。

DisplayName : Add ObjectId
To : CreatedEntities("MyNoteEntity")("notetext")
Value : New EntityReference("contact", New Guid(InputEntities("primaryEntity").Id.ToString()))

16. CRM Workflow Activities より CreateEntity を追加します。
プロパティに、以下の値を設定します。

Entity : CreatedEntities("MyNoteEntity")
EntityName : “annotation”

image

17. ビルドメニューより、ソリューションのリビルドを行います。
これでワークフローの開発は終了です。

ワークフローの展開

開発した XAML ワークフローは、CrmPackage プロジェクトから
展開が可能です。

1. 今回はプラグインやカスタムアクティビティは開発していないため、
CrmPackage プロジェクトの参照より、既存の参照を削除します。

2. 追加した XAML ワークフロープロジェクトを参照に追加します。

image

3. CrmPackage プロジェクトを右クリックして、配置をクリックします。

4. 配置に成功すると、プロセス配下に開発したプロセスが表示されます。

image

ワークフローの有効化

展開後、ワークフローを有効にします。

1. 上記プロセスの画面より、Test Workflow を開きます。

2. 開始時期で、今回はレコードの作成を選択しました。

3. 保存後、アクティブ化ボタンをクリックします。

これで準備完了です。最後にテストの取引先担当者レコードを
作成すれば、以下のようなメモが追加されます。

image

関連リンク

現状英語の情報が主になりますが、関連リンクを紹介いたします。
Developer Toolkit for Microsoft Dynamics CRM
Custom XAML workflows in CRM
Generic information about the Visual Studio Workflow Designer
CRM Software Development Kit

まとめ

Developer Toolkit の機能が充実するにつれ、様々な開発が 1 つの
ソリューションとして管理できるようになって来ました。これから開発を
はじめる場合には、是非こちらのツールも開発の選択肢としてご検討
ください。

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