Morning Girl

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

【Dynamics CRM】【Tool】Plugin開発のための便利ツールCRM Snoop

Dynamics CRMでPluginを開発する際に、大事な要素としてデータコンテキスト(Input・OutputParameterないしPre・PostImage)があります。

プラグインに渡されるデータ コンテキストについて

https://msdn.microsoft.com/ja-jp/library/gg309673.aspx

自分も以前の記事でいろいろと取り上げていました。

kageura.hatenadiary.jp

基本的には、このデータコンテキスト、Plugin登録ツールに付属しているprofilerを通じて、Debugベースで確認することが多いかと思いますが、あまり効率的に確認することができませんし、一部RetrieveMlutipleなどのメッセージは採取しにくい場面があります。

そんなデータコンテキストを簡単にしかも素早く確認できるフリーのツール「CRM Snoop」がありましたので、メモっておきたいと思います。

公式サイト

Sonoma Partners: CRM Snoop

CRM Snoopで何ができるの?

CRM SnoopはDynamics CRMにマネージドソリューションとしてインポートして扱うツールです。

インポート後に、対象のエンティティ(AccountやContact)、メッセージ(CreateやUpdate、RetrieveMlutiple)を指定し、実際のそのメッセージが発生する操作を実施することで、CRM上でそのデータコンテキストを確認することができるようになります。

以下のような感じで、デバッグしたときのDataContextがそのまま見れます!

これで、Plugin開発をする際に、わざわざ何度もデバッグして確認することなく、InputParameterの値を認識できます。

f:id:sugimomoto:20161030124505p:plain

対象バージョンが2015くらいという表記がありますが、個人的にはある程度広いバージョンで使える気がします。(DataContextやPluginの仕様上)

使い方

結構単純で使いやすいツールですが、簡単に使い方をまとめておきます。

ちなみに英語しかありませんので、日本語環境にインポートすると、この手順のようにちょっとわかりづらくなります。

まず、ソリューションをインポート後、ソリューション一覧画面にカスタムボタン(英語ではSnoop Sessions)が追加されますので、これをクリックします。

f:id:sugimomoto:20161030124702p:plain

CRM Snoop用エンティティが表示されますので、新規をクリック

f:id:sugimomoto:20161030124710p:plain

ここで対象となるエンティティ、メッセージを選択します。

f:id:sugimomoto:20161030124717p:plain

今回はAccountのCreateを指定してみました。

そのあと、わかりづらいですが、アクティブ(英語ではStart Recording)をクリックします。

f:id:sugimomoto:20161030124724p:plain

すると、アニメーションするタイムラインがでてきます!

f:id:sugimomoto:20161030125006p:plain

この状態で、取引先企業のデータを作成してみると

f:id:sugimomoto:20161030124737p:plain

でてきました!これをクリックすることで、DataContextを確認することができます。

タイムラインで表示されるので、どのDataContextを見るべきかわかりやすいのがとても。

なお、裏側でPluginが働いて採取していると思いますので、若干動作は重くなる感じがします。

f:id:sugimomoto:20161030124746p:plain

下に、以下のような感じでDataContextがデバッグの時と同じように表示されます。

f:id:sugimomoto:20161030124753p:plain

InputParameterをドリルダウンしていくと、実際に私が先ほど作ったレコードの情報であることがわかります。

f:id:sugimomoto:20161030124759p:plain

所感

慣れてくると、なんとなくDataContextはイメージしやすいものですが、使ったことが無いメッセージ、エンティティ、PartyListなどといったオブジェクトが出てくると、結構戸惑うものです。

でも、CRM Snoopを使うことで、Pluginの詳細設計前にこのような形であたりを付けやすくなりますので、結構作業の効率化に寄与できるんじゃないでしょうか。

もちろん、開発中にも動作確認・課題点の調査にも扱いやすいものかと思います。

また、インターフェースも素晴らしいので、ぜひ広まってほしいかなと思えるツールです。