Oracle ADFアプリケーション・モジュールは、特定のアプリケーション・タスクを表すビジネス・コンポーネントです。アプリケーション・モジュールは、タスクに必要なビュー・オブジェクト・インスタンスおよびビュー・リンク・インスタンスを集約することによって、そのタスクのデータ・モデルを提供します。また、クライアントのタスクの実行に役立つサービスも提供します。たとえば、アプリケーション・モジュールは次のようなタスクを表し、支援できます。
アプリケーション・モジュールの定義方法は、「データ・モデルの作成」を参照してください。
アプリケーション・モジュールには、ビュー・オブジェクト・インスタンス間の関連を指定するビュー・リンク・インスタンスの他、クライアントが必要とするデータを取得するビュー・オブジェクト・インスタンスも含まれます。ビュー・オブジェクト・インスタンスおよびビュー・リンク・インスタンスは、アプリケーション・モジュールのデータ・モデルと呼ばれるツリーで表されます。
たとえば、次のビジネス・コンポーネント定義があるとします。
CustomersView
: 次の問合せを含むビュー・オブジェクト定義です。
SELECT * FROM CUSTOMERS
OrdersView
: 次の問合せを含むビュー・オブジェクト定義です。
SELECT * FROM ORDERS
CustOrdLink
: CustomersView
とOrdersView
をリンクするビュー・リンク定義です。リンク元属性としてCustomersView
のCustomerId
とパラメータ付きのWHERE
句を持ちます。
WHERE :1 = ORDERS.CUSTOMER_ID
この場合、次のデータ・モデルを使用して、アプリケーション・モジュールのFindOrdersForCustomerModule
を定義できます。
このデータ・モデルでは、AllCustomers
はCustomersView
のインスタンス、CustomerOrders
はOrdersView
のインスタンス、CustOrdLink1
はCustOrdLink
のインスタンスです。AllCustomers
の特定の行(たとえば、Customer 101)が選択されると、CustomerOrders
の行セットは、その問合せの結果に制限されます。
SELECT * FROM ORDERS
WHERE 101 = ORDERS.CUSTOMER_ID
したがって、Customer 101の注文のみがCustomerOrders
から参照できます。
また、次のデータ・モデルを使用して、アプリケーション・モジュールのShowOrdersAndCustomersModuleを定義できます。
このデータ・モデルでは、AllCustomers
はCustomersView
のインスタンス、AllOrders
はOrdersView
のインスタンスです。AllCustomers
およびAllOrders
からの行の選択は独立しているため、CustomersView
およびOrdersView
のすべての行は、常に参照できます。
詳細は、関連項目のトピックを参照してください。
一般に、次の区別をすることが重要です。
アプリケーション・モジュール定義はJDeveloperのツールを使用して作成します。これにより、クライアントはアプリケーション・モジュールのインスタンスを作成してデータにアクセスできます。また、アプリケーション・モジュール・インスタンスを別のアプリケーション・モジュール定義に追加できます。アプリケーション・モジュールのネストと呼ばれるこのプロセスは、小さいタスク(小さいアプリケーション・モジュール定義で表される)をより大きいタスク(小さいアプリケーション・モジュールのインスタンスを含むアプリケーション・モジュール定義で表される)の一部として再利用できるようにします。詳細は、関連項目のトピックを参照してください。
アプリケーション・モジュールはデータ・モデル・コンポーネントです。そのため、定義時にクライアントのデータ・ニーズを考慮する必要があります。アプリケーション・モジュールを設計する前に、次の項目を確認してください。
これらの確認を行うことにより、必要以上にデータを取得および保存せずに、またクライアント用のデータを関連付けるプログラムも使用せずに、アプリケーション・モジュールを効率的に設計できます。
アプリケーション・モジュールには、データに対して複雑な操作を実行するサービス・メソッドも格納できます。これらのメソッドはクライアントからコールできますが、クライアント自体のデータ操作処理はほとんど必要ありません。詳細は、関連項目のトピックを参照してください。
通常、1つのアプリケーション・モジュール・インスタンスは単一のデータベース・トランザクションを所有しています。そのインスタンスを通じて加えられたすべての変更は、単一のトランザクションで実行され、いつでもロールバックまたはコミットできます。
次の2つの場合は、アプリケーション・モジュール・インスタンスはデータベース・トランザクションを所有しません。
トランザクション操作の詳細は、関連項目のトピックを参照してください。
個々のアプリケーション・モジュールは、ほとんどのビジネス・コンポーネントと同様に、部分的にXMLファイルで定義されます。これらのファイルでは、そのアプリケーション・モジュール定義に対するデータ・モデルおよびネストされたアプリケーション・モジュール・インスタンスが指定されます。
あるXMLファイルが特定のアプリケーション・モジュールのニーズを満たす場合、クラスの拡張またはJavaコードの記述は必要ありません。
アプリケーション・モジュールは、XMLファイルの他に、オプションでJavaクラスのアプリケーション・モジュール・クラスによって定義されます。このクラスには、そのアプリケーション・モジュールに必要な任意のサービス・メソッドまたは拡張コードが含まれます。
ビジネス・コンポーネントについて
Oracle ADF Business Domain Components、データ・モデル・コンポーネントおよび構成コンポーネントについて
ビュー・オブジェクトについて
ビュー・リンクについて
ビュー・オブジェクト・インスタンスおよびビュー・リンク・インスタンスについて
データ・モデルへのビュー・オブジェクト・インスタンスの追加
アプリケーション・モジュールのネスト
クライアントからのデータ・アクセス
ビジネス・コンポーネントのサービス・メソッドについて
トランザクションの管理
コンテナ管理トランザクションおよびBean管理トランザクションについて
Copyright © 1997, 2004, Oracle. All rights reserved.