Microsoft Dynamics CRM : 既定のプラグインを利用した Azure 連携サンプル紹介

みなさん、こんにちは。

今回は開発者の方向けの情報として、Windows Azure のービスバス連携機能の
中から、既定のプラグインを利用する方法を紹介します。

Windows Azure と Microsoft Dynamics CRM との統合については、以下ページを
参照してください。

Windows Azure と Microsoft Dynamics CRM との統合の概要

概要

上記リンクにもありますが、基本的なフローは以下の通りです。このフローにある
3 番の箇所のやり方が複数存在しますが、今回は既定のプラグインを紹介します。
また Microsoft Dynamics CRM はオンラインを利用する前提とします。

Microsoft Dynamics CRM からサービス バスへのシナリオ

Windows Azure アカウントの作成

既に Windows Azure のアカウントをお持ちの場合はこちらのステップはスキップ
してください。またアカウントをお持ちでない場合、体験版をご利用いただけます。

1. https://www.windowsazure.com/ja-jp/pricing/free-trial/ にアクセスします。

2. 無料で試すリンクをクリックします。

image

3. 任意の Microsoft アカウントでログインして、画面に沿って進めてください。

image

4. 体験版の申し込みが完了すれば準備は終了です。

Windows Azure サービスバスの作成

1. 体験版を申し込んだアカウント、または既にお持ちのアカウントで
Windows Azure ポータルにログインします。
https://windows.azure.com

2. ポータル左側にあるアイテムより SERVICE BUS を選択します。
そして画面一番下の新規ボタンをクリックします。

image

3. メニューがせりあがってきますので、SERVICE BUS | キュー | 簡易作成を
クリック、任意の URL を入力します。この名前は Azure で一意である必要が
あるため、名前の横に緑のチェックマークが出るか確認してください。また
地域から 東アジア を選択後、画面右下の新しいキューを作成するボタンを
クリックします。

image

4. SERVICE  BUS 一覧で作成した名前空間がアクティブになれば完了です。

5.一覧よりアクティブになった名前を選択し、画面下にあるアクセスキーを
クリックします。

image

6. 表示された既定のキーをメモしておきます。

Microsoft Dynamics CRM 側の準備

Windows Azure サービスバスに接続するにあたり、認証が必要になります。
認証情報として証明書を利用します。

1. ブラウザで Microsoft Dynamics CRM Online に接続します。

2. 設定 | カスタマイズ | 開発者リソースをクリックします。

3. 証明書のダウンロードより証明書を取得します。また発行者の
名前を確認しておきます。

image

4. SDK\bin\PluginRegistrationTool.exe を実行します。

5. 必要な情報を入力して、組織に接続します。

6. Register より Register New Service Endpoint をクリックします。

image

7. 必要な情報を入力します。

image

Name : 任意の名称です。プラグイン登録ツールに表示されます。
Description : 任意の説明です。 プラグイン登録ツールに表示されます。
Solution Namespace : 上記手順で登録したサービスバスの名前空間です。
※ -ns は Azure 側でつく文字列です。忘れずに指定してください。
Path : サービスバス上で待ち受けるアプリケーションの名前です。今回は
サンプルを利用しますので、その名称である MyQueue と入力します。
Contract : サービスバスで利用するアプリケーションの種類です。今回は
サンプルを利用しますので、PersistentQueue を指定します。

8. 画面左下の Save & Configure ACS をクリックします。

9. ACS Configuration 画面が表示されます。必要な情報を入力します。

image

Management Key : サービスバス作成時に取得したキーを入れます。
※上記のキーはダミーです。
Certificate File : 上記手順で取得した証明書を指定します。
Issuer Name : 上記手順で確認した発行者名を入力します。

10. Configure ACS をクリックします。警告表示で YES をクリックします。

11. エラーが出なければ構成完了です。Close ボタンをクリックし、
Service Endpoint Details 画面も Save で閉じます。

プラグインステップの登録

次にサービスバスへ情報を送りたい操作に対してステップを登録します。

1. 登録した Service Endpoint を右クリックして、Register New Step を
クリックします。

image

2. 今回はサンプルで必要なレターの作成に対してステップを追加します。

image

サンプルプログラムの実行

最後に SDK サンプルを実行し、サービスバスで情報を待ち受けます。

1. Visual Studio で sdk\samplecode\cs\azure\windowsazure.sln を
開きます。

2. ソリューションエクスプローラーより PersistentQueueListener を
右クリックして、スターとアッププロジェクトに設定を選択します。

3. PersistentQueueListener.cs ファイルを開きます。

4. MyQueuePath 変数に MyQueue と指定されていることを確認します。
この名称が先ほど設定した Path に相当します。

private const String MyQueuePath = "MyQueue";

5. F5 を押下してアプリケーションを開始します。

6. サービスバスの名前空間、発行者名、アクセスキーを聞かれるので
順次入力します。尚、ここの発行者名はサービスバスのアクセスキー
から確認した名前で、通常は owner です。

7. Press [Enter] to retrieve a message from the queue と出たら成功です。

動作確認

では実際に動かしてみましょう。

1. Microsoft Dynamics CRM Online でレターを作成します。

2. 設定 | 管理 | システムジョブから非同期プラグインが実行された
ことを確認します。

image

3. ステータスが成功しましたに変わった時点で、Visual Studio で
起動しているアプリケーションに戻ります。

4. 画面上で Enter キーを押下して、画面上に情報が出るか確認します。

まとめ

上記手順では、ファイアウォールの背後にいるアプリケーションが
オンラインの操作で生成されたコンテキストを取得できることを
示しました。いかがだったでしょうか。

取得した情報はそのまま他システム連携に利用しても結構ですし、
一旦どこかに保存して置くことも可能です。色々試してみてください。

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