このチュートリアルでは、Oracle JDeveloper 11.1.2を使用して、タスク・フローを使用するアプリケーションのページ・フローを定義します。 データベース内の従業員のレコードを検索して更新するアプリケーションを作成します。 バインド・タスク・フロー(アプリケーションの再利用可能な部分をカプセル化する方法)と、トレインと呼ばれるUIコンポーネントを使用して、3ステップのプロセスを実装します。 最初に検索機能を実装し、次にユーザーをいくつかの検索結果にナビゲートし、結果の中から1人の従業員を選択できるようにします。 従業員が選択されたらOracle ADF Formと呼ばれるUIを表示し、従業員のレコードを編集できるようにします。 続いて、変更またはキャンセルを送信できる機能を追加し、データベースへの変更がバック・エンドでコミットまたはロールバックされるようにします。 最後に、パスワードを検証するためのルーターを使用して、簡単なログイン・シナリオを実装します。
詳細を表示/非表示詳細表示
目的 所要時間 アプリケーション
Oracle ADFタスク・フローを使用してユーザー・インタフェースを開発する方法を説明します。 ページの順序とルーティング、アプリケーションのセキュリティを定義します。 これから作成するアプリケーションの完成版を確認するには、「Download」ボタンをクリックして最終版のアプリケーションのzipファイルをダウンロードし、Oracle JDeveloperのmyworkフォルダに解凍してください。 2~2.5時間 taskflow.zipのダウンロード
ステップ1: 新規Fusionアプリケーションとビジネス・コンポーネントの作成

Oracle JDeveloperで作業する場合、アプリケーション内のプロジェクトとして作業を整理します。 Oracle JDeveloperには、アプリケーションおよびプロジェクトの作成に利用できるいくつかのテンプレートが提供されています。 テンプレートは、さまざまな種類のアプリケーションを開発するうえで必要となる基本的なテクノロジーに基づいて事前設定されており、ニーズに適したテンプレートを選択することで作業環境を構築できます。 その後で、設定を行って、使用する予定のその他のテクノロジーを追加できます。

最初の項では、Fusionテクノロジーを使用して新規アプリケーションを作成し、データベースにアクセスする再利用可能なビジネス・コンポーネントを構築します。 アプリケーションおよびモデル・コンポーネントを作成するには、以下のステップを実行します。

  1. アプリケーション・ナビゲータで、「New Application」をクリックします。 または、メニュー・オプションの「File」→「New」を選択して、新規アプリケーションを作成します。

    ナビゲータのNew Application
  2. New Galleryで、「Fusion Web Application (ADF)」オプションを選択します。 このオプションを選択すると、データ・バインドされたOracle ADF Webアプリケーションが作成されます。 アプリケーションは2つのプロジェクトで構成されます。1つはデータ・モデル(Oracle ADF Business Components)用で、もう1つはビュー・コントローラ・コンポーネント(Oracle ADF FacesおよびOracle ADFタスク・フロー)用です。

    New Gallery - Fusion Web Applicationが選択されている状態
  3. Create Fusion Web Applicationダイアログ・ボックスで、Application NameをTaskFlowと指定します。 新しいアプリケーション名を入力すると、それに合わせてディレクトリが変更されます。 他の場所にファイルを作成したい場合は、パスのC:\JDeveloper\myworkの部分を変更できます。

    Application Package Prefixフィールドの値をdemoに設定します。 Application Templateで「Fusion Web Application (ADF)」テンプレートを選択して、「Finish」をクリックします。

    アプリケーション名


    Overviewペインに、Fusion Web Application開発の手引きとして参照できるChecklistが表示されます。

    Fusion Webアプリケーションを作成するときは、Checklistがデフォルトで表示されます。

    Overviewページ

  4. アプリケーション・ナビゲータに2つの新しいプロジェクトが表示されます。 デフォルトのネーミング規則により、プロジェクトの1つはModel、もう1つはViewControllerという名前になります。

    作成済みのすべてのファイルが表示されているナビゲータ
  5. CheckList Overviewを使用してモデル・コンポーネントの作成を開始します。 「Connect to a Database」ステップをクリックします。

    Initialize Business Components Projectダイアログを使用して、このデータ・モデル・プロジェクトのビジネス・コンポーネントを操作するときに使用する設計時アプリケーション・リソース接続を選択します。または、既存のIDEレベルの接続をコピーして、新しいアプリケーション・リソース接続を作成します。 詳細を表示/非表示詳細表示

    Quick Start Checklist - データベース接続
  6. ステップが開き、このタスクの実行に必要な前提条件などの役立つ情報が表示されます。 「Create a Database Connection」ボタンをクリックします。

    Create Database Connection
  7. 作成する新規接続のプロパティを次のように指定します。

    データベースの正しいホストポートおよびSIDが参照されるように、Oracle JDBC Settingsを適切に入力します。 「Test Connection」ボタンをクリックして、成功したことを確認します。

    確認したら、「OK」ボタンをクリックします。

    プロパティ
    Connection Name HRConn
    Username hr
    Password hr
    データベース接続作成ページ
  8. Checklistペインで、Connect to a Databaseステップのステータスを「Done」に設定します。

    作成し終わったDB接続の確認
  9. Build Business Services」ステップをクリックして開き、「Go to Sub steps」ボタンをクリックします。

    サービス構築のチェックリスト
  10. サブタスク・リストで「Create Entity Objects and Associations」サブタスクをクリックします。

    エンティティ・オブジェクトの作成 - チェックリスト

    次に、「Create Entity Objects and Associations」ボタンをクリックします。

    エンティティ・オブジェクトは、指定されたデータソースの行を表すとともに関連付けられた属性の変更を制御するOracle ADF Business Componentsコンポーネントです。 詳細を表示/非表示詳細表示

    Create Entity Objects and Associations - チェックリスト
  11. Select Project for Actionダイアログで「Model」プロジェクトを選択します。

    OK」をクリックします。

    Select Project for Action
  12. Initialize Business Components ProjectダイアログでHRConn接続を選択します。 「OK」をクリックします。

    サービス用の接続の定義
  13. Entity Objectsページで「Query」ボタンをクリックし、データ・ディクショナリを調べて利用可能な表を表示します。

    作成するエンティティの選択
  14. Availableリストから「EMPLOYEES」表を選択し、右矢印「Right Arrow」をクリックしてSelectedリストに移動します。 このステップにより、選択した表に基づいて、更新可能なエンティティ・オブジェクトが作成されます。

    Next」をクリックして続行します。

    Employeeエンティティを選択した状態
  15. Updatable View Objectsダイアログで、Employees(HR.EMPLOYEES)をSelectedリストに移動します。 このステップにより、以前に作成したエンティティ・オブジェクトで問合せを実行するための適合するビュー・オブジェクトが作成されます。

    Next」をクリックして続行します。

    ビューの作成 - -EmployeesViewを選択した状態
  16. Read Only View Objectsダイアログでは、「Next」をクリックして続行します。

    ビュー・オブジェクトは、SQL問合せをカプセル化して問合せ結果の操作を簡素化するOracle Application Development Framework(Oracle ADF)コンポーネントです。 詳細を表示/非表示詳細表示
  17. Application Moduleダイアログで、「Finish」をクリックして、Modelプロジェクトのビジネス・コンポーネントを作成します。

    アプリケーション・モジュールは、エンドユーザーのタスクに関連する論理的な作業単位で使用されるビジネス・サービス・メソッドとUI認識型データ・モデルをカプセル化するOracle ADF Business Componentsコンポーネントです。 詳細を表示/非表示詳細表示
    使用するアプリケーション・モジュールの指定
  18. Checklistで、Create Entity Objects and Associationsステップのステータスを「Done」に設定します。 「Close Step 3」ボタンをクリックします。

    注: ステップ3.2、3.3 および3.4も完了しているため、これらのステップのステータスもDoneに設定できますが、これらは上のレベルで設定します。

    サービスのチェックリストを閉じる
  19. Build Business Servicesステップのステータスを「Done」に設定します。

    サービスを完了に設定
  20. モデル・プロジェクトでの作業が実行されます。 Modelプロジェクトを展開すると、アプリケーション・ナビゲータは次のように表示されます。

    作成されたサービス・ファイルが表示されているナビゲータ
  21. Oracle JDeveloperメニュー・バーの「Save AllSave Allアイコンをクリックするか、メニューから「File」→「Save All」を選択します。

    次は、ViewControllerプロジェクトに関する作業を実行します。


ステップ2: バインド・タスク・フローの作成

TaskFlowアプリケーションをOracle JDeveloperにロードしたら、ビューとリターンを含むバインド・タスク・フロー・ダイアグラムを作成します。 次のステップを実行します。

    Oracle ADFタスク・フローを使用すると、モジュール方式のアプローチでアプリケーションに制御フローを定義できます。 詳細を表示/非表示詳細表示

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

    Oracle ADFバインド・タスク・フローは、アプリケーションの再利用可能な部分をカプセル化するときに使用します。 詳細を表示/非表示詳細表示

    アプリケーション・ナビゲータからのNew Galleryの起動
  2. New Galleryで、「Web Tier」→「JSF/Facelets」ノードをクリックし、「ADF Task Flow」を選択します。

    New GalleryでOracle ADFタスク・フローを選択した状態
  3. Create Task Flowダイアログで、ファイル名としてemp-update-flowと入力します。 次のチェック・ボックスを選択します。

    OK」をクリックします。

    プロパティ
    Create as Bounded Task Flow チェックを入れる
    Create with Page Fragments チェックを入れる
    Create Train チェックを入れる
    タスク・フローの命名
  4. 空の新規タスク・フロー・ダイアグラムが表示され、アプリケーション・ナビゲータに新しいエントリが作成されます。

    ナビゲータと空白のタスク・フロー・ダイアグラム
  5. コンポーネント・パレットで「ViewアイコンViewコンポーネントを選択し、ダイアグラム上にドラッグ・アンド・ドロップします。

    もっとも重要なタスク・フロー・アクティビティ・タイプはビューです。JSFページまたはページ・フラグメントはビューで表示されます。 詳細を表示/非表示詳細表示

    ダイアグラム上での新規ビューの作成

  6. デフォルト名をintroに変更します。

    ダイアグラム上のビュービュー名を'intro'に変更

  7. ダイアグラム上のintroビューの隣に、新規のViewアイコンビューを作成します。

    ダイアグラム上での2つ目のビューの作成

    新規ビューの名前をsearchに変更します。

    ビュー名をsearchに変更

  8. ダイアグラム上に3つ目のViewアイコンビューを作成します。

    ダイアグラム上での3つ目のビューの作成

    ビュー名をUpdateに変更します。 ダイアグラムは下のイメージのようになります。

    3つ目のフローの名前を'update'に変更します。
  9. すべての変更を保存します。

ステップ3: タスク・フロー・ページの構築

introページは、このタスク・フローのエントリ・ポイントです。ここからは、ページ内にトレインを作成する方法を説明します。 次のステップを実行します。

  1. emp-update-flowダイアグラムでintroビュー・コンポーネントをダブルクリックしてページを作成します。

    introページをダブルクリック

    Create New JSF Page Fragmentダイアログで「OK」をクリックし、デフォルト値を受け入れます。

    新しいJSFページ・フラグメントの作成
  2. ページ設計ペインが開きます。 コンポーネント・パレットのADF Faces Common Componentsグループから「TrainTrainコンポーネントを選択して、ページ設計ペイン上にドロップします。

    トレインは関連するアクティビティの進行状況を表すもので、エンドユーザーがタスクを完了するときのガイドとなります。 詳細を表示/非表示詳細表示

    トレインを追加中の設計ページ

    Bind Trainダイアログで、デフォルト値のまま「OK」をクリックします。


    トレインの値の設定

  3. Train Button BarTrain Button Barコンポーネントを選択し、Trainコンポーネントの下にドロップします。

    トレイン・ボタン・バーの追加

    Bind trainButtonBarダイアログで、デフォルト値のまま「OK」をクリックします。

    トレイン・ボタン・バーのバインド

  4. コンポーネント・パレットのADF Faces General Componentsグループから「Output TextOutput Textコンポーネントを選択し、トレイン・ボタン・バーの下にドロップします。

    出力テキストの追加

    プロパティ・インスペクタがまだ開いていない場合は、「View」→「Property Inspector」の順に選択するか[Ctrl] + [Shift] + [I]キーを同時に押して開き、ValueフィールドにWelcome to the Employee updaterと入力します。

    出力テキストの値の設定

    ページは次のようになります。

    ページの設計ビュー

  5. すべての作業内容を保存し、「emp-update-flow」タブをクリックしてタスク・フロー・ダイアグラムを再表示します。

    タスク・フロー・ページの再表示

  6. search」ビュー・コンポーネントをダブルクリックして、検索ページを作成します。

    検索ページをダブルクリック

  7. Create New JSF Page Fragmentダイアログで、デフォルト値のまま「OK」をクリックします。

    新しいJSFページ・フラグメントの作成

  8. ページ設計ペインが開きます。 コンポーネント・パレットのADF Faces Common Componentsグループから「TrainTrainコンポーネントを選択し、ページ設計ペイン上にドロップします。

    ページへのトレインの追加

    Bind Trainダイアログで、デフォルト値のまま「OK」をクリックします。

    Bind Trainペイン

  9. Train Button barTrain Button Barコンポーネントを選択し、Trainコンポーネントの下にドロップします。

    トレイン・ボタン・バーの追加

    Bind trainButtonBarダイアログで、デフォルト値のまま「OK」をクリックします。

    Bind trainButtonBarペイン

  10. すべての作業内容を保存し、「emp-update-flow」タブをクリックしてタスク・フロー・ダイアグラムを再表示します。

    タスク・フロー・ページの選択の再表示

  11. update」ビュー・コンポーネントをダブルクリックして、更新ページを作成します。

    更新ページをダブルクリック

  12. Create New JSF Page Fragmentダイアログで、デフォルト値のまま「OK」をクリックします。

    JSFページ・フラグメントの作成

  13. ページ設計ペインが開きます。 コンポーネント・パレットのADF Faces Common Componentsグループから「TrainTrainコンポーネントを選択し、ページ設計ペイン上にドロップします。

    ページへのトレインの追加

    Bind Trainダイアログで、デフォルト値のまま「OK」をクリックします。

    Bind Train

  14. Train Button BarTrain Button Barコンポーネントを選択し、Trainコンポーネントの下にドロップします。

    トレイン・ボタン・バーの追加

    Bind trainButtonBarダイアログで、デフォルト値のまま「OK」をクリックします。

    Bind trainButtonBar


  15. Save AllSave All」アイコンをクリックしてアプリケーションを保存します。

ステップ4: タスク・フロー・ページへのデータ・コントロールのバインド

検索ページと更新ページは、データ・コントロール・コンポーネントとバインドする必要があります。 検索ページでは任意の列を条件にして従業員を問い合せ、更新ページでは従業員の給与を表示および更新します。 これらの操作を実行できるようにするために、次のステップを実行します。

  1. search」タブをクリックして、ページを再表示します。

    検索ページの再表示
  2. アプリケーション・ナビゲータでData Controlsアコーディオンを開き、「AppModuleDataControl」→「 EmployeesView1」→「Named Criteria」の順に開いて「All Queriable Attributes」をページ上にドラッグ・アンド・ドロップします。

    データ・コントロールは基本的に、ソースから取得したデータをOracle ADF Fusion Web Applicationのユーザー・インタフェースで使用できるように橋渡しをするものです。 詳細を表示/非表示詳細表示

    All Querable Attributesを使用したデータ・コントロール

    ポップアップ・メニューから「Create」→「Quick Query」の順に選択し、「ADF Quick Query with Table」オプションを選択します。

    クイック問合せ検索フォームは、単一の検索で十分な場合、またはこれを起点に詳細な問合せ検索に発展させる場合に使用します。 詳細を表示/非表示詳細表示


  3. Edit Table Columnsダイアログで、「Single Row」オプションと「Enable Sorting」オプションを選択します。

    OK」をクリックします。

    Edit Table Columns
  4. ページは次のように表示されます。

    設計ビューのページ
  5. update」タブをクリックしてページを開きます。

    更新ページの再表示
  6. Data Controlsペインで「AppModuleDataControl」→「EmployeesView1」の順に選択し、更新ページへドラッグ・アンド・ドロップします。

    データ・コントロール
  7. ポップアップ・メニューから「Create」→「Form」の順に選択し、「ADF Form」オプションを選択します。

    Data Controlsパネルからオブジェクトをフォームとしてドロップしても、1つの属性をドロップしたときと同じ処理が行われます。ただし、 詳細を表示/非表示詳細表示

    Create Form - ADF Formメニュー
  8. Edit Form Fieldsで、最後の3行(CommissionPctManagerIDDepartmentId)を選択し、「deleteアイコンDeleteボタンをクリックしてフィールドを除外します。 「Include Submit Button」オプションを選択し、「OK」をクリックします。

    Edit Form Fieldsペイン
  9. コンポーネント・パレットで「ButtonButtonアイコンを選択し、Submitボタンの隣にドラッグ・アンド・ドロップします。

    設計ビューの更新ページ
  10. プロパティ・インスペクタで、ボタンのTextフィールドにCancelと入力します。

    ボタン - テキスト値
  11. ページは次のように表示されます。

    設計ビューのページ
  12. Save AllSave Allアイコンをクリックしてアプリケーションを保存します。

ステップ5: タスク・フローへのトランザクション・コントロールの設定

トランザクションは、リターン・アクティビティを使用するか操作アクションにバインドされたボタンを使用して、終了させることができます。 可能な場合はタスク・フロー・リターン・アクティビティを使用します。 タスク・フロー・リターン・アクティビティを使用すると、Oracle ADFタスク・フローのビューで使用されたすべてのデータがコミットされます。 また、アプリケーションでコミットおよびロールバックが行われる場所が分かりやすくなるため、メンテナンスが容易になります。 トランザクション・コントロール用のリターン・アクティビティを実装するには、次のステップを実行します。

  1. emp-update-flow」タブをクリックして、タスク・フロー・ダイアグラムを再表示します。

    タスク・フロー・ダイアグラムの再表示
  2. Overview」タブをクリックしてから「Behavior」タブを選択します。

    OverviewタブとBehaviorを選択した状態
  3. Transactionグループで、リストから「Always Begin New Transaction」プロパティを設定します。

    トランザクションは、グループとしてまとめてコミットまたはロールバックできる、永続化された作業のコレクションです。 詳細を表示/非表示詳細表示

    こうすると、個々の従業員の更新は、粒度が単一行のトランザクションと見なされます。

    トランザクション領域の強調表示
  4. ダイアグラムに戻り、「task flow returnTask Flow Returnコンポーネントを選択し、updateビューの下にドロップします。

    ダイアグラムへのタスク・フロー・リターンの追加

    コンポーネントの名前をcommitに変更します。

    commitへの名前の変更
  5. 再度、「task flow returnTask Flow Returnコンポーネントを選択し、updateビューの下にドロップします。 コンポーネントの名前をrollbackに変更します。 .

    ロールバック・タスク・フローの追加
  6. コンポーネント・パレットから「Control Flow CaseControl Flow Caseコンポーネントを選択し、「update」ビューをクリックして「commit」リターンへドラッグ・アンド・ドロップします。

    コミットするための制御フローのリターンへの追加

    コンポーネントの名前をcommitに変更します。

    フロー名をcommitへ変更
  7. コンポーネント・パレットから「Control Flow CaseControl Flow Caseコンポーネントを選択し、「update」ビューをクリックして「rollback」リターンへドラッグ・アンド・ドロップします。 続いて、コンポーネントの名前をrollbackに変更します。

    rollbackリターンへのフローの追加
  8. タスク・フロー・ダイアグラムは次のように表示されます。

    完成したダイアグラム
  9. commit」リターン・コンポーネントを選択し、プロパティ・インスペクタのBehaviorタブで、End Transactionフィールドの値リストから「commit」を選択します。

    commitリターンの選択End Transactionをcommitに設定
  10. rollback」リターンを選択して同じ操作を繰り返し、End Transactionのリストから「rollback」を選択します。

    ロールバックへのrollbackリターンの設定
  11. Save AllアイコンSave Allアイコンをクリックしてアプリケーションを保存します。

  12. update」タブをクリックして更新ページの設計ビューを開き、「Submit」ボタンを選択します。

    更新ページ、Submiボタンの選択

    プロパティ・インスペクタのActionフィールドで、リストから「commit」を選択します。

    ボタンのアクションをcommitに設定
  13. Cancel」ボタンを選択します。

    更新ページのCancelボタンの選択

    プロパティ・インスペクタのActionフィールドで、リストから「rollback」を選択します。

    アクション・プロパティをrollbackに設定
  14. Save AllSave Allアイコンをクリックしてアプリケーションを保存します。

ステップ6: 2つ目のタスク・フローの定義

アプリケーションへは、ログイン・プロセスを経由しなければアクセスできないようにする必要があります。 ログイン・ページ、ルーター、エラー・ページ、および以前に作成したタスク・フローを作成します。 このタスク・フローを作成するには、以下のステップを実行します。

一般的なアプリケーションには、1つのバインドなしのタスク・フローと1つ以上のバインド・タスク・フローが組み合せられています。 詳細を表示/非表示詳細表示
  1. アプリケーション・ナビゲータで「ViewController」ノードを右クリックし、コンテキスト・メニューから「New」を選択します。

    ナビゲータとコンテキスト・メニューのNew
  2. New Galleryで、「Web Tier」→「JSF」ノードをクリックし、「ADF Task Flow」を選択します。 「OK」をクリックします。

    New GalleryでOracle ADFタスク・フローを選択した状態
  3. Create Task Flowダイアログで、ファイル名としてsecurity-flowと入力します。 「Create as Bounded Task Flow」を選択して、「Create with Page Fragments」チェック・ボックスを選択します。

    OK」をクリックします。

    Create Task Flowの詳細
  4. 空の新規タスク・フロー・ダイアグラムが表示され、アプリケーション・ナビゲータに新しいエントリが作成されます。

    ナビゲータと設計ページ
  5. コンポーネント・パレットで「ViewアイコンViewコンポーネントを選択し、ダイアグラム上にドラッグ・アンド・ドロップします。

    タスク・フロー

    ビュー名をloginに変更します。

    ビュー名をloginに変更
  6. routerアイコンRouterコンポーネントを選択してloginビューの隣にドロップします。

    ルーター・アクティビティを使用すると、EL式に指定されたロジックに基づいてアクティビティのルーティングを宣言的に制御できます。 詳細を表示/非表示詳細表示

    タスク・フローへのルーターの追加
  7. アプリケーション・ナビゲータから「emp-update-flow」を選択し、routerの下のダイアグラムにドラッグ・アンド・ドロップします。


    セキュリティ・フローへのemp flowの追加

  8. コンポーネント・パレットで「ViewアイコンViewアイコンを選択し、ダイアグラム上にドラッグ・アンド・ドロップします。

    ダイアグラムへのビューの追加

    ビューの名前をerrorに変更します。

    ビュー名をerrorに変更
  9. control flow caseControl Flow Caseアイコンを選択し、「login」ビューをクリックしてフローをrouterへドラッグ・アンド・ドロップします。

    ルーターへの制御フロー・ケースの追加
  10. 前の操作を繰り返して、routerからerrorビューへ「control flow caseControl Flow Caseを引きます。

    ルーターからの制御フロー・ケースの追加

    フローの名前をbadに変更します。

    フロー名をbadへ変更
  11. 前の操作を繰り返して、routerからemp-update-flowビューへ「control flow caseControl Flow Caseを引きます。

    名前をgoodに変更します。

    empタスク・フローへgoodという別のフローを追加
  12. 前の操作を繰り返して、errorからloginビューへ「control flow caseControl Flow Caseを引きます。

    フロー名をloginに変更します。 ダイアグラムは次のように表示されます。

    alt text
  13. 2つ目のタスク・フローが完成します。 「Save AllSave Allアイコンをクリックしてアプリケーションを保存します。

ステップ7: タスク・フロー・コンポーネントとルーター・ルールの定義

パスワード・フィールドのあるログイン・ページを作成し、パスワード値用のバッキングBeanを作成します。 これにより、ルーターはパスワードに応じてerrorページまたはemp-updateフローに制御を移します。 ページを作成してルーター・ルールを実装するには、以下のステップを実行します。

  1. ダイアグラムで「login」ビュー・アイコンをダブルクリックし、ページを作成します。 Create New JSF Page Fragmentダイアログで、デフォルト値のまま「OK」をクリックします。

    loginページ作成ペイン
  2. コンポーネント・パレットから「Input Text」アイコンをドラッグし、loginページにドロップします。

    input textの追加

    Labelとしてpasswordを入力します。

    ラベルをpasswordに設定
  3. AdvancedタブのBindingフィールドで、ドロップダウン・リストから「Edit」を選択します。

    bindingプロパティの更新

    Edit Propertyダイアログで「New」ボタンをクリックして、パスワード値を保持するマネージドBeanを作成します。

    バッキングBeanの作成


    マネージドBeanは、さまざまな構成ファイルを使用してアプリケーションに登録するJavaクラスです。 詳細を表示/非表示詳細表示

    Create Managed Beanダイアログに次の値を入力します。

    プロパティ
    Bean Name backing_login
    Class Name backing_login
    Package backing
    Extends java.lang.Object
    Scope request
    Generate Class If It Does Not Exist (チェックを入れる)
    Edit Bindingペイン

    OK」をクリックします。

  4. Edit Propertiesに戻り、Propertyフィールドの横にある「New」ボタンをクリックします。

    新しいバッキングBeanプロパティの作成

    Create Propertyダイアログで、Property Nameとしてpasswordを入力します。

    プロパティ名'password'を指定
  5. プロパティ・インスペクタには、Advancedノードの入力テキストコンポーネントが次のように表示されます。

    プロパティ・インスペクタの入力テキスト

    実際のパスワード・フィールドでは、入力されたパスワード値を非表示にするために、AdvancedノードのVisibleプロパティをfalseに設定します。

  6. ButtonButtonコンポーネントをパスワード・フィールドの下にドラッグ・アンド・ドロップします。


    ページへのボタンの追加

    Textプロパティを「login」に変更します。

    ボタンのテキストをloginに設定

  7. security-flow」タブをクリックしてタスク・フロー・ダイアグラムを開き、errorページからloginページへのControl Flowを追加し、名前をloginとします。
    次に、ルーターを選択します。

    セキュリティ・フロー・タスク・フロー・ダイアグラム
  8. ルーターのプロパティ・インスペクタで、Default Outcomeとしてドロップダウン・リストから「bad」を選択します。
    Casesセクションの「プラスシンボルAddボタンをクリックして条件を作成します。

    ルーターのDefault Outcomeをbadに設定
  9. Expressionフィールドで、リストから「Expression Builder」オプションを選択します。

    Casesプロパティで式ビルダーを選択

    ADF Managed Beans」→「backing_login」→「password」の順にノードを開いて「value」変数を選択し、「'=='」オペランドを選択して'oracle'と入力します。

    EL式の設定

    OK」をクリックします。

    この例では、パスワードのハード・コード値としてoracleをコーディングしてあります。

  10. プロパティ・インスペクタに戻り、Outcomeとして「good」を選択します。こうして、入力されたパスワードがoracleと等しい場合は'good'フローを経由してemp-updateフローにナビゲートされ、等しくない場合はerrorページにナビゲートされるようにします。

    CaseのOutcome値の設定
  11. 次に、マネージド・プロパティ値を操作するパラメータを作成する必要があります。 security-flowフロー・ダイアグラムで、「Overview」タブ→「Parameters」タブの順にクリックします。

    コール先のOracle ADFバインド・タスク・フローでは、入力パラメータを受け取ることができ、終了時にはコール元に戻り値を渡すことができます。 詳細を表示/非表示詳細表示

    「Parameters」タブの選択
  12. Input Parameter Definitionsの「緑色のプラスサインAddボタンをクリックします。

    Input Parameter Definitions

  13. 下の表の値をパラメータに設定し、すべての作業内容を保存します。

    プロパティ
    Name username
    Class java.lang.String
    Value (自動設定)
    Required (チェックを入れる)
    完成した入力パラメータ定義
  14. login.jsff」タブをクリックしてページを開き、「Output Text」コンポーネントをpassword入力テキストの上にドラッグ・アンド・ドロップします。

    loginページへの出力テキストの追加

  15. プロパティ・インスペクタで、Valueフィールドのリストから「Expression Builder」オプションを選択します。

    JSFでは、ELと呼ばれる簡単な式言語を使用して、表示または変更する情報をバインドします。 詳細を表示/非表示詳細表示

    出力テキスト項目の式ビルダー
  16. Expression BuilderでExpressionフィールドに値が入っていないことを確認し、「ADF Managed Beans」→「pageFlowScope」の順に開き、「username」を選択します。

    OK」をクリックします。

    EL式をusernameに設定
  17. security-flow」タブをクリックしてタスク・フロー・ダイアグラムを開き、「error」ビューをダブルクリックしてページを作成します。

    errorページの表示

    Create New JSF Page Fragmentダイアログで「OK」をクリックし、デフォルト値を受け入れます。

    ブランク・テンプレートが指定されたerorrページ
  18. コンポーネント・パレットから「Output TextアイコンOutput Textをドラッグし、ページ上にドロップします。

    errorページへの出力テキストの追加

    プロパティ・インスペクタで、ValueフィールドにError, wrong passwordと入力します。

    Valueをwrong passwordに設定
  19. Designで[Enter]を押して新しい行を追加し、「ButtonアイコンButtonコンポーネントをドラッグしてerrorテキストの下にドロップします。

    新しいボタンをページに追加

    プロパティ・インスペクタで、TextフィールドをRetryに変更し、Actionのリストから「login」を選択します。

    ボタンの名前をretryに変更
  20. Save AllアイコンSave Allアイコンをクリックしてアプリケーションを保存します。

ステップ8: JSFページの作成とリージョンとしてのタスク・フローのページへのバインド

このタスク・フロー使用するJSFページを作成するには、以下のステップを実行します。

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

    コンテキスト・メニューが表示されたナビゲータ
  2. New Galleryで、Categoriesから「Web Tier」→「JSF/Facelets」を選択し、Itemsから「Page」を選択します。

    OK」をクリックします。

    New GalleryでJSP Pageを選択
  3. Create JSF Pageダイアログで、File Nameにmasterと入力し、「Page Template」オプションにチェックを入れ、「Oracle Three Column Layout」を選択します。

    OK」をクリックします。

    マスター・ページの作成
  4. スクロールして、表示されたページをエディタで確認します。

    3列テンプレートを使用したページ
  5. コンポーネント・パレットから「Output TextアイコンOutput Textコンポーネントをドラッグし、startファセットにドロップします。

    最初の列へ出力コンポーネントを追加

    プロパティ・インスペクタで、ValueフィールドをWelcomeに変更します。

    出力テキストのvalueをwelcomeに設定

  6. ViewController」→「Web Content」→「WEB-INF」の順にノードを開き、「security-flow.xml」をドラッグしてFacet centerにドロップします。

    メニューから「Region」を選択します。

    データ・コントロールをページに追加



    JSFページまたはページ・フラグメント(.jsff)にバインド・タスク・フローをレンダリングするには、Oracle ADFリージョンを使用します。 詳細を表示/非表示詳細表示

    Regionが表示されているCreateコンテキスト・メニュー

    Edit Task Flow Bindingで、Valueフィールドに#{'Scott'}と入力します。

    タスク・フロー・バインディングを#{'Scott'}に設定

  7. 現在のマスター・ページは次のように表示されます。

    すべての項目が表示されたマスター・ページ

  8. Save AllアイコンSave Allアイコンをクリックしてアプリケーションを保存します。

ステップ9: マスター・ページの実行

これで、タスク・フローはリージョンとしてマスター・ページに統合され、実行できる状態になりました。 次のステップを実行します。

  1. masterページのエディタで右クリックし、コンテキスト・メニューから「Run」を選択します。

    コンテキスト・メニューでRunを選択した状態
  2. ブラウザにページがロードされ、username変数(Scott)が表示され、パスワードの入力待ち状態になります。

    ブラウザで実行中のマスター・ページ

  3. 誤ったパスワード値(oracle以外の値)を入力してみます。

    passwordフィールドにjdevと入力した状態

    続いて「login」ボタンをクリックします。 ルーターによってerrorページにナビゲートされます。

  4. Retry」ボタンをクリックして正しいパスワードでログインします。

    errorページの表示

  5. loginページに戻り、パスワード値としてoracleを入力します。

    loginページにパスワードとしてoracleを入力した状態

    次に、「login」をクリックします。

  6. トレインが表示された新しいページが開きます。

    フローの最初のページ

  7. 新しいページで、「Next」ボタンまたはトレインの2つ目のボタンをクリックします。

    alt text

  8. トレインの2つ目のステップ(検索ページ)で「LastName」を選択します。
    検索フィールドにA%と入力し、Aで始まる従業員名をすべて取得します。

    Aで始まるすべての従業員の検索

    search」ボタンをクリックします。

  9. 返されたリストで任意の従業員を1人選択し、「Next」ボタンをクリックします。
    新しい条件の入力準備が整うまでは、Searchパネルは閉じていても構いません。

    返された従業員

  10. 選択した従業員のEditページでSalaryを任意の値に変更し、「Submit」をクリックします。

    1人の従業員のEditページ

  11. 自動的にloginページに戻ります。

    loginページ

  12. Oracle JDeveloperに切り替えてDatabase Navigatorを開きます(表示されていない場合は、「View」→「Database 」→「Database Navigator」の順に選択します)。

    メニューでdatabse navigatorを選択した状態

  13. TaskFlow」→「HRConn」→「Tables」の順にノードを開き、「Employees」表をダブルクリックして開きます。

  14. Data」タブをクリックして従業員の値を表示します。

    dataタブを選択

    Sort」ボタンをクリックします。

    sortボタンを選択

  15. Filterフィールドを使用するか、Sort操作を使用すると、求めている従業員の情報をさらに簡単に取得できます。 「Sort」ボタンをクリックし、Sort ColumnsダイアログでLAST_NAMEをSelected Columnsペインに移動します。

    OK」をクリックします。

    Sort Columnsペイン

  16. Salaryを更新した従業員を検索し、新しい値で更新がコミットされていることを確認します。

    新しい値で更新されたレコード
  17. この最後のプロセスを繰り返して、Cancel(ロールバック)アクションをテストしても構いません。

    これで、このチュートリアルは完了です。

まとめ
このチュートリアルでは、ビュー、リターン、ルーターを含む2つの独立したタスク・フローを開発しました。 ビューでは、データ・バインドされたコンポーネントとマネージド・トランザクション・コントロールをタスク・フローに追加しました。 このチュートリアルで学習した内容は、以下のとおりです。 タスク・フロー、リージョンおよびルーターについて、詳しくは以下を参照してください。

ブックマーク 印刷 すべて表示 | すべて非表示
トップへ戻る

このページはお役に立ちましたか。



Copyright © 2011, Oracle and/or its affiliates. All rights reserved.