検索と処理の開発プロセス
検索と処理の操作によって、ユーザーは検索クエリに基づいて特定のリスト アイテムのセットを識別してから、それらのリスト アイテムに対してカスタム操作を一括で実行することができます。たとえば、特定のドキュメント メタデータに基づいて、特定のドキュメントのセットを識別し、これらのドキュメントをレコード リポジトリに移動することが必要になる場合があります。
以下に、検索と処理の操作を作成する手順の概要を示します。
検索で返されるようにするアイテムを処理するアセンブリを作成します。
返されたアイテムを処理するには、アセンブリに IProcess インターフェイスを実装する必要があります。
アセンブリをコンパイルし、それを Microsoft Office SharePoint Server 2007 サーバーにインストールします。アセンブリは、厳密な名前を付けて署名し、グローバル アセンブリ キャッシュに追加する必要があります。
検索と処理のジョブを表す新しい SearchAndProcessItem オブジェクトを作成するコードを記述します。このクラスには、以下のものを指定するために使用できるプロパティが含まれています。
範囲、ステミング、ノイズ、重複する結果のトリミング、返されるセットのサイズなどの検索クエリのパラメータ。
検索によって返される各アイテムを処理するために呼び出すアセンブリの名前と、アセンブリ内のクラス。
この検索と処理のジョブに関する電子メール レポートに表示する名前。
処理のアセンブリとクラスに渡す、省略可能な任意の引数。
検索と処理のジョブの結果に関する電子メールによってレポートを送信するユーザー。
SearchAndProcessItem クラスの Add メソッドを呼び出し、検索と処理のジョブを Office SharePoint Server 2007 マスタ タイマ ジョブに追加します。
注意
Add メソッドには、どのユーザーの代わりに検索と処理の操作を実行するかを指定するパラメータが用意されています。そのユーザーが適切な権限を持っていないアイテムは、検索と処理の操作によって返されるセットには含まれません。
Add メソッドでは、ジョブを実行する時間を指定できます。Add メソッドは、以下のいずれかが発生した場合は例外をスローします。
参照されているアセンブリが見つからない場合、またはアセンブリに IProcess インターフェイスが実装されていない場合。
ジョブを実行するよう指定した時間が無効である場合。たとえば、過去の時間を指定した場合です。
検索および処理操作は、1 回だけの非同期タイマ ジョブとして作成されます。Add メソッドは GUID を返し、これは、この要求のために作成された SPTimerJob の GUID を表します。
IProcess インターフェイス
検索と処理の操作の一部としてアイテムを処理するために作成する各アセンブリには、IProcess インターフェイスを実装する必要があります。IProcess インターフェイスは、単一のメソッド ProcessItem から成ります。Office SharePoint Server 2007 は、検索によって返されたセット内のアイテムごとに、このメソッドを呼び出します。ProcessItem メソッドには、以下のものを指定するパラメータがあります。
処理するアイテム
ユーザーが Office SharePoint Server 2007 に、アセンブリに渡すよう指定した省略可能な任意の引数
アセンブリが詳細な処理情報を Office SharePoint Server 2007 に返すための出力パラメータ
ProcessItem メソッドは、アイテムが正常に処理されたかどうかを示すブール値を返します。
Office SharePoint Server 2007 は、処理されたアイテムごとに、このブール型の成功インジケータと、出力パラメータによって返されたすべての詳細情報を格納します。Office SharePoint Server 2007 はこの情報を、指定されたユーザーに電子メールで送信する検索と処理のジョブ概要レポートに含めます。