手順 2 : エンティティ、メソッド、およびフィルタの定義
ビジネス データ カタログに登録されている基幹業務 (LOB) アプリケーションは、エンティティ、エンティティに対して実行できるメソッド、およびエンド ユーザーのフィルタを可能にするためのフィルタを定義します。エンティティは、Customer や Product など、LOB アプリケーション内のビジネス オブジェクトです。メソッドはエンティティに関連する操作であり、フィルタはメソッドから返されるエンティティ インスタンスを限定するのに利用できます。
ビジネス データ カタログでは、エンティティは単一の LOB システムに属し、一意の名前を持つ必要があります。エンティティには識別子、メソッド、フィルタ、およびアクションが含まれます。
この手順では、AdventureWorks2000 データベースに Products というエンティティを定義し、製品のリストを取得するための GetProducts というメソッドを定義します。また、ID、Name、および ProductNumber フィールド上でエンド ユーザーのフィルタを可能にするために、ワイルドカードおよび比較フィルタも追加します。
前提条件
手順 1 : AdventureWorks2000 データベースに接続する
エンティティ、メソッド、およびフィルタを定義するには
手順 1. の AdventureWorks2000.XML メタデータ XML ファイルを開きます。
以下の XML を挿入して、そのファイルの <!--Insert Entity XML Here --> セクションを置き換えます。
<Entity EstimatedInstanceCount="10000" Name="Product"> <!-- EstimatedInstanceCount is an optional attribute--> <Properties> <Property Name="Title" Type="System.String">Name</Property> </Properties> <Identifiers> <Identifier Name="ProductID" TypeName="System.Int32" /> </Identifiers> <Methods> <!-- Defines a method that brings back Product data from the back-end database.--> <Method Name="GetProducts"> <Properties> <Property Name="RdbCommandText" Type="System.String"> SELECT ProductID, Name, ProductNumber, ListPrice FROM Product WHERE (ProductID >= @MinProductID) AND (ProductID <= @MaxProductID) AND (Name LIKE @Name) AND (ProductNumber LIKE @ProductNumber) </Property> <Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property> <!-- For database systems, can be Text, StoredProcedure, or TableDirect. --> </Properties> <FilterDescriptors> <!-- Define the filters supported by the back-end method (or sql query) here. --> <FilterDescriptor Type="Comparison" Name="ID" > <Properties> <Property Name="Comparator" Type="System.String">Equals</Property> </Properties> </FilterDescriptor> <FilterDescriptor Type="Wildcard" Name="Name"> <Properties> <Property Name="UsedForDisambiguation" Type="System.Boolean">true</Property> </Properties> </FilterDescriptor> <FilterDescriptor Type="Wildcard" Name="ProductNumber" /> </FilterDescriptors> <Parameters> <Parameter Direction="In" Name="@MinProductID"> <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductID" AssociatedFilter="ID" Name="MinProductID"> <DefaultValues> <DefaultValue MethodInstanceName="ProductFinderInstance" Type="System.Int32">0</DefaultValue> </DefaultValues> </TypeDescriptor> </Parameter> <Parameter Direction="In" Name="@MaxProductID"> <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductID" AssociatedFilter="ID" Name="MaxProductID"> <DefaultValues> <DefaultValue MethodInstanceName="ProductFinderInstance" Type="System.Int32">99999999</DefaultValue> </DefaultValues> </TypeDescriptor> </Parameter> <Parameter Direction="In" Name="@Name"> <TypeDescriptor TypeName="System.String" AssociatedFilter="Name" Name="Name"> <DefaultValues> <DefaultValue MethodInstanceName="ProductFinderInstance" Type="System.String">%</DefaultValue> <DefaultValue MethodInstanceName="ProductSpecificFinderInstance" Type="System.String">%</DefaultValue> </DefaultValues> </TypeDescriptor> </Parameter> <Parameter Direction="In" Name="@ProductNumber"> <TypeDescriptor TypeName="System.String" AssociatedFilter="ProductNumber" Name="ProductNumber"> <DefaultValues> <DefaultValue MethodInstanceName="ProductFinderInstance" Type="System.String">%</DefaultValue> <DefaultValue MethodInstanceName="ProductSpecificFinderInstance" Type="System.String">%</DefaultValue> </DefaultValues> </TypeDescriptor> </Parameter> <Parameter Direction="Return" Name="Products"> <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="ProductDataReader"> <TypeDescriptors> <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="ProductDataRecord"> <TypeDescriptors> <TypeDescriptor TypeName="System.Int32" IdentifierName="ProductID" Name="ProductID"> <LocalizedDisplayNames> <LocalizedDisplayName LCID="1033">ID</LocalizedDisplayName> </LocalizedDisplayNames> </TypeDescriptor> <TypeDescriptor TypeName="System.String" Name="Name" > <!-- Do not use the AssociatedFilter attribute in return parameters.--> <LocalizedDisplayNames> <LocalizedDisplayName LCID="1033">Name</LocalizedDisplayName> </LocalizedDisplayNames> <Properties> <Property Name="DisplayByDefault" Type="System.Boolean">true</Property> </Properties> </TypeDescriptor> <TypeDescriptor TypeName="System.String" Name="ProductNumber"> <LocalizedDisplayNames> <LocalizedDisplayName LCID="1033">Product Number</LocalizedDisplayName> </LocalizedDisplayNames> <Properties> <Property Name="DisplayByDefault" Type="System.Boolean">true</Property> </Properties> </TypeDescriptor> <TypeDescriptor TypeName="System.Decimal" Name="ListPrice"> <LocalizedDisplayNames> <LocalizedDisplayName LCID="1033">List Price</LocalizedDisplayName> </LocalizedDisplayNames> </TypeDescriptor> </TypeDescriptors> </TypeDescriptor> </TypeDescriptors> </TypeDescriptor> </Parameter> </Parameters> <MethodInstances> <MethodInstance Name="ProductFinderInstance" Type="Finder" ReturnParameterName="Products" /> <MethodInstance Name="ProductSpecificFinderInstance" Type="SpecificFinder" ReturnParameterName="Products" /> </MethodInstances> </Method> </Methods> <!-- Enter your Action XML here --> </Entity>
XML ファイルを保存します。
ビジネス データ カタログにアプリケーション定義を追加します。詳細については、「[方法] アプリケーション定義をビジネス データ カタログに追加する」を参照してください。
ビジネス データ リスト Web パーツ、詳細 Web パーツ、Type、Product、またはこれらを任意に組み合わせたビジネス データ列を作成して、メタデータをテストします。詳細については、「メタデータをテストする」を参照してください。
Next Steps
See Also
タスク
AdventureWorks SQL Server 2000 のサンプル