ドキュメント ID と DocID サービス

最終更新日: 2010年4月19日

適用対象: SharePoint Server 2010

この記事の内容
静的 URL の概要
ドキュメント ID の管理
ドキュメント ID によるコンテンツ タイプへの影響
ドキュメント ID の割り当て
ドキュメント ID の永続性
ドキュメント ID の参照動作
ドキュメント ID 参照ボックス Web パーツ
カスタム ドキュメント ID プロバイダー

ドキュメント ID 機能は、アイテムの現在の場所に関係なく、アイテムを取得するために使用できる識別子を作成します。この機能をサポートしている Document ID Service は、ドキュメント ID を生成し、割り当てます。ここでは、ドキュメント ID のしくみ、およびドキュメント ID の生成と割り当てをサポートしているサービスのしくみについて説明します。

一般的に、URL への移動など、Web ブラウザーで開始される操作を実行することによって、ユーザーはアイテムを開きます。そのとき Web ブラウザーは、ファイルを開くように Microsoft Office クライアント アプリケーションに指示します。

静的 URL の概要

静的 URL 機能を Web ブラウザーで使用することによって、HTTP リダイレクトまたはサーバー転送呼び出しを経由してユーザーをアイテムの実際の URL にリダイレクトできます。どちらの場合も、アイテムの実際の URL が機能するすべての場所で静的 URL が機能することを目的としていません。たとえば、クライアント アプリケーションで [ファイル] メニューの [開く] を選択した場合、Open メソッドの呼び出し時に URL がリダイレクトされる動作は処理されません。

ドキュメント ID の管理

Document ID Service は、サイト コレクション レベルでアクティブ化、管理、および非アクティブ化できます。Web ブラウザーは Office クライアント アプリケーションを呼び出す前にリダイレクトを管理するので、静的 URL はサイト コレクション レベルで正しく機能します。つまり、クライアント アプリケーションには実際の URL だけが示されます。ドキュメント ID 機能をアクティブ化すると、Microsoft SharePoint Server 2010 は、サーバーの全体管理ユーザー インターフェイス (UI) に [サイト コレクションの設定] ページへのリンクを追加し、サイト コレクションでドキュメント ID の割り当てを開始する Document ID Service を有効にします。Document ID Service は、サイト コレクションにあるすべてのドキュメントのドキュメント ID を生成しますが、他の種類のリスト アイテムのドキュメント ID は生成しません。ドキュメント ID は、アイテムが追加されるたびに生成され、既定では既存の ID は上書きされます。ただし、作成されたアイテムが既存の ID を上書きしないように SharePoint Server 2010 に指示する場合を除きます。移動操作中、SharePoint Server 2010 はドキュメント ID を維持します。コピー操作中、SharePoint Server 2010 は新しいドキュメント ID を割り当てます。これは、PersistID 列にブール演算子を設定することによって、制御できます。

ドキュメント ID が割り当てられると、その ID はメタデータとして公開され、サーバーは、ドキュメント ID が割り当てられたアイテムをそのドキュメント ID によって認識できるように静的 URL を公開します。静的 URL は、アイテムを検索するか参照して、アイテムを取得しようとします。

検索管理者は、ID 列を管理された検索列として追加し、必要に応じてドキュメント ID を参照するときに使用する新しい検索範囲を作成することによって、ドキュメント ID を参照する検索サービスを構成できます。SharePoint Server 2010 には、この操作を自動的に実行する Windows PowerShell 1.0 コマンドが用意されています。

機能を非アクティブ化すると、[サイト コレクションの設定] ページへのリンクは削除され、ドキュメント ID を参照するために使用されるページは使用できなくなり、Document ID Service は無効になり、ドキュメント ID の割り当ては停止されます。サーバーは、機能を最初にアクティブ化したときにサイト レベルで追加する列を削除しません。これにより、非アクティブ化した後でも、既存のドキュメント ID は保持されます。機能を非アクティブ化すると、静的 URL を使用して、ドキュメント ID によってアイテムを参照しようとしているユーザーには、"このサイト コレクションは、ドキュメント ID を使用するように構成されていません。" というエラー メッセージが表示されます。

ドキュメント ID によるコンテンツ タイプへの影響

Document ID Service が有効になると、SharePoint Server 2010 は新しい列をドキュメント コンテンツ タイプとドキュメント セット コンテンツ タイプに追加します。これらのコンテンツ タイプは、ドキュメント ID を格納し、静的 URL とドキュメント ID を割り当てるイベント レシーバーを公開します。サービスには、サイト コレクション内の既存のすべてのアイテムに ID を割り当てる作業アイテム ジョブもあります。サーバーは、次のサイト列を、"ドキュメント ID" という名前のグループにあるサイト コレクションに追加します。また、サイト列は、サイト コレクション レベルでドキュメント コンテンツ タイプとドキュメント セット コンテンツ タイプに追加されます。

DocID 列は、アイテムに割り当てられているドキュメント ID を格納します。この列には次の属性があります。

  • Name: ドキュメント ID

  • Description: このアイテムの現在の場所に関係なく、このアイテムを検索するために使用されます。

  • Type: テキスト

  • Indexed: False

  • Sealed: True

  • ReadOnly: True

  • CanBeDeleted: False

  • ShowInNewForm: False

  • ShowInEditForm: False

  • Static URL Column

Static URL 列は、ドキュメント ID を参照するときに使用されるアイテムの URL を表します。この列には次の属性があります。

  • Name: 静的 URL

  • Description: このアイテムの現在の場所に関係なく、このアイテムを取得するために使用されます。

  • Type: URL

  • Indexed: False

  • Sealed: True

  • ReadOnly: True

  • CanBeDeleted: False

  • ShowInNewForm: False

  • ShowInEditForm: False

PersistID 列は、既存のドキュメント ID をそのまま維持する必要があるのか、再度割り当てる必要があるのかを判断するためにドキュメント ID 割り当てロジックによって使用されます。この列は、表示されず、UI をレンダリングしません。この列をビューに追加することはできません。

  • Name: PersistID

  • Description: アイテムが新しい場所にコピーされた後に、そのアイテムの現在の ID を維持する必要があるかどうかを指定するために使用されます。

  • Type: Boolean

  • Default value: False

  • Indexed: False

  • Sealed: True

  • ReadOnly: True

  • CanBeDeleted: False

  • ShowInNewForm: False

  • ShowInEditForm: False

  • ShowInViewForms: False

  • Event Receivers

上記で説明した列をドキュメント コンテンツ タイプとドキュメント セット コンテンツ タイプに追加する以外に、SharePoint Server 2010 は、ドキュメントまたはドキュメント セットが SharePoint Foundation 2010 にアップロードされるたびに実行できるように、イベント レシーバーを適切な SharePoint Foundation 2010 イベントに追加します。サーバーは、ItemAdded(SPItemEventProperties) ([M:Microsoft.SharePoint.SPItemEventReceiver.ItemAdding(Microsoft.SharePoint.SPItemEventProperties] ではない) などの同期イベント レシーバーを使用して、ドキュメント ID プロバイダーがドキュメント ID を割り当てるときに確実にアイテム メタデータを使用できるようにします。

ドキュメント ID の割り当て

アイテムがサイト コレクションに追加されると、SharePoint Server 2010 は、そのアイテムにドキュメント ID を割り当てるか、再度割り当てます。

新しいアイテムが追加されると、SharePoint Server 2010 は、最初にそのアイテムにドキュメント ID が割り当てられているかどうかを確認します。アイテムにドキュメント ID が割り当てられている場合、サーバーは、PreserveID 属性が True と False のどちらに設定されているかを確認し、現在 True に設定されている場合は、False に設定します。アイテムにドキュメント ID が割り当てられていない場合、サーバーは、指定されたプロバイダーからアイテムのドキュメント ID を取得し、PreserveID 属性を False に設定します。

注意

静的 URL の値は生成されません。SharePoint Server 2010 は、フィールドをレンダリングし、表示するときにその値を動的に作成します。

ドキュメント ID の永続性

既定のドキュメント ID の割り当て動作では、アイテムが存在し、既に ID が割り当てられている場合、その ID は SharePoint Server 2010 によってドキュメント ID で上書きされると想定しています。これは、SharePoint Foundation 2010 で既存のアイテムがコピーされるときに発生します。コピーされたアイテムは、ドキュメント ID を含め、元のアイテムと同じメタデータを維持しますが、ItemAdding(SPItemEventProperties) イベントをスローします。

注意

SPFile オブジェクトはその MoveTo(String) メソッドを呼び出すときに、ItemAdding(SPItemEventProperties) イベントをスローしません。

SharePoint Server 2010 では、アイテムが追加されるときにそのアイテムがコピーであるとは想定していません。代わりに、カスタム ソリューションに対し、"セマンティック移動"を実装していることを認識する方法を提供します。この移動は、(オブジェクト モデルの観点では) 既定のコピー ロジックをオーバーライドし、オブジェクト モデルがアイテムとそれに関連付けられたドキュメント ID に対して移動操作を完了している場合と同じようにアイテムとそのドキュメント ID を処理するために使用されるコピーして削除する操作です。

注意

カスタム コードを使用して、ドキュメント ID または初めて SharePoint Server 2010 にコピーされているアイテムに以前割り当てられた ID を上書きできないようにすることができます。たとえば、コピーする前にコードで DisableEventFiring() メソッドを呼び出すことによって、すべてのイベントを一時停止できます。ただし、この方法は、他のイベント レシーバーを実行する必要があり、コードが ID を保持するためにだけ使用される場合はお勧めできません。

ドキュメント ID の参照動作

SharePoint Server 2010 は、Document ID Service でドキュメント ID を参照するときに 2 部構成の方法を使用して、すぐに機能するドキュメント ID と広範囲で機能するドキュメント ID の最適なバランスを提供します。

  • 検索。現在の検索範囲に属するすべての場所でアイテムを検索します。一般的に検索は、クロス リスト クエリとして適切に動作します。ただし、検索の信頼性の高さは、その最後のインデックスと同じです。したがって、アイテムが追加され、検索によってまだインデックスが作成されていない場合、そのアイテムは検索結果に表示されません。また、最後に検索によってアイテムにインデックスが作成されてからそのアイテムを移動した場合、古い (現在は壊れている) URL が検索結果に表示されます。

  • ID プロバイダー固有の参照。検索を使用してアイテムを取得できない場合 (たとえば、そのアイテムのインデックスがまだ作成されていない場合)、SharePoint Server 2010 はドキュメント ID プロバイダーを呼び戻して、その独自の参照ロジックの使用を許可します。これにより、検索によって最後のアイテムにインデックスが作成される前に機能する ID を使用する必要があるプロバイダーは、ID を参照できます。プロバイダーは、この方法で参照を実行するかどうか、および参照を実行するために最も効果的なロジックを決定します。

ドキュメント ID 参照ボックス Web パーツ

ドキュメント ID 参照ボックス Web パーツには、ドキュメント ID を入力できます。入力すると、"静的 URL" が作成され、アイテムが参照されます。

カスタム ドキュメント ID プロバイダー

カスタム プロバイダーを使用して、ドキュメント ID をアイテムに割り当てることができます。一部の組織では、特定のアイテム メタデータで ID の割り当て方法が決まっている場合があります。この場合、確実に ID によってアイテムの情報を伝えることができます。

SharePoint Server 2010 では、カスタム コード プラグインを使用してドキュメント ID を提供することをサポートしています。IIDProvider インターフェイスから派生したクラスを実装し、そのプロバイダーを各サイト コレクションに展開し、登録することによってカスタム プロバイダーを作成できます。カスタム プロバイダーを登録すると、Document ID Service は、既定のプロバイダーの代わりにカスタム プロバイダーを使用します。

関連項目

概念

ドキュメントの管理

サンプル: カスタム ドキュメント ID プロバイダー