手順 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

前提条件

手順 2 : エンティティ、メソッド、およびフィルタの定義

または

手順 3 (省略可能): アクションの定義

または

手順 4 (省略可能) : 関連付けを定義する

IDEnumerator を定義してインデックス処理と検索を有効にするには

  1. 手順 2. ~ 4. で使用した AdventureWorks2000.XML ファイルを開きます。

  2. 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 &gt; 1200 AND ProductID &lt; 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>
    
  3. XML ファイルを保存します。

  4. アプリケーション定義を再び追加する前に、手順 1. で作成した AdventureWorksSample アプリケーションをビジネス データ カタログから削除する必要があります。AdventureWorksSample を削除するには、次の手順に従います。

    1. SharePoint 3.0 Central Administration を開きます。

    2. 左のナビゲーション ウィンドウで、共有サービス プロバイダ (SSP) の名前をクリックします。.

    3. [Business Data Catalog ] セクションで、[View Applications] をクリックして、登録されたアプリケーションをクリックします。

    4. [AdventureWorksSample] をクリックして、[アプリケーションの表示 : AdventureWorksSample] ページを開きます。

    5. 最後に、[Application Settings] セクションで、[Delete Application] をクリックします。

  5. ビジネス データ カタログにアプリケーション定義を追加します。詳細については、「[方法] アプリケーション定義をビジネス データ カタログに追加する」を参照してください。

  6. コンテンツ ソースを追加します

  7. クロールされたプロパティをマップします

  8. 検索範囲を作成します

このウォークスルーを完了したら、AdventureWorks2000 サンプル データベースのコンテンツを検索クエリで使用できるようになります。ビジネス データ コンテンツに対してクエリを実行するには、次に、検索ユーザー インターフェイスをカスタマイズするか、またはカスタム検索アプリケーションを作成する必要があります。

これらの手順を実行する方法については、以下を参照してください。

[ウォークスルー] 検索センターにタブおよびエンタープライズ検索 Web パーツを使うカスタム検索ページを追加する

[ウォークスルー] AdventureWorks ビジネス データ アプリケーション サンプル用の ASP.NET Web パーツを作成する

Next Steps

手順 6 (省略可能) : アクセス許可を指定する

See Also

タスク

AdventureWorks SQL Server 2000 のサンプル

概念

ビジネス データ カタログ : メタデータ モデル