Business Data Connectivity Service によってサポートされるフィルターの種類

最終更新日: 2010年7月16日

適用対象: SharePoint Server 2010

フィルターは、Business Data Connectivity (BDC) service がユーザー入力 (またはシステム入力) を取り込み、バックエンド API 呼び出しにその入力を提供するために使用する基本的な方法です。フィルターは、一連の複雑なパラメーターのどの場所にフィルター値を挿入するかを記述します。これを行うために、メソッド定義の入力または戻り値パラメーターが "タグ付け" され、挿入を行う必要のある位置としてフラグ設定されます。バックエンド API 呼び出しにはフィルター機能が備えられている必要があります。フィルターは、ユーザーに対してこの機能の表面を仕上げるメカニズムを形成しているだけです。

外部システムはさまざまなフィルタリング メカニズムを提供します。BDC には、データ ソースに関係なく同じフィルタリング セマンティクスをユーザーに提供できるように一般的なパターンがまとめられています。BDC には、いくつかのフィルターとフィルタリング パターンが用意されています。Comparison のようなユーザー フィルターは、ユーザーが上書きできる入力を宣言します。UserContextUserProfile などのシステム フィルターを使用すると、BDC でユーザー トークンなどの値を安全に設定できます。詳細については、表 1 を参照してください。クライアントは、メタデータ リポジトリのクエリを実行して、システムがサポートしているフィルターを特定し、それに応じてユーザー インターフェイスを表示します。

重要重要

ユーザー名をユーザー制御可能フィルターとして使用して機密性の高い個人データを返すメタデータをメタデータ作成者が作成すると、あるユーザーに他のユーザーのデータが表示される可能性があります。これを防ぐために、UserContextFilter を使用してユーザー名をメソッド呼び出しに渡します。

表 1 で、BDC がサポートするフィルターについて説明します。

表 1. フィルター値

フィルターの種類

説明

ActivityId

システム フィルター

外部システムの操作を呼び出すときに使用されます。入力パラメーターとして渡される値は、呼び出している操作のコンテキスト ID を表す必要があります。Business Connectivity Services は、現在の操作コンテキストを表す GUID を ActivityId フィルターに関連付けられている入力パラメーターの値として設定します。

Batching

ユーザー フィルター

外部システムのクエリを実行するときに使用されます。その値は、外部システムから取得されたフィルターの最後の値に、任意のクライアント アプリケーションで自動的に設定できます。その後、外部システムは、この値を使用して、アイテムまたは変更の列挙を再開できます。

BatchingTermination

ユーザー フィルター

外部システムのクエリを実行するときに使用されます。外部システムから返される値は、残りのデータを取得するために追加の呼び出しが必要かどうかを示します。

Comparison

ユーザー フィルター

外部システムのクエリを実行するときに使用されます。外部システムは、ComparisonFilter の値と、一連の EntityInstances の特定のフィールドの値を比較し、フィールドの値が比較テストに合格した EntityInstances のみを返すことができます。

Input

ユーザー フィルター

外部システムの操作を呼び出すときに使用されます。外部システムは、InputFilter の値を操作に対する追加引数として使用できます。

InputOutput

ユーザー フィルター

外部システムの操作を呼び出すときに使用されます。外部システムは、InputOutputFilter の値を操作に対する追加引数として使用し、ReturnTypeDescriptor では取得できない、操作の他の結果を InputOutputFilter の値として取得できます。

LastId

ユーザー フィルター

外部システムのクエリを実行するときに使用されます。その値は、複数のチャンクにデータを返すファインダー内で外部システムから読み取られた最後のアイテムの識別子値に、任意のクライアント アプリケーションで自動的に設定できます。その後、外部システムは、この値を使用して次のアイテム以降の残りのアイテムを返すことができます。

Limit

ユーザー フィルター

外部システムのクエリを実行するときに使用されます。その値は、それが属するメソッドが呼び出されたときに返される外部アイテム (EntityInstances) の数に対する制限として解釈できます。

Output

ユーザー フィルター

外部システムの操作を呼び出すときに使用されます。ReturnTypeDescriptor では取得できない、操作の他の結果を、InputOutputFilter の値として取得できます。

PageNumber

ユーザー フィルター

外部システムのクエリを実行するときに使用されます。その値は、複数ページの結果に対して外部システムが返す必要のある、ページの 0 から始まるインデックスを表します。

Password

システム フィルター

外部システムの操作を呼び出すときに使用されます。入力パラメーターとして渡される値は、Secure Store に格納されているパスワードを表す必要があります。Business Connectivity Services は、外部システム インスタンス (LobSystemInstance) の SecondarySsoApplicationId プロパティと SsoProviderImplementation プロパティにマッピングする資格情報を取得します。その資格情報から取得したパスワードを、Password フィルターに関連付けられている入力パラメーターの値として使用します。

注意

SecondarySSOApplicationId は、SSOApplicationId とは異なります。SecondarySSOApplicationId は、UserName フィルターと Password フィルターで使用されます。詳細については、「BDC カスタム プロパティ」および「LobSystemInstances の LobSystemInstance 要素 (BDCMetadata スキーマ)」を参照してください。

SSOTicket

システム フィルター

外部システムの操作を呼び出すときに使用されます。入力パラメーターとして渡される値は、Secure Store に格納されているユーザーのサインオン チケットを表す必要があります。対象のサービスまたはアプリケーションは、このチケットを使用してユーザー資格情報を取得できます。Secure Store では、外部システム インスタンスに指定されている SSOProviderImplementation プロパティを使用し、このプロバイダーに SSOTicket を発行するように要求します。この SSOTicket は、SSOTicket フィルターに関連付けられている入力パラメーターとして渡されます。

Timestamp

ユーザー フィルター

外部システムの操作を呼び出すときに使用されます。その値は、クライアントがこの関数を最後に呼び出した時間を表します。その後、外部システムは、この値を使用して、指定された時間以降の変更をレポートできます。

UserContext

システム フィルター

外部システムの操作を呼び出すときに使用されます。入力パラメーターとして渡される値は、ユーザー コンテキストを表す必要があります。この場合、Business Connectivity Services は、フィルター (FilterDescriptor) の UserContextType プロパティを使用して、入力パラメーターで設定する値を見つけます。

指定されている UserContextType が MachineId の場合、入力パラメーターに渡される値は、コンピューターのオペレーティング システム インストールの一意 ID です。

指定されている UserContextType が QualifiedUserName の場合、入力パラメーターに渡される値は、次のどちらかの値です。

  • ユーザーのログイン モードが Windows クラシックの場合、値はユーザーの Windows ログオン名です。このログオン名は、ドメイン名とユーザー名 (たとえば、ドメイン名/ユーザー名) を含んでいます。

  • ユーザーのログイン モードがクレーム ベースの場合、渡される値は、ユーザーを識別する一意の値 (たとえば、メンバーシップ: ユーザー名、ユーザー名@provider.com) です。

UserCulture

システム フィルター

外部システムの操作を呼び出すときに使用されます。入力パラメーターとして渡される値は、操作を呼び出しているユーザー環境のカルチャを表す必要があります。Business Connectivity Services は、フィルターの Format プロパティを使用して、入力パラメーターで設定する値を見つけます。

  • Format プロパティの値が RFC1766 の場合、入力パラメーターに渡される値は、カルチャの名前です。詳細については、「CultureInfo.Name」を参照してください。

  • Format プロパティの値が TwoLetterISO の場合、入力パラメーターに渡される値は、カルチャを表す 2 文字の ISO 言語名です。詳細については、「CultureInfo.TwoLetterISOLanguageName」を参照してください。

  • Format プロパティの値が ThreeLetterISO の場合、入力パラメーターに渡される値は、カルチャを表す 3 文字の ISO 言語名です。詳細については、「CultureInfo.ThreeLetterISOLanguageName」を参照してください。

  • Format プロパティの値が ThreeLetterWindows の場合、入力パラメーターに渡される値は、カルチャを表す 3 文字の Windows 言語名です。詳細については、「CultureInfo.ThreeLetterWindowsLanguageName」を参照してください。

  • Format プロパティの値が LCID の場合、入力パラメーターに渡される値は、カルチャの LCID です。詳細については、「CultureInfo.LCID」を参照してください。

UserName

システム フィルター

外部システムの操作を呼び出すときに使用されます。入力パラメーターとして渡される値は、Secure Store に格納されているユーザー名を表す必要があります。Business Connectivity Services は、外部システム インスタンスの SecondarySsoApplicationId プロパティと SsoProviderImplementation プロパティにマッピングする資格情報を取得します。その資格情報から取得したユーザー名を、UserName システム フィルターに関連付けられている入力パラメーターの値として使用します。

注意

SecondarySSOApplicationId は、SSOApplicationId とは異なります。SecondarySSOApplicationId は、UserName フィルターと Password フィルターで使用されます。詳細については、「BDC カスタム プロパティ」および「LobSystemInstances の LobSystemInstance 要素 (BDCMetadata スキーマ)」を参照してください。

UserProfile

システム フィルター

外部システムの操作を呼び出すときに使用されます。入力パラメーターとして渡される値は、現在のユーザーのプロファイルのプロパティである必要があります。Business Connectivity Services は、フィルターに指定されている UserProfileProvider プロパティと UserProfilePropertyName プロパティを使用して、入力パラメーターで設定する値を見つけます。UserProfileProvider は、現在のユーザーのプロファイルを取得するために使用されます。UserProfilePropertyName には、値が入力パラメーターに渡される必要があるユーザー プロファイルのプロパティ名が格納されています。

Wildcard

ユーザー フィルター

外部システムのクエリを実行するときに使用されます。その値は、通常の文字とワイルドカード文字のパターンを表し、そのパターンは一連の EntityInstances の特定のフィールドの値と照合されます。外部システムは、指定されたパターンにフィールドの値が一致する EntityInstances のみを返します。