場所に基づいたメタデータの既定値
最終更新日: 2010年4月15日
適用対象: SharePoint Server 2010
この記事の内容
場所に基づいたメタデータの既定値について
条件と優先順位
既定のメタデータを適用するためのイベント レシーバーの登録
場所に対するメタデータの既定値の設定
場所に基づくメタデータの既定値のプログラミング
このトピックでは、アプリケーションを管理する、場所に基づいたメタデータの既定値、その構成オプション、優先順位ルールを示します。また、場所に基づいたメタデータの既定値でイベント レシーバーを使用して、既定のメタデータを適用する方法について説明します。
場所に基づいたメタデータの既定値について
場所に基づいたメタデータの既定値では、場所に基づいてメタデータ フィールドの既定値を管理し、その既定値を適用して、ユーザーがドキュメントを編集するときに既定値を利用できるようにします。ユーザーが Microsoft SharePoint Server 2010 サイトを対話操作するとき、SharePoint Server は、既定値を適用して、ユーザーがドキュメント編集フォームを初めて開いたときに既定値が表示されるようにします。Microsoft Word 2010 などの Microsoft Office 2010 アプリケーションは、ドキュメントが保存されたときに、場所の既定値を取得します。ドキュメントを保存するとき、クライアント アプリケーションは、コンテンツ アイテムが保存される場所のコンテンツ タイプ情報を取得し、サーバーは既定値を適用して、Office 2010 ドキュメント内にプロパティ スキーマを構築します。
条件と優先順位
場所に基づいたメタデータの既定値では、条件ルールに従って、既定値がドキュメントに適用されるタイミングを決定します。このセクションでは最初にその条件を示し、既定値の適用時に使用される優先順位ルールについて説明します。
既定値が適用されるタイミング
単一のファイルをアップロードするとき。
エクスプローラー ビューを使用するか、複数のドキュメントのアップロード ActiveX コントロールを使用して、ファイルをまとめて追加するとき。
新しい発行ページを作成するとき。
ドキュメント セットに新しい既定のドキュメントを作成するとき。
ワークフローによってドキュメントが作成されるとき。
Office 2010 クライアント アプリケーションまたは SharePoint ワークスペースから直接保存するとき。
ドキュメント変換が完了した後。
SharePoint Server 2010 は、場所に基づいたメタデータの既定値を適用するとき、最初に一連の一般的な優先順位ルールを作成して、適用されるメタデータの既定値と適用の順番を決定します。たとえば、既定値をサーバーに適用する、イベント レシーバーを登録する、ドキュメントがサーバーにアップロードされるときに発生するイベントの順序を決定するなどの場合に、特定の優先順位ルールが使用されます。
SharePoint Server 2010 が場所に基づいたメタデータの既定値をアイテムに適用する方法とタイミングは、機能が優先順位をどのように設定するかで決まります。最初に、ドキュメントをドキュメント ライブラリのフォルダーにアップロードするとき、列用の場所に基づいたメタデータの既定値が、次のようなさまざまな場所から取得されます。
列の値、"タイトル" などの組み込み列を含む可能性のあるアップロード対象のドキュメント、またはスキーマが適用されている、以前に格納された (同じ列を持つ) ドキュメント。どちらの場合も、アップロード対象のドキュメントには列の値を含めることができます。
リスト上のフィールド定義。既定値を指定できます。
ドキュメントがアップロードされるドキュメント ライブラリ内の場所。既定の列の値を指定できます。
列に適用される値を決定するときは、以下の優先順位ルールが使用されます。
アップロードされたドキュメントに含まれるフィールドの値がフィールド定義のリストの既定値と同じ場合、SharePoint Server 2010 は、フィールドの現在の値を場所に基づいた既定値で上書きします。ただし、場所に基づく既定値が、優先順位ルールに基づいて存在している場合です。
アップロードされたドキュメントに含まれる値が、リストの既定値と異なっている場合、SharePoint Server 2010 は、場所に基づく既定値が存在していても、その値を保持します。
フィールドが存在しない場合、サーバーはフィールド定義に設定されている既定値を使用します。
既定のメタデータを適用するためのイベント レシーバーの登録
ドキュメント ライブラリの任意の場所に対して、初めて場所に基づくメタデータの既定値を設定するとき、SharePoint Server 2010 は、新しい同期的な ItemAdded ポストイベント イベント レシーバーをそのドキュメント ライブラリに登録します。イベントが登録されたら、サーバーはそのイベントを場所ごとの既定値に適用します。イベントの順序は、場所に基づくメタデータの既定値がドキュメントから SharePoint Server 2010 リストの適切な列に昇格される方法、場所に対して指定される既定値、およびプロパティの値の更新または修正が必要かどうかに影響します。
ユーザーはドキュメントを場所にアップロードします。このとき、メタデータはドキュメントから昇格されます。
新しい ItemAdded イベント レシーバーが起動します。このレシーバーは、場所に指定されている場所に基づくメタベースの既定値が何かを確認し、既定値が指定され、現在の値が指定されたコンテンツ タイプの既定値と等しい場合は、プロパティの値を更新します。
ユーザーがアイテム用の標準の編集フォームを開くと、場所の正確な既定値が既に表示されています。
ドキュメント ライブラリにある最新の場所ごとの既定値を削除すると、サーバーはイベント レシーバーの登録を解除します。
ドキュメントがサーバーにアップロードされたら、ItemAdded イベントが起動され、すべての列に対するドキュメントのメタデータ値がリスト内の適切な列に昇格されます。SharePoint Server 2010 はドキュメント用の編集フォームを表示し、サーバーは一般的な優先順位ルールを使用して実際のメタデータ値を変更します。
場所に対するメタデータの既定値の設定
階層構造のフォルダーでは、既定値の設定をサポートしている列で、場所に基づくメタデータの既定値を設定できます。メタデータ値が親フォルダーで設定されている場合は、そのサブフォルダーはメタデータ値を親から継承します。ただし異なるメタデータ値がサブフォルダーに明示的に指定されている場合を除きます。フォルダーまたはメタデータが UI または API を介して操作されるかどうか、またはその操作方法によっては、フォルダーおよびサブフォルダーの既定のメタデータ値が影響を受ける可能性があります。
フォルダーまたはサブフォルダーに既定値が設定されておらず、リストに含まれている列が 1 つのみ (既定値用の空の文字列を持つ "TheOnlyColumn" というテキスト列) であると仮定すると、一連の 3 つのアクションが継承に基づいてフォルダーおよびサブフォルダーの既定のメタデータ値を変更します。たとえば、次のような構造の例を検証してみましょう。
DocLib という名前のフォルダーが親。
Alpha と Beta という名前のフォルダーが DocLib フォルダーのサブフォルダー。
フォルダー AlphaOne と AlphaTwo は、Alpha のサブフォルダー。
BetaOne は、Beta のサブフォルダー。
1 番目のアクション: Beta フォルダーに移動して既定値を設定する
ユーザーは Beta フォルダーに移動して、TheOnlyColumn に既定値 "Z" を設定します。
表 1. フォルダーに対するメタデータ値の設定の影響: 1 番目のアクション
このフォルダーにアイテムを追加すると... |
TheOnlyColumn の既定値... |
---|---|
DocLib (ルート) |
空白 |
Alpha |
空白 |
AlphaOne |
空白 |
AlphaTwo |
空白 |
Beta |
Z |
BetaOne |
Z |
変更は、Beta フォルダーと BetaOne フォルダーの両方に影響します。Beta のメタデータ値を変更すると、BetaOne に影響します。これは、BetaOne は Beta のサブフォルダーなので、その親のメタデータ値を継承するためです。
2 番目のアクション: Alpha フォルダーに移動して既定値を設定する
2 番目のユーザーは Alpha フォルダーに移動して、既定値 "Y" を設定します。
表 2. フォルダーに対するメタデータ値の設定の影響: 2 番目のアクション
このフォルダーにアイテムを追加すると... |
TheOnlyColumn の既定値... |
DocLib (ルート) |
空白 |
Alpha |
Y |
AlphaOne |
Y |
AlphaTwo |
Y |
Beta |
Z |
BetaOne |
Z |
変更は Alpha フォルダーとそのサブフォルダーに影響します。Beta フォルダーは影響されません。
3 番目のアクション: AlphaOne フォルダーに移動して既定値を設定する
最後に、別のユーザーがフォルダー AlphaOne に移動して、既定値 "X" を設定します。
表 3. フォルダーに対するメタデータ値の設定の影響: 3 番目のアクション
このフォルダーにアイテムを追加すると... |
TheOnlyColumn の既定値... |
---|---|
DocLib (ルート) |
空白 |
Alpha |
Y |
AlphaOne |
X |
AlphaTwo |
Y |
Beta |
Z |
BetaOne |
Z |
AlphaTwo フォルダーの値は、まだ "Y" です。AlphaOne フォルダーに対する変更は、AlphaTwo に影響しません。これは AlphaTwo が AlphaOne フォルダーの子ではないためです。
場所に基づくメタデータの既定値のプログラミング
場所に基づくメタデータの既定値のオブジェクト モデルは、主に MetadataDefaults 型にあります。これには、場所に基づくメタデータの既定値の適用、String オブジェクトおよび SPFolder オブジェクトでの既定のメタデータの取得、設定、削除、さらにフィールドの既定値の取得に使用できるメソッドが含まれています。MetadataDefaults に関する管理された参照ドキュメントには、この機能を示すコード スニペットが含まれています。