Dynamics CRM 4.0 で プラグインを開発することになって、RetrieveMultiple メッセージがいつ呼ばれるのかを調べるのに苦労しました。今回は、プラグインのいくつかメッセージの呼ばれるCRMの画面とプラグインで使用されるEntityごとのメッセージの情報を掲載します。

動作は、1つのOS(Windows 2003 Enterprise Edition)にすべて必要なミドルをインストールしたDynamics CRM 4.0 (Rollup 5) 上で確認しています。

今回いくつかのメッセージがCRM Web Application のどこで使用されるのかを記載していますが、それ以外の場所でも使用される可能性があるので注意してください。

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

Plugin のEntityごとのメッセージの一覧はCRMのSDK の次のパスのxls ファイルにまとめられています。

sdk\tools\plug-in message-entity table.xls

カスタムエンティティで使用できるメッセージはxlsのPrimary Entity 列にcustom entity という名前で記載されています。

2. RetrieveMultiple メッセージはいつ呼ばれるのか

RetrieveMultiple は高度な検索や、Entityデータのグリッドでは使用されません。実際には、関連ビューを表示されるときに呼び出されます。関連ビューはEntityのメインフォームの詳細に表示される1:NやN:N関連のEntityデータを表示するリスト(グリッド)のことです。

高度な検索や、Entityデータのグリッドを表示する場合は、Execute メッセージが使用されています。 Execute メッセージはそのほかLookup 検索画面などでも使用されます。関連ビューを表示するときはRetrieveMultiple メッセージが呼び出されます。しかもExecuteメッセージに関してはプラグイン登録時にPrimary Entityを必要としません。

ちなみに各Entityのメインフォームを表示するときはRetrieveメッセージが使用されます。

3. まとめ

簡単ですが、説明は以上です。各Entityのデータ一覧を表示するリストでは、Executeメッセージが使用されており、RetrieveMultiple メッセージの使用箇所がわからなかったので覚書として記事を作成しました。