Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

【Dynamics CRM】【Azure】Dynamics CRMとAzure Service Busの連携 その3

前回の記事の続きです。

kageura.hatenadiary.jp

なお、いろいろとごちゃごちゃしている間に、Office365勉強会でLTをやってみたりしてました。

ただ、基本的にこのBlogで書いていることのまとめです。。。

docs.com

必要なもの

以下のNugetから必要なライブラリを取得しました。

基本的にはServiceBusのライブラリとDynamics CRMSDK関係ライブラリがあれば大丈夫です。

www.nuget.org

www.nuget.org

ソースコード

現時点の私の理解では、ServiceBusへのlistenerアプローチは2つ。

WCFベースでの実装

・QueueClientクラスを用いた実装

今回自分が実装したアプローチは後者のQueueClientクラスを利用したもので、

逐次メッセージを取得しにいくメソッドを用いて、一定間隔でループさせています。

取得されるメッセージボディはPluginのContextクラスを内包したRemoteExecutionContextクラスです。

これにより、Pluginから送られてきたInputParameterやImageなどが取得でき、いろいろうんちゃかできます。

備考

DynamicsCRM のSDKには、上記とは違うWCF形式のサンプルコードが含まれています。

含まれていて、動くっぽいんですが。

動かない……。(#^ω^)(ビルドはできて、コネクションは確立している気がするんですがね。)

いろいろと試しているんですが、なぜかキュー本体が消えてしまうというよくわからん問題にぶち当たっております。

(一回Fiddlerで見てみようかな……。)

でも、WCFでいきますと、Contractでデリゲートしておいたクラスが毎回呼ばれてきそうな雰囲気がありますので、ちゃんと動かしたいんですよね……。

正直上のプログラムもサンプルコードレベルにしても、なかなか無理矢理感があふれるので、今後もうちょっとわかったら、アップデートしていきたいところです。