ADF Business Componentsを使用したビジネス・サービスの開発

このチュートリアルではアプリケーションのビジネス・サービスを作成します。ビジネス・サービス は、アプリケーションの一部であり、アプリケーション内でデータを維持し、中間層でビジネス・ルールを実装します。さまざまなテクノロジの選択肢がありま す。このチュートリアルでは、中間層のビジネス・サービスに対してOracle ADF Business Componentsを使用し、次に検証規則とビジネス・ルールをモデルに追加します。

約50分

トピック

このチュートリアルでは、以下のトピックについて説明します。

ビジネス・モデルの構築

ビジネス・ルールの実装

モデルのテスト

このアイコンの上にカーソルを置くと、このコンポーネン ト・パレットのすべてのスクリーンショットがロードし、表示されます。(警告:すべてのスクリーンショットが同時にロードされるため、ご使用のインター ネット接続によってはレスポンス・タイムが遅くなる場合があります。)

注:各手順に関連したスクリーンショットのみを表示する場合は、それぞ れの手順にあるアイコンの上にカーソルを置いてください。スクリーンショットをクリックすると、非表示になります。

概要

Javaアプリケーションを開発する場合、ADF Business Componentsを使用して基本的なデータベース表にマッピングし、データをデータベースにコミットする前のアプリケーションでデータを維持できま す。ADF Business Componentsは、エンティティ・オブジェクト、ビュー・オブジェクト、アプリケーション・モジュールで構成されています。

複数のエンティティ・オブジェクトとビュー・オブジェクトを作成して、1つのアプリケーション・モ ジュールに追加します。次に、検証規則とビジネス・ルールを実装して、モジュールが正しく機能することを確認します。

ト ピック・リストに戻る

計画しているアプリケーションでは、CUSTOMERS表およびORDERS表のデータが操作され ます。ただし、そのアプリケーションで表の列全部が表示されるわけではなく、一部のページに複数の表のデータが表示されます。データベース表から表示する 必要のあるデータを指定し、さらにモデルでビジネス・ルールを実装して、任意のユーザー・インタフェースからビジネス・ルールを実行できるようにする必要 があります。

トピック・リストに戻る

前提条件

このチュートリアルを始める前に、次のことを確認してください。

1.

Oracle JDeveloper(10.1.3.1.0)にアクセスできるか、またはインストール済みであること。この製品は、Oracle Technology Networkからダウンロードできます。

2.

Oracle Database 10gに付属のOracle Sample Schemaにアクセスできるか、またはインストール済みであること。

このチュートリアルでは、OEスキーマを使用します。特に、ページは EMPLOYEES表と連動します。

OEスキーマのインストールおよびOracle JDeveloper 10g内における接続の作成手順は、次のURLを参照してください。

http://www.oracle.com/technology/obe/obe1013jdev/common/OBEConnection.htm

3.

Oracle JDeveloperを起動すること。解凍先のルート・ディレクトリ(<jdev_home>) にあるJDeveloper実行可能ファイル(jdeveloper.exe) をダブルクリックします。

ユーザー設定の移行」ダイアログ・ボックスが開いたら、「い いえ」をクリックします。

今日のヒント」ウィンドウを閉じます。

4.

Oracle JDeveloper IDEが表示されます。

トピック・リストに戻る

ビジネス・ モデルの構築

ADF Business Componentsの作成にはさまざまな方法があります。このチュートリアルでは、いくつかの方法を組み合わせます。アプリケーションのADF Business Componentsモデル構築には、以下のタスクが必要です。

データベース接 続の作成

Java Database Connectivity(JDBC)は、Javaアプリケーションをリレーショナル・データベースに接続するために使用される、標準的な Application Program Interface(API)です。このチュートリアルで使用するOEスキーマへのJDBC接続を作成するには、以下の手順に従います。

1.

接続ナビゲータ」タブをクリックします。接続ナビゲータが表示されていない場合は、 「表示]→「接続ナビゲータ」を選択します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

2.

データベース・ノードを右クリックし、コンテキスト・メニューから「デー タベース接続の作成」を選択します。「OK」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

3.

データベース接続の作成ウィザードの初期画面が表示されたら、「次へ」をクリックしま す

ウィザードのタイプ・ページで、名前oeconnを入力して「次へ」 をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

4.

ウィザードの認証ページで、ユーザー名oeとパスワードoeを入力します。「パスワードを配布」チェック・ボックスを選択 し、「次へ」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

5.

ウィザードの接続ページで、ホスト名localhostを入力 し、SIDをXEに変更します。「次へ」 をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

6.

接続のテスト」をクリックします。

データベースが使用可能な状態にあり、接続情報が正しい場合、ステータス・ウィンドウに成功が表示されます。

エラーが発生した場合、「戻る」をクリックして必要な変更を行った後に、再度接続をテ ストしてください。

接続に成功したら、「終了」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

7.

接続ナビゲータのデータベース接続ノードの下に、接続が表示されます。

このアイコンの上にカーソルを置くと、イメージが表示されます。

8. すべて保存Save All buttonをクリックするか、「ファイル」→「すべて保存」 を選択して作業内容を保存します。

トピックに戻る

アプリケーショ ンとプロジェクトの作成

Oracle JDeveloperでは、ファイルはアプリケーションとオブジェクトで構成されます。アプリケーションは制御構造の最上位レベルで、1つ以上のプロジェ クトで構成されます。プロジェクトは、関連するファイルを論理的にグループ化する構成となっています。プロジェクトを使用してソース・コードを編成できま す。

Oracle JDeveloperは、テンプレートを使用して、特定の処理に必要なテクノロジの選択肢のみを公開します。Webアプリケーション[JSF、ADF BC]テンプレートをアプリケーションに適用すると、Oracle JDeveloperは、2つのプロジェクト、ModelとViewControllerを作成します。

このチュートリアルに必要なアプリケーションとプロジェクトを作成するには、以下の手順に従いま す。

1.

アプリケーション・ナビゲータ」タブをクリック します。

アプリケーション・ナビゲータでアプリケーション・ ノードを右クリックし、コンテキスト・メニューから「新規アプリケーション・ワークスペース」を選択します。

2.

アプリケーション・ワークスペースの作成ダイアログで、アプリケーション名をOrderEntryに 変更します。アプリケーション名を入力すると、ディレクトリ名が自動的に変更されることに注意してください。

アプリケーション・テンプレートのドロップダウン・リストから「Web Application [JSF, ADF BC]」を選択し、「OK」をクリックします。


3.

アプリケーション・ナビゲータに、OrderEntryアプリケーションと2つのプロジェクトが表示されます。このチュー トリアルでは、Modelプロジェクトでビジネス・コンポーネントを構築します。別のチュートリアルで、ViewControllerプロジェクトを使用 して、ユーザー・インタフェースを構築します。

トピックに戻る

ADF Business Componentsの作成

ADF Business Componentsを構築する準備ができました。ビジネス・コンポーネントは、いくつかの方法で作成できますが、ここではウィザードを使用します。

ウィザードでは、次の順に作成を行います。

  • エンティティ・オブジェクト。これは、データの維持とキャッシュ、検証の実行、 ビジネス・ルールのカプセル化を行うデータ・アクセス・オブジェクトです。
  • ビュー・オブジェクト。エンティティ・オブジェクトに基づくオブジェクトで、表 示して操作する必要のあるデータを表示します(通常、ビュー・オブジェクトはクエリーと呼ばれます)。
  • アプリケーション・モジュール。特定のタスクのためにビュー・オブジェクトを調整するサービ ス・オブジェクト。これには、アプリケーションが必要とするビジネス・サービスのみが含まれます。

アプリケーションのデータ・モデルとして機能するビジネス・コンポーネントを作成する には、以下の手順に従います。

1.

OrderEntryアプリケーションでModelプロジェクトを右クリックし、コン テキスト・メニューから「新規」を選択します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

2.

新規ギャラリで、カテゴリ・リスト内のBusiness Tierを開き、ADF Business Componentsを選択して、項目リストからBusiness Components from Tablesを選択します。

OK」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

3.

Initialize Business Components Projectダイアログで、接続のドロップダウン・リストから「oeconn」を選択し、「OK」 をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

4.

Create Business Components from Tablesウィザードの初期画面が表示されたら、「次 へ」をクリックします。

ウィザードのエンティティ・オブジェクト・ページで、エンティティ・オブジェクトを作成するパッケージの名前を指定できま す。modelという名前のデフォルト・パッケージを受け入れます。

エンティティ・オブジェクトのベースにするデータベース表も指定します。「問合せ」を クリックして、使用可能な表のリストを表示します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

5.

使用可能リストで、CUSTOMERS表ORDERS表を、 [Ctrl]を押しながらクリックして、複数選択します。「追加をクリックして、それらを選択済リストに 移動します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

次へ」をクリックします。

6.

ウィザードの更新可能なビュー・オブジェクト・ページで、エンティティ・オブジェクトからデータを問い合わせるビュー・オ ブジェクトを作成できます。

パッケージは、論理的な作業をグループ化するのに便利です。ビュー・オブジェクトを独立したパッケージに配置するには、 パッケージをmodel.queriesに変更します。

すべて追加をクリックして、エンティティ・オブ ジェクトを選択済リストに移動して、「次へ」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

7.

ウィザードの読取り専用ビュー・オブジェクト・ページで、「次へ」をクリックします。 更新可能なビュー・オブジェクトのみを作成します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

8.

ウィザードのアプリケーション・モジュール・ページで、「アプリケーション・モジュール」 チェック・ボックスを選択します。

アプリケーション・モジュールを独自のパッケージに配置するには、パッケージをmodel.servicesに 変更します。

アプリケーション・モジュールに名前CustomerOrderBusinessServiceを 指定し、「次へ」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

9.

ウィザードのダイアグラム・ページで、ビジネス・コンポーネントの視覚的な表示を作成するオプションを使用できます。使用 するには、「Business Components Diagram」チェック・ボックスを選択します。

パッケージをmodelに、名前をCustomerAppBC_Diagramに設定します。

Domains」チェック・ボックスの選択を解除して、「次へ」 をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

10.

ウィザードの終了ページで、オブジェクトのリストを確認してから「終了」をクリックし ます。

このアイコンの上にカーソルを置くと、イメージが表示されます。

11.

作成が完了すると、ビジネス・コンポーネントのダイアグラムがエディタで表示されます。エディタ・ウィンドウ上部のツール を使用して、ダイアグラムの拡大表示や縮小表示、コンポーネントの配置変更ができます。また、上下左右にスクロールして、作成したオブジェクトを表示でき ます。

このアイコンの上にカーソルを置くと、イメージが表示されます。

12.

アプリケーション・ナビゲータで、作成したオブジェクトを表示することもできます。Modelプ ロジェクトとアプリケーション・ソース・ノードを開きます。3つのパッケージとビジネス・コンポーネントのダイアグラ ムが表示されます。

それぞれのパッケージを開いて、modelパッケージで作成し たエンティティ・オブジェクト、model.queriesパッケージで作成したビュー・オブ ジェクト、およびmodel.servicesパッケージで作成したアプリケーション・モ ジュールをそれぞれ表示します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

13. すべて保存Save All buttonをクリックするか、「ファイル」→「すべて保存」 を選択して作業内容を保存します。

トピックに戻る

ビジネス・コン ポーネントのカスタマイズ

ウィザードで作成したビジネス・コンポーネントは、使用するアプリケーションによっては、変更が必 要になる場合があります。この項では、デフォルトのビジネス・コンポーネントをカスタマイズします。

通常、エンティティ・オブジェクトの属性は、データベースの列に1対1でマッピングし、アプリケー ションの多くのビュー・オブジェクトで再使用されます。ただし、状況によっては、エンティティ・オブジェクトの属性を制限する必要があります。この例で は、アプリケーションに使用されないエンティティ・オブジェクトから属性を削除しますが、それにはまず、従属するビュー・オブジェクトから属性を削除する 必要があります。また、ビュー・オブジェクトから属性を削除しますが、エンティティ・オブジェクトには残します。

もう1つの変更は、顧客情報とは無関係に注文情報にアクセスできる、OrdersViewビュー・ オブジェクトのインスタンスをデータ・モデルから削除することです。計画しているアプリケーションは、注文が顧客に関連している場合にのみ注文にアクセス するので、モデルにおいて、OrdersViewの追加的なインスタンスは必要ありません。

ビジネス・コンポーネントにこれらの変更を行うには、以下の手順に従います。

1.

エンティティ・オブジェクトから属性を削除するには、まず、従属するビュー・オブジェ クトから属性を削除する必要があります。

ビジネス・コンポーネントは、さまざまな方法で編集できます。このチュートリアルで は、アプリケーション・ナビゲータとダイアグラムの両方を使用してオブジェクトを編集します。ダイアグラムのビジネス・コンポーネントは、アプリケーショ ン・ナビゲータのオブジェクトと同期化したままです。

アプリケーション・ナビゲータでCustomersViewビュー・ オブジェクトを右クリックし、コンテキスト・メニューから「CustomersViewの編集」を選択します。

2.

ビュー・オブジェクト・エディタで、左のツリーの属性ノードを選択します。

右の選択済リストでCustGeoLocationを選択し、「削除をクリッ クして選択済リストから移動します。

OK」をクリックします。


3.

ダイアグラムでCustomersエンティティ・ オブジェクトを右クリックし、コンテキスト・メニューから「プロパティ」を選択します。

4.

エンティティ・オブジェクト・エディタで、左のツリーから属性、右のエンティティ属性 パネルからCustGeoLocation属性を選択します。「削除」をクリック して属性を削除します。

OK」をクリックします。

:別の方法として、属性をダイアグラムから直接削除できます。属性だけを削除し、エ ンティティ全体を削除しないよう注意してください。

5.

前に述べたとおり、ビュー・オブジェクトはクエリーであり、エンティティ・オブジェクトのすべての属性を反映するわけでは ありません。OrdersViewビュー・オブジェクトでは、Ordersエンティティ・オブジェクトからのPromotionld属性は必要ありません が、他のアプリケーションが使用する可能性があるので、エンティティ・オブジェクトに残しておきます。

ダイアグラムでOrdersViewをダブルクリックしてビュー・オブジェクト・エ ディタを起動し、属性ノードを選択します。PromotionIdを選択し、「削 除をクリックして属性を選択済リストから移動します。

OK」をクリックします。

6.

CustomerOrdersBusinessServiceアプリケーション・モ ジュールをダブルクリックして、アプリケーション・モジュール・エディタを起動します。データ・モデル内のビュー・オブジェクト間の階層関係に注意してく ださい。

7.

アプリケーション・モジュール・エディタで、OrdersView2と呼ばれる詳細なビュー・オブジェクトが CustomersView1にあることに注意してください。この対応付けは、デフォルトで、データベース内の外部キーに基づいて作成されました。

アプリケーション・モジュールにはOrdersView1という名前の、OrdersViewの他のインスタンスも含まれ ています。このインスタンスは、注文に直接アクセスするために使用できます。ただし、計画しているアプリケーションでは顧客に関連する注文のみにアクセス します。したがって、このOrdersViewの独立したインスタンスは必要ではなく、データ・モデルから削除できます。

モデルから削除するには、OrdersView1を選択して、「イン スタンスの削除をクリックします。

OK」をクリックして、アプリケーション・モジュールを更新し、アプリケーション・ モジュール・エディタを終了します。

8.

ダイアグラムで、OrdersView1ビュー・オブジェクトのインスタンスがアプリケーション・モジュール内に表示され ていないことに注意してください。

ダイアグラムでアプリケーション・モジュールのサイズを調節するには、CustomerOrderBusinessServiceア プリケーション・モジュールを右クリックして、コンテキスト・メニューから「Optimize Shape Size」 →「Height and Width」を選択します。

9.

すべて保存Save All buttonをクリックするか、「ファイル」→「すべて保存」を選択して作業内容 を保存します。

トピックに戻る

トピック・リストに戻る

ビジネス・ルールの実装

作業中のデータベース・スキーマは、データベースの制約およびPL/SQLを使用して、データに多 数のビジネス・ルールを課しています。たとえば、顧客の信用限度は5000以下でなければなりません。ただし、この項では、ビジネス・コンポーネントを使 用して、データをデータベースにコミットする前に中間層で宣言的に検証を行います。

モデルにビジネス・ルールを追加するには、以下の手順に従います。

トピック・リストに戻る

簡単な検証規則の追加

企業のビジネス・ルールでは、顧客の絶対的な信用上限は5000に定義されています。 しかし、受注のために、顧客の信用限度を4000以上に設定してはならないと決定されました。このビジネス・ルールを受注アプリケーション内で実装しま す。

エンティティ・オブジェクト内で検証を実装するには、以下の手順に従います。

1.

アプリケーション・ナビゲータでOrderEntryModelプ ロジェクトとアプリケーション・ソースmodelパッケージを開きます。「Customers」 エンティティ・オブジェクトを右クリックし、コンテキスト・メニューから「Customersの編集」を選択します。

2.

エンティティ・オブジェクト・エディタで、ツリー制御から検証を選択します。

Declared Validation RulesリストからCreditLimitを 選択します。

新規」をクリックして、検証基準の新しいセットを追加します。


3.

規則のドロップダウン・リストを使用して、使用できる多様な規則を確認します。

この例では、バリデータの比較が必要なので、規則のドロップダウン・リストから選択し て、以下の値を設定します。

属性 CreditLimit
演算子 LessOrEqualTo
比較の対象 リテラル値
リテラル値の入力 4000
エラー・メッセージ 顧客の信用制限は4000未満でなければなりません

OK」をクリックします。

エンティティ・オブジェクト・レベルで検証規則を追加しました。この規則は、それにアクセスするすべてのビュー・オブジェ クトおよびアプリケーション・モジュールで再使用されます。

時間があれば、以下の簡単な検証規則を追加してください。

婚姻区分の値を、'既婚'または'未婚'に制限する。
性別の値を、'男性'または'女性'に制限する。

ヒント:この種類の検証には、List Validator規 則を使用します。用意されているヘルプでは、リスト項目を追加する方法についてサポートします。

次の作業のために、エンティティ・オブジェクト・エディタを開いたままにしてください。

トピックに戻る

フォーマット・マスクの定義

アクセスする方法とは無関係に、データは一貫した書式で表示される必要があります。こ の場合、信用限度は金額であり、正しい通貨記号と小数点の記号で表示される必要があります。また、生年月日は、MM/DD/YY書式で表示する必要があり ます。

信用限度および生年月日の属性にフォーマット・マスクを追加するには、以下の手順に従 います。

1.

エンティティ・オブジェクト・エディタ内でCustomersエンティティ・オブジェ クトを開き、ツリー制御で属性ノードを開きます。

開いたノードからCreditLimitを選択し、「コントロール・ ヒント」タブをクリックします。

2.

Format Typeドロップダウン・リストから「通貨」を選択します。

任意のToolTipテキストを入力します。


3.

左のツリーからDateOfBirth属性を選択して、「コントロール・ヒント」 タブをクリックします。

Format Typeドロップダウン・リストから「Simple Date」を選択 します。

Formatのドロップダウン・リストで事前定義されたフォーマット・マスクは十分ではないので、Formatフィールド に独自のフォーマット・マスクを入力します。MM/dd/yyを入力し、「適用」 をクリックして、これらの変更内容を受け入れます。

このアイコンの上にカーソルを置くと、イメージが表示されます。

:フォーマット・マスクは大文字と小文字を区別するので、示したとおり正確に 入力する必要があります。

4.

コントロール・ヒント」タブが右側でアクティブな状態において、左側のツリーの属性をクリックし、属性CustFirstNameの ラベル・テキストを更新します。ラベルNameを表示し、 属性CustLastNameのラベル・テキストを更新して、Surnameを 表示します。適用」をクリックして、これらの変更内容を受け入れます。

このアイコンの上にカーソルを置くと、イメージが表示されます。

注:このフォーマットは、エンティティ・オブジェクト・レベルで追加されました。この フォーマットは、それにアクセスするすべてのビュー・オブジェクトおよびアプリケーション・モジュールで再使用されます。

次の作業のために、エンティティ・オブジェクト・エディタを開いたままにしてください。

トピックに戻る

デフォルト値の指定

デフォルト値が自動的に移入される必要のあるフィールドもあります。この場合、新しい 顧客のCreditLimitはデフォルトで100になっています。演算子が、もちろんこれをオーバーライドできますが、Formsにおける初期値と同様 に、このアプリケーション内ではデフォルトを使用します。

エンティティ・オブジェクトにデフォルト値を追加するには、以下の手順に従います。

1.

開いた属性ノードからCreditLimitを選 択し、「エンティティ属性」タブをクリックします。

デフォルトを100に設定し、「OK」をクリック して、エンティティ・オブジェクトを更新し、エディタを閉じます。

2.

すべて保存Save All buttonをクリックして、作業内容を保存し ます。

トピックに戻る

ビュー・オブ ジェクトのプロパティの変更

上記の変更は、エンティティ・オブジェクト・レベルで行われました。ビュー・オブジェ クト・レベルでも同様の変更が行えます。

アプリケーションには、同じエンティティ・オブジェクトを使用する複数のビュー・オブ ジェクトが存在することがあります。ほとんどの場合、エンティティ・オブジェクト・レベルでプロパティを更新することは理にかなっています。たとえば、 ビュー・オブジェクトが複数の表から列を選択するクエリーであると見なす場合、インスタンスによっては、エンティティ・オブジェクト・レベルではなく、 ビュー・オブジェクト・レベルで、属性のプロパティをいくつか変更する必要があります。たとえば、値のリスト用ビュー・オブジェクトの作成や、ビュー・オ ブジェクトにorder by句を組み入れることが必要になる場合があります。この例では、この点を説明するために、ビュー・オブジェクト・レベルでの調節をいくつか行います。

ビュー・オブジェクトを変更するには、以下の手順に従います。

1.

ダイアグラムまたはアプリケーション・ナビゲータで、CustomersViewをダ ブルクリックしてビュー・オブジェクト・エディタを起動します。CustomersViewは、model.queriesパッ ケージのModelアプリケーション・ソースにあります。

ツリー制御の属性ノードを開き、CustLastnameを 選択して、「コントロール・ヒント」タブをクリックします。

2.

ラベル・テキストは空白です。これは、デフォルトのラベルが使用されているか、エンティティ・オブジェクト・レベルのラベ ル・テキスト・セットが適用されていることを意味します。

ビュー・オブジェクト(VO)がエンティティ・オブジェクト(EO)属性設定のオーバーライドを実証するために、ラベル・ テキストをVO Last Nameに変更します。その他は変更しません。


3.

問合せでORDER BY句を設定することによって、問合せを 行うオブジェクトの順序を変更します。

ツリー制御でSQL文を選択します。

Order Byの右側の「編集」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

4.

このダイアログを使用して、複雑な式を作成できます。このチュートリアルでは、1つの列を追加する必要があります。起動 時、ダイアログは非常に小さいので、詳細を表示するためにサイズを変更します。

新規Add button」をクリックして、式に新しい値を追加し ます。

Order Byダイアログで、式パレットのCustomersを開きます。

このアイコンの上にカーソルを置くと、イメージが表示されます。

5.

CUST_LAST_NAMEを選択し、「列を挿入Add button」をクリックして、それを左側の式フィールドに移動します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

6.

検証」をクリックして、列をOrder Byリストに加え、「OK」 をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

注:ビュー・オブジェクトはSQL問合せにすぎません。したがってオプティマイザ・ヒ ントを使用して調整することや、EXPLAIN PLANを表示することもできます。ツリー制御のチューニング・セクションを参照してください。

7.

OK」をクリックして、ビュー・オブジェクトの編集を終了します。

メッセージが表示され、SQL問合せの構文が正確かどうかのテストについて尋ねられた場合、「はい」 をクリックし、次に「OK」をクリックして、クエリーが有効であることを確認します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

8. すべて保存Save All buttonをクリックして、作業内容を保存し ます。

トピックに戻る

カスタム検証の追加

これまで追加した検証の大部分は、宣言的でした。Oracle JDeveloperには、宣言的に可能であるといった検証よりも、はるかに複雑な検証を定義する柔軟性があります。ADF Business Componentsを使用する場合、カスタム検証を実行する1つの方法は、エンティティ・オブジェクトまたはビュー・オブジェクトのJavaコードを増 やすことです。

顧客の電子メール・アドレスに対するカスタム検証を追加するには、以下の手順に従いま す。

1.

アプリケーション・ナビゲータでCustomersエンティティ・オブジェクトを右ク リックし、コンテキスト・メニューから「Go to Entity Object Class」を選択します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

2.

Customersエンティティ・オブジェクトのJava実装であるCustomersImpl.javaが、 エディタで開かれます。

ファイルの終わりの}(中括弧)の上に以下のメソッドを追加します。

public boolean validateEmail (String value)
{
  return (value.indexOf('@') != -1 );
}

このコードで、電子メール・アドレスに@マークが存在するかど うかを調べます。実際には、もっと複雑な検証が必要です。

属性の検証に使用するメソッドは、パブリックと定義され、同じ タイプの1つの引数を属性として受け入れ、ブール値を返す必要があります。メソッド名は、キー ワードvalidateで始まる必要があります。

このアイコンの上にカーソルを置くと、イメージが表示されます。

3.

アプリケーション・ナビゲータのCustomersをダブルクリックして、エンティ ティ・オブジェクト・エディタを起動します。

エンティティ・オブジェクト・エディタで、左のツリーから検証を選択します。

Declared Validation RulesからCustEmailを選択し て、「新規」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

4.

検証規則の追加ダイアログで、規則のドロップダウン・リストから「MethodValidator」 を選択します。

validateEmail(String value)メソッドを選択して、無効な電子メール・アドレ スなどの適切なエラー・メッセージを入力します。

OK」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

OK」をクリックして、Customersエンティティ・オブジェクトを更新しま す。

5. すべて保存Save All buttonをクリックして、作業内容を保存し ます。

トピックに戻る

トピック・リストに戻る

モデルのテ スト

Oracle JDeveloperにはBusiness Components Browserが含まれており、クライアント・コードを構築せずにビジネス・コンポーネントをテストできます。

Business Components Browserを使用して、ビジネス・モデルのために構築した機能をテストするには、以下の手順に従います。

1.

アプリケーション・ナビゲータでmodel.servicesを開きます。CustomerOrdersBusinessServiceを 右クリックして、コンテキスト・メニューから「テスト」を選択します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

2.

Oracle Business Component Browserの接続ウィンドウで接続名ドロップダウン・リストから「oeconn」を選択して、「接 続」をクリックします。

このアイコンの上にカーソルを置くと、イメージが表示されます。

3.

Business Component BrowserでCustomersView1を ダブルクリックして、実行します。

CreditLimitフィールドの上に静止して、CreditLimitフォーマット・マスクが適用され、 ToolTipが動作していることを確認します。CreditLimitフィールドは、通貨のフォーマット・マスクとともに表示されます。

デフォルト・ラベルではなく、CustFirstNameなどの変更した属性ラベルが表示され、EOレベルで定義されたも のではなく、VOラベルで姓が表示されていることも確認してください。

このアイコンの上にカーソルを置くと、イメージが表示されます。

4.

信用限度を6000に更新して、エラー・メッセージが表示されることを確認します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

OK」をクリックして、値を4000未満に戻して続行します。

5.

次へNext buttonをクリックしてレコードをスクロールし、 姓の順に顧客が返されることを確認します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

6.

作成Create buttonをクリックして、新しいレコードを作 成します。信用限度のデフォルト値が表示されます。

このアイコンの上にカーソルを置くと、イメージが表示されます。

削除Delete buttonをクリックして、挿入したレコードを 削除します。

7.

電子メール・アドレスから@マークを削除して、エラー・メッ セージが表示されることを確認します。

このアイコンの上にカーソルを置くと、イメージが表示されます。

OK」をクリックして、@マー クを元に戻して続行します。

8.

OrdersCustomerIdFkLink1ビュー・リンクをダブルクリックしま す。これによって、ビュー・リンクで結合されたCustomersView1およびOrders View2ビュー・オブジェクトが起動します。

Delete buttonをクリックして、別のウィンドウで結果 を確認します。

Specify View Criteria 」をクリックし、 CustomerId102を入力します。続いて「Find」 をクリックして注文のある顧客を表示します。開いているもう1つのビュー・オブジェクトCustomersView1に 戻ると、同じ顧客が表示されています。これは、アプリケーション・モジュールがすべてのビューを自動的に調整するからです。

.このアイコンの上にカーソルを置くと、イメージが表示されます。

テストが終わったら、Business Components Browserウィンドウを閉じてください。

トピック・リストに戻る

ウィザードを使用して、データベース内の表をベースとし、これらの表と同じ名前を持つ エンティティ・オブジェクトを作成する方法を学習しました。ウィザードにおいて、アプリケーションで使用するデータ(特定の列)を表すビュー・オブジェク トおよびビュー・オブジェクト間のマスター/ディテール関係を維持するビュー・リンクも作成しました。ウィザードは、受注タスクで使用されるビュー・オブ ジェクトとビュー・リンクを収容および調整するアプリケーション・モジュールを追加的に作成し、コンポーネントを視覚的に表現するビジネス・コンポーネン ト・ダイアグラムを作成しました。

ビジネス・コンポーネントのデフォルト動作を変更するために、エンティティ・オブジェ クトとビュー・オブジェクトのプロパティを編集し、構築したモデルをテストしました。

このチュートリアルで学習した内容は、以下のとおりです。

トピック・リストに戻る

このアイコンの上にカーソルを置くと、すべてのスクリーンショットが非表示になります。


Copyright (c) Oracle Corporation 2007 All Rights Reserved
Oracle Corporation発行の「Developing Business Services with ADF Business Components」の翻訳版です。

この文書はあくまで参考資料であり、掲載されている情報は予告なしに変更されるこ とがあります。 万一、誤植などにお気づきの場合 は、オラクル社までお知らせください。 オラクル社は本書の内容に関してい かなる保証もしません。 また、本書の内容に関連したいかな る損害についても責任を負いかねます。

Oracleはオラクル社の登録商 標です。
その他の会社名およ び製品名は、 あくまでその製品および会社を識別 する目的にのみ使用されており、 それぞれの所有者の商標または登録 商標です。