手順 5 (省略可能): IDEnumerator メソッドを定義してビジネス データの検索を有効にする
ビジネス データ検索を有効にするには、メタデータ内で SpecificFinder と、IDEnumerator という名前の特別な種類の MethodInstance メソッドを定義する必要があります。手順 2. で Product エンティティの SpecificFinder メソッドを定義済みなので、この手順で定義する必要があるのは IDEnumerator メソッドだけです。IDEnumerator メソッドは、1 つのエンティティについて、検索可能な ID (一意のキー) のリストを返します。このリストにより、IDEnumerator メソッドで返される ID を持つエンティティのインデックス処理が可能になります。
注意
増分クロールが必要な場合は、エンティティの IDEnumerator の戻り値のフィールドの 1 つが、LOB アプリケーションでエンティティ インスタンス (またはデータベース用語では行) が最後に更新された時刻を表すことを確認する必要があります。その後で、最終更新日を表す IDEnumerator の戻り値にある TypeDescriptor の名前を持つエンティティの __BdcLastModifiedTimestamp プロパティを設定する必要があります。
エンティティには 0 個または 1 個の IDEnumerator があります。IDEnumerator の定義は、Finder メソッドとまったく同じですが、ゼロ フィルタがあり、ID フィールドのみ、または ID フィールドと LastModifiedDate フィールドのみを返す点が異なります。
次の例では、IDEnumerator を定義し、AdventureWorks2000 データベース内で製品のインデックスを作成して検索する方法を示します。
注意
この例では、データのストリーミングをサポートする Microsoft SQL Server 2000 データベースを使用しています。Web サービスやストリーミングを使わない他のバックエンド アプリケーションのパフォーマンスを向上させるには、次のように IDEnumerator メソッドで LastIdSeen フィルタを使用する必要があります。
SELECT TOP 100 Id FROM Customers WHERE Id>=@LastIdSeen
ORDER BY Id
前提条件
または
または
IDEnumerator を定義してインデックス処理と検索を有効にするには
手順 2. ~ 4. で使用した AdventureWorks2000.XML ファイルを開きます。
Product Entity XML 内で、IDEnumerator メソッド用の次の XML を、GetProducts メソッドの定義の後に追加します。
<Method Name="ProductIDEnumerator"> <!-- Method for enabling business data search. The method returns a list of IDs. Business Data Catalog will use the SpecificFinder method on each of these IDs when indexing the prodocuts.--> <Properties> <Property Name="RdbCommandText" Type="System.String">SELECT ProductID FROM Product WHERE ProductID > 1200 AND ProductID < 1300</Property> <Property Name="RdbCommandType" Type="System.String">Text</Property> </Properties> <Parameters> <Parameter Name="ProductIDs" Direction="Return"> <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Products"> <TypeDescriptors> <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Product"> <TypeDescriptors> <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductID" Name="ProductID"> <LocalizedDisplayNames> <LocalizedDisplayName LCID="1033">ID</LocalizedDisplayName> </LocalizedDisplayNames> </TypeDescriptor> </TypeDescriptors> </TypeDescriptor> </TypeDescriptors> </TypeDescriptor> </Parameter> </Parameters> <MethodInstances> <MethodInstance Name="ProductIDEnumeratorInstance" Type="IdEnumerator" ReturnParameterName="ProductIDs" /> </MethodInstances> </Method>
XML ファイルを保存します。
アプリケーション定義を再び追加する前に、手順 1. で作成した AdventureWorksSample アプリケーションをビジネス データ カタログから削除する必要があります。AdventureWorksSample を削除するには、次の手順に従います。
SharePoint 3.0 Central Administration を開きます。
左のナビゲーション ウィンドウで、共有サービス プロバイダ (SSP) の名前をクリックします。.
[Business Data Catalog ] セクションで、[View Applications] をクリックして、登録されたアプリケーションをクリックします。
[AdventureWorksSample] をクリックして、[アプリケーションの表示 : AdventureWorksSample] ページを開きます。
最後に、[Application Settings] セクションで、[Delete Application] をクリックします。
ビジネス データ カタログにアプリケーション定義を追加します。詳細については、「[方法] アプリケーション定義をビジネス データ カタログに追加する」を参照してください。
このウォークスルーを完了したら、AdventureWorks2000 サンプル データベースのコンテンツを検索クエリで使用できるようになります。ビジネス データ コンテンツに対してクエリを実行するには、次に、検索ユーザー インターフェイスをカスタマイズするか、またはカスタム検索アプリケーションを作成する必要があります。
これらの手順を実行する方法については、以下を参照してください。
[ウォークスルー] 検索センターにタブおよびエンタープライズ検索 Web パーツを使うカスタム検索ページを追加する
[ウォークスルー] AdventureWorks ビジネス データ アプリケーション サンプル用の ASP.NET Web パーツを作成する
Next Steps
See Also
タスク
AdventureWorks SQL Server 2000 のサンプル