アダプターは、RetrieveAll 操作を使用してデータベースから
ビジネス・オブジェクトの配列を検索します。処理は、RetrieveAll 操作が
データベース表ビジネス・オブジェクトとユーザー指定 SQL ビジネス・オブジェクトの
いずれを対象としているかに応じて異なります。
データベース表ビジネス・オブジェクトの場合
着信ビジネス・オブジェクト内に
取り込まれているすべてのキー属性および非キー属性によって、
選択基準が決まります。選択した属性によっては、アダプターは、
データベースから最上位ビジネス・オブジェクトの複数の行を
検索する場合もあります。着信ビジネス・オブジェクト内に属性が
取り込まれていない場合は、データベース内のそれぞれのテーブルから
すべての行が検索されます。
アダプターは次のステップを実行して
ビジネス・オブジェクトの配列を検索します。
- データベースから検索された行ごとに、アダプターは最上位ビジネス・
グラフを構成し、検索された行をすべて使用してビジネス・グラフのコンテナーを
作成します。コンテナー・ビジネス・オブジェクトの
名前は BOName + ContainerBG です。
- アダプターは、Retrieve 操作を使用してコンテナー内の
各ビジネス・グラフを取得します。
図 1. RetrieveAll 操作で戻されるビジネス・オブジェクトの構造
RetrieveAll 操作によって、
次のエラーが発生する可能性があります。
ユーザー指定 SQL ビジネス・オブジェクトの場合
ユーザー指定 SQL ステートメントに対して作成されたビジネス・オブジェクトも RetrieveAll 操作を
サポートします。エンタープライズ・サービス・ディスカバリー (ESD) ウィザードが
ユーザー指定 SQL ステートメントに対するクエリー・ビジネス・オブジェクトを生成すると、
アダプターは SQL SELECT ステートメントを実行し、下図に示す構造で
データベースにデータを返します。
図 2. ユーザー指定 SQL ビジネス・オブジェクト
ESD によってユーザー指定 SELECT ステートメントに生成されたクエリー・ビジネス・オブジェクトを
処理するために、アダプターは以下のように動作します。
- クエリー・ビジネス・オブジェクトから SELECT SQL ステートメントを取得します。
- クエリー・ビジネス・オブジェクトで動的 where 文節が指定されているかどうかを
検査します。
- 動的 where 文節がある場合、アダプターは、SELECT ステートメントの
デフォルト where 文節をその動的 where 文節で置換します。
- 動的 where 文節がない場合、アダプターは、SELECT ステートメントの
パラメーターをクエリー・ビジネス・オブジェクトで指定された
対応する値で置換します。
- SELECT ステートメントを実行します。
- 返された結果セットを取得し、クエリー・ビジネス・オブジェクト値に
データベースから返されたデータを設定し、前記の図に示した構造の
コンテナー・ビジネス・オブジェクトを作成します。
- クエリー・ビジネス・オブジェクトに子ビジネス・オブジェクトが
定義されているかどうかに応じて、コンテナー内の各最上位クエリー・ビジネス・オブジェクトの
下降検索を実行します。
注: クエリー・ビジネス・オブジェクトを最上位ビジネス・オブジェクト以外に
することはできません。クエリー・ビジネス・オブジェクトが子クエリー・ビジネス・オブジェクトを持つことはできません。