プラグインを開発するときに使用できるメッセージの種類はEntityによって異なります。また、使用できるImage のメッセージプロパティ名もメッセージの種類によって異なります。今回は、それらを調べるためのリソースの格納場所を調べるためのメモを記載します。

1. プラグインで使用できるEntity ごとのメッセージの種類

プラグインで使用できる各Entity ごとのメッセージは、Dynamics CRM SDK のヘルプに掲載されています。SDK の HtmlHelp を起動して、

Microsoft Dynamics CRM SDK → プラグイン → イベント フレームワークの概要 → サポートされているプラグインのメッセージ

で、エンティティごとのプラグインで使用できるメッセージを確認できます。このメッセージ一覧はDynamics CRM SDK 付属のプラグイン登録ツールが格納されているフォルダsdk\tooks\plug-in message-entity table.xls にExcel ファイルとして提供されています。

2. メッセージごとに使用できる Image のメッセージプロパティ名

プラグインでは、一部のEntity のイベントに Image がサポートされます。Imageを使用することでコアオペレーションの前後の新旧の値(IDなど)をプラグイン内で取得できます。imageの詳細についてはSDKのヘルプを参照してください。

Image で使用できるメッセージと取得できるプロパティの名前はDynamics CRM SDK のヘルプを起動し、

Microsoft Dynamics CRM SDK → Programming Reference → CrmService Web Service → CrmService Classes → SdkMessageProcessingStepImageRegistration Class → SdkMessageProcessingStepImageRegistration.MessagePropertyName Property

から確認できます。

参考のため、SDK で記載されている同じ表を掲載しておきます。Message カラムが処理メッセージ名で、Enumeration が Microsoft.Crm.Sdk.ParameterName クラスで提供される各プロパティで、MessagePropertyName に設定可能なプロパティ名の文字列をあらわします。String value が実際の文字列値です。この値はSDKに付属するプラグイン登録ツールである plugindeveloper や pluginregistration で設定するImageのMessagePropertyNameに指定するのに使用します。

Message Enumeration String value
Assign ParameterName.Target "Target"
Create ParameterName.Id "id"
Delete ParameterName.Target "Target"
DeliverIncoming ParameterName.EmailId "emailid"
DeliverPromote ParameterName.EmailId "emailid"
Merge ParameterName.Target "Target"
Merge ParameterName.SubordinateId "subordinateid"
Route ParameterName.Target "Target"
Send ParameterName.EmailId "emailid"
SetState ParameterName.EntityMoniker "entityMoniker"
SetStateDynamicEntity ParameterName.EntityMoniker "entityMoniker"
Update ParameterName.Target "Target"

3. まとめ

説明は以上です。各Entity で使用できるメッセージなどは言及されている場所を知らないと苦労するので参考にになればと思います。

プラグインの開発に関してはSDKのヘルプを確認すると、サンプルが掲載されています。また、プラグインの登録に関しては、SDKにソースで提供されている plugindeveloper や pluginregistration を使用することで登録できます。掲載時のSDKでは、登録ツールはVisual Studio 2005 のソリューションファイルで格納されていますがVisual Studio 2008 のプロジェクトを作成して、ソースをコピーし、microsoft.crm.sdk.dll と microsoft.crm.sdktypeproxy.dll および、System.Web.Services.dll を参照に追加してビルドすれば登録ツールを作成できます。登録ツールはIFD構成の環境でもOn-Premise 環境と同じようにAD認証を使用する環境で実行する必要があるので注意してください。