This project is read-only.

Solution Detail

This solution consists of 3 components.

Custom Entity : Query History
The custom entity stored "Last Executed Query" information. Please note it is not "Last Used View" information.
It has 2 custom fields.

- Entity Name : (1 line text, Length 100) - Stores which entity for the query
- FetchXML : (Multiline text, Length 10,000) - Stores last used FetchXml. (QueryExpression will be converted to FetchXML to store)

Plug-in
Plug-in monitor and investigate query passed to RetrieveMultiple, and decide what to do depending on the query. Please see source code for more detail.
If you want to register more steps, please use the Plugin Registration Tool and register a step as following.

- Register against RetrieveMultiple request (Please do not register against Execute)
- Specify the Entity that you want QuickFind query based on last executed query (Please do not leave primary Entity blank as that affect all entities)
- Specify Calling User to Run in User's Context
- Register to Pre-Operation stage with Synchronous

Security Role
Simple security role which has User level Create/Read/Write privilege to the custom entity.

Important Notes

Please do not use this in Production
Please consider this as just a sample to demonstrate how to achieve the scenario. As scenario and situation varies depending on each environment, please investigate the code and modify accordingly to meet your requirements.
In addition, please implement error handling which suits your system.

Signing Key
Provided sample Visual Studio solution includes self signed certificate with no password. When you do so, please do not forget to update the entity and the field names in the plug-in code.

Managed Solution
I strongly recommend you to create your own solution which includes necessary custom entity with custom field. When you do so, do not forget update entity and field names in plug-in code.


ソリューションの詳細

このソリューションは 3 つのコンポーネントを含みます。

カスタムエンティティ : Query History
このエンティティはユーザーが最後に実行したクエリを保存します。(最後に使ったビューとは限りません)
以下 2 つのカスタムフィールドを持ちます。

- Entity Name : (1 行文字列、長さ 100) - クエリの対象となるエンティティ名です。
- FetchXML : (複数行文字列、長さ 10,000) - 最後に使われたクエリです。(QueryExpression は FetchXML に変換して保存されます)

プラグイン
プラグインが RetrieveMultiple リクエストに対するクエリを監視、確認します。その後クエリの種類や状況に応じて処理を行います。詳細はソースコードをご覧ください。
ステップ追加する際は、プラグイン登録ツールを利用して、以下内容の通りステップを登録してください。

- RetrieveMultiple リクエストに対して登録します。 (Execute メソッドには登録しないでください)
- 簡易検索の挙動を変えたいエンティティを指定します。(指定しない場合全てのエンティティに影響しますので必ず指定してください。)
- ユーザーコンテキストは実行ユーザーを選択してください。
- Pre-Operation ステージに同期で登録してください。

重要事項

署名キー
提供されるサンプルの Visual Studio ソリューションでは自己署名のキーで署名をしています。実際に利用する場合は、コードだけを再利用するか、適切なキーで署名しなおしてください。

マネージドソリューション
実際に利用する場合は、独自のソリューション作成を強く推奨します。上記内容を参考に必要なカスタムエンティティとカスタムフィールドを作成してください。その際、ソースコードに埋め込まれているエンティティやフィールド名を忘れずに更新してください。

Last edited Sep 10, 2014 at 2:00 AM by kenakamu, version 9