ここではウィザードを使用して、Oracle ADF Business Componentsを使用したアプリケーションとモデル・プロジェクトを素早く作成します。 カスタマイズを始める前に、2つのレイヤー値を持つカスタマイズ・レイヤーを定義し、カスタマイズ・クラスを作成してから、アプリケーション構成ファイルにこのクラスを登録します。
詳細を表示/非表示詳細表示
目的 所要時間 アプリケーション
このチュートリアルでは、Oracle ADF Business ComponentsおよびOracle ADF Facesを使用して構築されたアプリケーションをカスタマイズおよびパーソナライズする方法について説明します。 これから作成するアプリケーションの完成版を確認するには、「Download」ボタンをクリックして最終的なアプリケーションのzipファイルをダウンロードし、JDeveloperのmyworkフォルダに解凍してください。 1時間40分 customizeapp.zipのダウンロード
注:アプリケーション全体をダウンロードする場合、詳細を表示/非表示詳細表示
ステップ1: スキーマのインストール
    このチュートリアルのステップと例は、Fusion Order Demo(FOD)スキーマに含まれる表に基づいています。 このスキーマは、Oracle JDeveloper 11gに付属しているサンプル・アプリケーションのデータベースとして、さらに、このリリースの他の補足情報としても使用されます。 詳細を表示/非表示詳細表示
  1. OTNからschema.zipファイルをダウンロードします。 schema.zipのダウンロード

  2. ファイルを適切な場所(c:\tempなど)に解凍します。

  3. Fileメニューから「Open」を選択します。 ワークスペースc:\temp\Infrastructure\Infrastructure.jwsを開きます。

  4. プロジェクトを移行するよう指示されたら、「Yes」をクリックして確定します。次に「OK」をクリックします。

  5. アプリケーション・ナビゲータで、「MasterBuildScript」プロジェクトを開きます。 Resourcesの下にある「build.properties」をダブルクリックして、エディタで開きます。

  6. build.propertiesファイルに適切な値を設定します(jdeveloper.homeと、jdbc.*およびdb.*のすべてを設定)。 他のプロパティは、すべてデフォルト値のままにしておきます。 demoユーザーの名前はFODにする必要があります。

    関連する設定は、次のとおりです。

    設定 説明
    jdeveloper.home JDeveloperをインストールしたフォルダの/jdeveloperディレクトリ(例:c:/JDeveloper_11/jdeveloper/
    jdbc.urlBase データベースのベースURL(例:jdbc:oracle:thin:@localhost
    jdbc.port データベースのポート番号(例:1521
    jdbc.sid データベースのシステム識別子(例:XEまたはORCL
    db.adminUser 管理者権限を持つデータベース・ユーザー(例:system
    db.demoUser.tablespace FODユーザーをインストールする表領域名(例:USERS
  7. MasterBuildScriptプロジェクトから「build.xml」ファイルを選択します。

  8. Structureウィンドウで、「refreshSchema」ターゲットを右クリックして、「Run Target "refreshSchema"」を選択します。

  9. 入力の指示が表示されたら、管理者権限を持つデータベース・ユーザーのパスワードを入力します。

    Antタスクの実行後、JDeveloper Logウィンドウにbuild successfulメッセージが表示されます。

    Apache Ant Logウィンドウ

    エラーがある場合、データベースが実行中であるかどうか(SQL*Plusで接続を試みます)、build.propertiesファイルに設定した値が正しいかどうかを確認する必要があります。 また、指定したDBAユーザーにCREATE USER権限があることも確認してください。

ステップ2: 新規アプリケーションおよびプロジェクトの作成
  1. メイン・メニューから「File」→「New」を選択します。 New Galleryで「General」カテゴリを開き、「Applications」を選択します。 Itemsリストから「Fusion Web Application (ADF)」を選択し、「OK」をクリックします。

    New Gallery、General、Applications
  2. JDeveloperアプリケーションは、組織構造の最上位レベルです。 アプリケーションの開発中に、操作しているオブジェクトの情報がここに格納されます。 詳細を表示/非表示詳細表示
  3. この例に合わせるため、アプリケーション名としてCustomizeApp、アプリケーション・パッケージの接頭辞としてoracleを入力します。

    Fusion Webアプリケーションの作成
  4. 初期プロジェクト構造(アプリケーション・ワークスペース内の名前付きプロジェクト・フォルダ)および追加されるアプリケーション・ライブラリは、選択したアプリケーション・テンプレートによって決まります。 詳細を表示/非表示詳細表示
  5. デフォルト値のままにして、「Finish」をクリックします。

    新しいアプリケーションを作成すると、Application Overviewウィンドウがデフォルトでエディタ・ウィンドウ領域に開きます。 このアプリケーションのオブジェクト作成では使用しないため、任意でこのウィンドウを閉じても問題ありません。

    Application Overviewウィンドウの一部

  6. このウィンドウの各ファイル概要ページには、JDeveloper内で作成されるすべてのオブジェクトがオブジェクト・タイプごとに分類されて表示されます。 新規作成したファイルとアーチファクトは、ステータスやプロジェクトでフィルタして表示できます。 詳細を表示/非表示詳細表示
ステップ3: データベース接続の作成

Fusion Order Demoスキーマを使用するため、インストールしたデータベースへの接続を確立します。

  1. メイン・メニューからの「File」→「New」→「General」→「Connections」→「Database Connection」の順に選択し、「OK」をクリックしてCreate Database Connectionダイアログを開きます。

    New Gallery、Connections、Database Connection

  2. Create Connection Inオプションとして「Application Resources」を選択します。

  3. 接続の名前を入力し、接続タイプを選択して、ユーザー名とパスワードを入力します。 この例では、接続名にFOD、ユーザー名にfodを使用します。

    Create Database Connectionダイアログ

  4. Oracle JDBC設定を入力し、使用するデータベースのホスト、ポート、SIDを指定します。 「Test Connection」をクリックし、接続可能であることを確認します。 接続に成功したら、「OK」をクリックします。

  5. アプリケーション・ナビゲータで「Application Resources」パネルを開きます。

    Application Resourcesパネルを開いた状態

  6. Application Resourcesパネルで、「Connections」→「Database」ノードを開きます。

    Application Resourcesパネルを開いた状態
  7. 作成したデータベース接続(例:FOD)が、アプリケーションのリソースとしてConnectionsノードに追加されました。 詳細を表示/非表示詳細表示
ステップ4: Oracle ADF Business Componentsの作成
  1. アプリケーション・ナビゲータで「Model」プロジェクトを右クリックし、「New」→「Business Tier」→「ADF Business Components」→「Business Components from Table」を選択して「OK」をクリックします。

    New Gallery、ADF Business Components from Tables
  2. Create Business Components from Tablesウィザードを使用すると、既存のデータベース・オブジェクトから、ビジネス・ドメイン・コンポーネント(エンティティ・オブジェクト、アソシエーション、ドメイン)のパッケージを容易に作成できます。詳細を表示/非表示詳細表示
  3. Initialize Business Components Projectダイアログで、FODが現在選択されているデータベース接続であることを確認します。 「OK」をクリックします。

    Initialize Business Components Projectダイアログの一部

  4. ステップ1のEntity Objectsで「Query」をクリックし、左側のリスト・ボックスにオブジェクトを挿入します。

    Queryボタン

    スキーマに多数の表が含まれる場合、若干の遅延が発生することがあります。

  5. Availableリストから3つの表(「ORDERS」、「ORDER_ITEMS」、「PRODUCTS_BASE」)を選択し、「単一のシャトル・アイコン」をクリックしてSelectedリストに移動します。 「Next」をクリックします。

    Create Business Components from Tablesウィザード

  6. ステップ2のEntity-based View Objectsで、Availableリストからビジネス・コンポーネント「Orders (ORDERS)」と「OrderItems (ORDER_ITEMS)」を選択し、「単一のシャトル・アイコン」をクリックしてSelectedリストに移動します。 「Next」をクリックします。

    Create Business Components from Tablesウィザード、ステップ2

  7. オブジェクトは必要ないため、ステップ3のQuery-based View Objectsで「Next」をクリックしてこのステップをスキップします。

  8. ステップ4のApplication Moduleでアプリケーション・モジュール名をFODAppModuleに変更し、「Finish」をクリックします。

    Create Business Components from Tablesウィザード、ステップ4

  9. Save AllアイコンSave Allをクリックして作業内容を保存します。

    Create Business Components from Tablesウィザードを完了すると、アプリケーション・ナビゲータのModelプロジェクトは次のように表示されます。

    アプリケーション・ナビゲータのData Controlsパネル
  10. Modelプロジェクトには、作成されたビジネス・コンポーネント(エンティティ・オブジェクト、ビュー・オブジェクト、アソシエーション、ビュー・リンク、アプリケーション・モジュール)が表示されています。 詳細を表示/非表示詳細表示
ステップ5: カスタマイズ・レイヤーの定義
    Oracle Application Developer Framework(Oracle ADF)アプリケーションで、Oracle Metadata Servicesフレームワークを使用すると、カスタマイズ可能なアプリケーションを作成できます。 詳細を表示/非表示詳細表示
  1. メイン・メニューから「File」→「Open」の順に選択し、<JDEVELOPER_HOME>/jdeveloper/jdevにある「CustomizationLayerValues.xml」ファイルを見つけて開きます。

    Fileメニュー、Open
  2. アプリケーションをカスタマイズするには、CustomizationLayerValues.xmlファイルにカスタマイズ・レイヤーとその値を指定して、JDeveloperから認識されるようにする必要があります。 詳細を表示/非表示詳細表示
  3. XMLエディタでsiteカスタマイズ・レイヤーの値を変更し、2つの設定可能なレイヤー値を追加します。 ここでは、提供されているサンプル・コードを使用できます。

    たとえば、カスタマイズ・レイヤーの値site1site2に対する以下の2行のコードを

    <cust-layer-value value="site1" display-name="Site One" id-prefix="1"/>
    <cust-layer-value value="site2" display-name="Site Two" id-prefix="2"/>

    以下のように変更します。

  4. カスタマイズ可能なアプリケーションは、特定のグループ(industryやsiteなど)の必要性に合わせて、複数のカスタマイズ・レイヤーを持つことができます。 詳細を表示/非表示詳細表示
  5. FilesaveアイコンSaveアイコンをクリックします。

  6. アプリケーション・ナビゲータで「Model」プロジェクトを右クリックし、「New」→「General」→「File」を選択して「OK」をクリックします。

    New Gallery、General、File

  7. Create Fileダイアログでファイル名としてcustomization.propertiesを入力します。 Directoryフィールドで、Modelの後に\srcを追加します(例:<JDEVELOPER_HOME>\jdeveloper\mywork\CustomizeApp\Model\src)。 「OK」をクリックします。

    Create Fileダイアログ

  8. テキスト・エディタで、siteカスタマイズ・レイヤーに定義したレイヤー値を追加します。 提供されているサンプル・コードをコピーし、貼り付けることができます。

  9. ランタイムのcustomization.propertiesファイルには、アプリケーション内の1つまたは複数のカスタマイズ・レイヤーに定義された設定可能なレイヤー値が含まれます。 詳細を表示/非表示詳細表示
  10. Save AllアイコンSave Allをクリックして作業内容を保存します。

    customization.propertiesファイルがModelプロジェクトのApplication Sourcesフォルダの下に作成されます。

    アプリケーション・ナビゲータ、カスタマイズ・プロパティ
  11. このファイルはこの後編集しないため、エディタ・ウィンドウでこのファイルを閉じても問題ありません。 詳細を表示/非表示詳細表示
ステップ6: カスタマイズ・クラスの作成
  1. アプリケーション・ナビゲータで「Model」プロジェクトを右クリックし、「New」→「General」→「Java Class」を選択して「OK」をクリックします。

    New Gallery、General

  2. Create Java Classダイアログに、次の値を入力します。

    フィールド
    Name SiteCC
    Package oracle.model.mycompany
    Extends oracle.mds.cust.CustomizationClass
  3. デフォルト値のまま、「OK」をクリックします。

    Create Java Classダイアログ

  4. SiteCC.javaのソース・エディタで、カスタマイズ・レイヤーを構築するためのコードを追加します。 生成されているコードを削除し、提供されているサンプル・コードをコピーして貼り付けます。

  5. カスタマイズ・クラスは、Oracle Metadata Servicesフレームワークがアプリケーションのベース定義メタデータに適用するカスタマイズ・レイヤーを定義するために使用するインタフェースです。 詳細を表示/非表示詳細表示
  6. アプリケーション・ナビゲータで「Model」プロジェクトを選択し、「BuildアイコンRebuildをクリックします。

    Messages LogウィンドウにSuccessful compilationというメッセージが表示されます。

  7. アプリケーション・ナビゲータで「Application Resources」パネルを開きます。 DescriptorsADF META-INFにある「adf-config.xml」をダブルクリックして、概要エディタでファイルを開きます。

    Application Resourcesパネル、adf-config.xml
  8. カスタマイズ・クラスはアプリケーション構成ファイルadf-config.xmlに登録されている必要があります。 詳細を表示/非表示詳細表示
  9. 左側の「MDS」をクリックしてから「緑色のプラス記号アイコン」をクリックします。

    adf-config.xmlファイルの概要エディタ

  10. Edit Customization Classダイアログにsiteccと入力し、クラス「SiteCC (oracle.model.mycompany)」を選択して「OK」をクリックします。

    Edit Customization Classダイアログ
  11. カスタマイズ・クラスoracle.model.mycompany.SiteCC.javaが、概要エディタのMDSページに表示されます。 詳細を表示/非表示詳細表示
  12. Save AllアイコンSave Allをクリックして作業内容を保存します。

  13. カスタマイズ・クラスの作成ステップが完了すると、アプリケーション・ナビゲータの表示は次のようになります。 詳細を表示/非表示詳細表示
ステップ7: カスタマイズ可能なJSFページの作成

カスタマイズを適用するためのベース・アプリケーションを準備し、後からカスタマイズできるように2つのベース・ページを作成します。

  1. アプリケーション・ナビゲータで「ViewController」をダブルクリックし、Project Propertiesダイアログを開きます。

  2. ADF View」を選択してから「Enable Seeded Customizations」を選択し、「OK」をクリックします。

    Project Propertiesダイアログ、Enable Seeded Customizations
  3. アプリケーションのシード済みカスタマイズとは、特定のグループ(industryやsiteなど)の必要性に合わせて、一般化されたアプリケーションを使用したり、変更を加えたりするプロセスのことです。 詳細を表示/非表示詳細表示
  4. アプリケーション・ナビゲータで「ViewController」プロジェクトを右クリックし、「New」→「Web Tier」→「JSF/Facelets」→「ADF Task Flow」を選択して「OK」をクリックします。

    New Gallery、Web Tier、JSF/Facelets
  5. Oracle ADFタスク・フローは、アプリケーションでアクティビティ間の制御フローを定義するための再利用可能なユニットです。 詳細を表示/非表示詳細表示
  6. Create ADF Task Flowダイアログ・ボックスに、次の値を入力または選択します。

    フィールドまたはオプション
    File Name orders-task-flow-definition.xml
    Create as Bounded Task Flow 選択する
    Create with Page Fragments 選択しない

    Create Task Flowダイアログ、バウンド・タスク・フロー

  7. Oracle ADFバウンド・タスク・フローは、再利用可能なタスク・フローの特殊なフォームであり、必ずデフォルトのアクティビティを指定します。これはバウンド・タスク・フローの開始時に即座に実行される単一のエントリ・ポイントになります。 詳細を表示/非表示詳細表示
  8. デフォルト値のまま、「OK」をクリックします。

    JDeveloperはデフォルトで、タスク・フロー・ダイアグラマにバウンド・タスク・フローを開きます。

    空白のキャンバス、タスク・フロー・ダイアグラマ
  9. ダイアグラムは最初、空白のキャンバスです。 ダイアグラマが現在のエディタでない場合、エディタ・ウィンドウの一番下にある「Diagram」タブをクリックします。 詳細を表示/非表示詳細表示
  10. コンポーネント・パレットで、ADF Task FlowページのComponentsパネルの Activitiesセクションに対して、ダイアグラム上に「FacespageアイコンViewをドラッグ・アンド・ドロップし、ビュー・アクティビティの名前を変更します。 次のビュー・アクティビティ名を使用して、このページに対して同じ操作を2回繰り返します。

    Browse
    More

    Ordersタスク・フロー・ダイアグラム、ビュー・アクティビティ

  11. コンポーネント・パレットのComponentsパネルのControl Flowセクションで、「緑色の右矢印Control Flow Caseをクリックします。 ダイアグラムで「Browse」ページ・アイコンをクリックしてから、「More」ページ・アイコンをクリックします。 制御フロー・ケース要素の名前をgoMoreに変更します。

  12. コンポーネント・パレットで、「緑色の右矢印Control Flow Caseを再度クリックします。 ダイアグラムで「More」ページ・アイコンをクリックしてから、「Browse」ページ・アイコンをクリックします。 制御フロー・ケース要素の名前をgoBrowseに変更します。

    タスク・フロー・ダイアグラマ
  13. デフォルト・アクティビティはBrowseであり、このことはBrowseページ・アイコンの緑色の背景から分かります。 詳細を表示/非表示詳細表示
  14. ダイアグラムで「Browse」ページ・アイコンをダブルクリックし、Create JSF Pageダイアログを開きます。

  15. ドキュメント・タイプとして「Facelets」を選択し、Browse.jsfというデフォルトのファイル名を受け入れます。

    Create JSF Pageダイアログ

  16. Page Layoutページで「Blank Page」を選択します。 Managed Beanページで、「Do Not Automatically Expose UI Components in a Managed Bean」を選択します。

  17. Create JSF Pageダイアログでは、新しいページのルック・アンド・フィールの一部を任意で定義でき(PageLayoutタブ)、また、ページ上のコンポーネントをマネージドBeanで公開するかどうかを指定できます(Managed Beanタブ)。 詳細を表示/非表示詳細表示
  18. OK」をクリックします。

    JDeveloperはデフォルトでビジュアル・エディタに新しいJSFページを表示します。

    ビジュアル・エディタ、コンポーネント・パレット
  19. 次の2つの構成要素をweb.xmlに追加する必要があります。 詳細を表示/非表示詳細表示
  20. コンポーネント・パレットのADF FacesページのLayoutパネルで、Interactive Containers and Headersセクションから「SplitpaneアイコンPanel Splitterをドラッグしてビジュアル・エディタの空白ページにドロップします。

  21. プロパティ・インスペクタのCommonセクションで、Orientation属性値をverticalに変更します。

    プロパティ・インスペクタ、Panel Splitter

  22. コンポーネント・パレットのLayoutパネルで、「FlowlayoutアイコンPanel Group Layoutを、先ほど追加したPanel Splitterコンポーネントのfirstファセットにドラッグ・アンド・ドロップします。

    ビジュアル・エディタにコンポーネントをドラッグする際、Facet firstという名前の長方形がページに表示されます。これは、ドラッグしているコンポーネントがこのターゲット・コンポーネント内に挿入されることを意味します。

    ビジュアル・エディタ、Firstファセットの挿入

  23. プロパティ・インスペクタで、Layout属性の値をscrollに変更します。

  24. アプリケーション・ナビゲータで、「Data Controls」パネルを開き、「FODAppModuleDataControl」を開きます。

    Data Controlsパネル
  25. Data Controlsパネルは、アプリケーション・ナビゲータの一部であるOracle JDeveloperのデータ・バインディング・ツールです。 詳細を表示/非表示詳細表示
  26. 先ほど追加したPanel Group Layoutコンポーネントに、「OrdersView1」をドラッグ・アンド・ドロップします。 Createコンテキスト・メニューから「Form」→「ADF Read-only Form」を選択します。

    Create  Formコンテキスト・メニュー

  27. Edit Form Fieldsダイアログで、OrderIdOrderDateOrderShippedDateOrderStatusCodeOrderTotalを除くすべてのフィールドを選択します。 「Deleteアイコン」をクリックして、選択したフィールドを削除します。

  28. Include Navigation Controls」と「Include Submit Button」を選択して、「OK」をクリックします。

    Edit Form Fieldsダイアログ

  29. ビジュアル・エディタで「Submit」ボタンを選択します。

    ビジュアル・エディタ、Browseページ、ボタン

  30. プロパティ・インスペクタのCommonセクションで、Textの値をMore Detailsに変更します。 Actionフィールドのドロップダウン・リストから「goMore」を選択します。

    プロパティ・インスペクタ、ボタン

  31. エディタ・ウィンドウで、ドキュメント・タブ「orders-task-flow-definition.xml」を選択して、ダイアグラムを前面に表示します。 「More」ページ・アイコンをダブルクリックして、Create JSF Pageダイアログを開きます。

    タスク・フロー・ダイアグラム

  32. Document Typeで「Facelets」を選択します。 More.jsfというデフォルトの名前はそのままにします。 Page Layoutページで「Blank Page」を選択します。 Managed Beanページで、「Do Not Automatically Expose UI Components in a Managed Bean」を選択します。 「OK」をクリックします。

    Create JSF Pageダイアログ、Moreページ

  33. Data Controlsパネルから「OrdersView1」をドラッグし、ビジュアル・エディタ内の空白ページにドロップします。 「Create」コンテキスト・メニューから「Form」→「ADF Read-only Form」を選択します。 Edit Form Fieldsダイアログで、すべてのデフォルト設定を受け入れて「OK」をクリックします。

  34. コンポーネント・パネルのGeneral Controlsパネルで、「ButtonButtonをStructureウィンドウ内のaf:formにドラッグ・アンド・ドロップします。

    Structureウィンドウ、af:formへの挿入

  35. プロパティ・インスペクタのCommonセクションで、Textの値をReturnに変更します。 Actionフィールドのドロップダウン・リストから「goBrowse」を選択します。

    ビジュアル・エディタで、Moreページは次のように表示されます。

    ビジュアル・エディタ、Moreページ
  36. 両方のページで、コンポーネントはOracle ADFデータ・コントロールの属性にバインドされており、データ・モデルからデータを表示するためのバインディング・オブジェクトを参照するOracle ADFデータ・バインディング式言語(EL)式を含んでいます。 詳細を表示/非表示詳細表示
  37. エディタ・ウィンドウで、ドキュメント・タブ「orders-task-flow-definition.xml」を選択して、ダイアグラムを前面に表示します。 「Browse」ページ・アイコンを右クリックし、「Run」を選択します。

    Create Default Domainダイアログが表示されたら、PasswordフィールドとConfirm Passwordフィールドにデフォルト・パスワード(例:weblogic1)を入力し、「OK」をクリックします。

    ブラウザ内で、Browseページは次のように表示されます。

    ブラウザ・ウィンドウのBrowseページ
  38. JDeveloperはデフォルトで、統合WebLogic Serverという名前の統合サーバーを自動的に構成します。このサーバーは、IDEにバンドルされたOracle WebLogic Serverのユーザー固有のインスタンスを参照します。 詳細を表示/非表示詳細表示
  39. 実行中のアプリケーションのBrowseページで、省略表示されたフォーム上の注文レコードを参照してからMoreページに移動し、現在の注文のすべての詳細情報を表示します。

    ブラウザ・ウィンドウのMoreページ
  40. Moreページには、Browseページで現在表示されているOrders行のすべての詳細情報が表示されます。 詳細を表示/非表示詳細表示
  41. JDeveloperで「赤色のTerminateアイコンTerminateをクリックし、ドロップダウン・メニューから「Integrated WebLogic Server」を選択します。 エディタ・ウィンドウ内のすべてのファイルを閉じます。

ステップ8: JSFページとビュー・オブジェクトのカスタマイズ
  1. メイン・メニューから「Tools 」→「Switch Roles」→「Customization Developer」を選択します。 JDeveloperを再起動するようを指示されたら「Yes」をクリックします。

  2. Customization Developerロールで作業する場合のみ、アプリケーション内のメタデータをカスタマイズできます。 詳細を表示/非表示詳細表示
  3. 必要に応じて、アプリケーション・ナビゲータのドロップダウン・リストから「CustomizeApp」を選択し、カスタマイズ可能なアプリケーションを開きます。 まだ開いていない場合は、メイン・メニューから「View」→「Customization Context」を選択し、Customization Contextウィンドウを開きます。

  4. アプリケーション・ナビゲータでは、カスタマイズ可能なアプリケーションの名前の横に表示されたアイコンが、カスタマイズ不可能なアプリケーションのアイコンとは異なります。 詳細を表示/非表示詳細表示
  5. Customization Contextウィンドウで、siteレイヤーのValueドロップダウン・リストから「Headquarters (headquarters)」を選択します。

    Customization Contextウィンドウ
  6. カスタマイズ可能なアプリケーションには複数のカスタマイズ・レイヤー(industryやsiteなど)を設定できます。 詳細を表示/非表示詳細表示
  7. アプリケーション・ナビゲータで、ViewControllerプロジェクトの「Browse.jsf」をダブルクリックして、ビジュアル・エディタでページを開きます。

  8. Data Controlsパネルで「FODAppModuleDataControl」を開き、次に「OrdersView1」を開きます。

  9. OrderItemsView2」を、ページ上のsecondファセットにドラッグ・アンド・ドロップします。 Createコンテキスト・メニューから「Table」→「ADF Read-only Form」を選択します。

    Createコンテキスト・メニュー、Table

  10. Edit Table Columnsダイアログで「Enable Sorting」を選択し、 「ObjectVersionId」、「LastUpdateDate」、「LastUpdatedBy」、「CreationDate」、「CreatedBy」列を選択します。

    Edit Table Columnsダイアログ

  11. Deleteアイコン」をクリックして選択した列を削除し、「OK」をクリックします。

    ビジュアル・エディタのページは次のように表示されます。

    ビジュアル・エディタ、パネル・コレクションのあるBrowseページ
  12. site/headquartersコンテキストでは、Browseページをカスタマイズし、データバインドされたTableコンポーネントを追加することで、OrderItemsViewビュー・オブジェクトのデータを表示しました。 詳細を表示/非表示詳細表示
  13. Customization Contextウィンドウで、Valueドロップダウン・リストから「Remote Offices (remoteoffices)」を選択します。 プロンプトが表示されたら、「OK」を2回クリックして開いているファイルを閉じ、カスタマイズを保存します。

    Customization Contextウィンドウ、Remote Officesの選択

  14. アプリケーション・ナビゲータの「Model」プロジェクトで「Application Sources」→「oracle.model」を開き、「OrderItemsView」をダブルクリックします。

    アプリケーション・ナビゲータ、Modelプロジェクト

  15. 概要エディタで、左側の「Entity Objects」を選択します。 Availableリストから「ProductsBase.」を選択します。 次に「右矢印」をクリックし、Selectedリストへ移動します。

    概要エディタ、OrderItemsView、Entity Objects

  16. 左側で「Attributes」を選択します。 緑色のプラス記号アイコンドロップダウン・メニューから「Add Attribute From Entity」を選択します。

    Addドロップダウン・メニュー、Add Attribute from Entity

  17. Attributesダイアログで、AvailableリストのProductsBaseの下の「ProductName」を選択します。 次に「右矢印」をクリックし、Selectedリストへ移動します。

    Attributesダイアログ

  18. OK」をクリックしてから「File Save AllSave Allをクリックします。

    OrderItemsViewの概要エディタは次のように表示されます。

    ビュー・オブジェクトの概要エディタ、OrderItemsView
  19. site/remoteofficesコンテキストでは、ProductsBaseエンティティ・オブジェクトからProductName属性を追加することで、モデル・ビュー・オブジェクトOrderItemsViewをカスタマイズしました。 詳細を表示/非表示詳細表示
  20. アプリケーション・ナビゲータで、ViewControllerプロジェクトの「Browse.jsf」をダブルクリックして、ビジュアル・エディタでページを開きます。

    ページの注文フォームの下に、注文項目表が表示されていない点に注意します。このフォームはsite/headquartersカスタマイズ・コンテキスト内に追加されています。

  21. コンポーネント・パレットのADF FacesページのLayoutパネルで、「LayoutアイコンPanel Collectionを、ページ上のsecondファセットにドラッグ・アンド・ドロップします。

  22. Data Controlsパネルで「RefreshアイコンRefreshをクリックします。 「FODAppModuleDataControl」→「OrdersView1」の順に開きます。 先ほど追加したPanel Collectionコンポーネントに、「OrderItemsView2」をドラッグ・アンド・ドロップします。 Createコンテキスト・メニューから「Table」→「ADF Read-only Form」を選択します。

  23. Edit Table Columnsダイアログで「Enable Sorting」を選択し、 「ProductId1」、「ObjectVersionId」、「LastUpdateDate」、「LastUpdatedBy」、「CreationDate」、「CreatedBy」列を選択します。 次に「Deleteアイコン」をクリックして、選択した列を削除します。

    Edit Table Columnsダイアログ、複数列の削除

  24. OK」をクリックします。

    ビジュアル・エディタのページは次のように表示されます。

    ビジュアル・エディタ、Browseページ
  25. site/remoteofficesコンテキストでは、Browseページをカスタマイズし、Panel Collectionコンポーネントを追加してからデータバインドされたTableコンポーネントを追加することで、OrderItemsViewビュー・オブジェクトのデータを表示しました。 詳細を表示/非表示詳細表示
  26. アプリケーション・ナビゲータのViewControllerプロジェクトで、「More.jsf」をダブルクリックして、ビジュアル・エディタでページを開きます。 Structureウィンドウで「f:view」→「af:document」→「af:form」を開きます。 「af:panelFormLayout」が開かれている場合は、これを閉じます。

    Structureウィンドウ、Moreページ

  27. コンポーネント・パレットのLayoutパネルで、Interactive Containers and Headersセクションから「HeaderアイコンShow Detail Headerをドラッグし、Structureウィンドウのaf:formにドロップします。

  28. Structureウィンドウで「af:panelFormLayout」コンポーネントをドラッグし、af:showDetailHeaderにドロップします。

  29. 次に、「af:showDetailHeader」をドラッグし、af:commandButton - Returnの前に移動します。

    Structureウィンドウ、Moreページ

  30. Save AllアイコンSave Allをクリックして作業内容を保存します。

    ビジュアル・エディタでMoreページは次のように表示されます。

    ビジュアル・エディタ、Moreページ
  31. site/remoteofficesコンテキストでは、Show Detail Headerでフォームを囲むことで、Moreページをカスタマイズしました。 詳細を表示/非表示詳細表示
ステップ9: カスタマイズ・レイヤーでのアプリケーションの実行
  1. アプリケーション・ナビゲータで、ViewControllerプロジェクトのWeb ContentPage Flows内にある「orders-task-flow-definition」を右クリックし、「Run」を選択します。

    Browseページには注文フォームの下に注文項目表が表示され、5つの列が含まれます。

    ブラウザ内のBrowseページ
  2. カスタマイズされたメタデータを持つアプリケーションを実行する場合、customization.propertiesのアクティブなレイヤー値に属する適切なカスタマイズが対応するリポジトリからロードされ、アプリケーションのベース・メタデータによりレイヤー化されて、目的とするカスタマイズされた表示用コンテンツを生成します。 詳細を表示/非表示詳細表示
  3. More Details」をクリックして注文フォームに移動し、入力を完了します。

    注文フォームの上にShow Detail Headerは表示されません。

  4. アプリケーションを停止するには、「赤色のTerminateアイコンTerminateをクリックし、ドロップダウン・メニューから「CustomizeApp」を選択します。

  5. ファイル・システムで、アプリケーション・フォルダの/Model/srcフォルダにある「customization.properties」ファイルを開きます(例:C:/JDeveloper/mywork/CustomizeApp/Model/src)。 テキスト・エディタで、site=headquartersの前に#を追加します。 site=remoteofficesから#を削除します。 ファイルを保存します。

  6. remoteofficesに属するカスタマイズ済みコンテンツを表示するには、customization.propertiesファイルの編集後にアプリケーションを再起動します。 詳細を表示/非表示詳細表示
  7. アプリケーション・ナビゲータで「orders-task-flow-definition」を右クリックし、再度、「Run」を選択します。

    Browseページの注文項目表の上部にViewメニューとDetachツールバー項目が表示され、注文項目表には6つの列が含まれています。 6番目の列はProductNameです。これは、ProductsBaseエンティティ・オブジェクトからProductName属性を追加することで、モデル・レイヤーのOrderItemsViewオブジェクトをカスタマイズしたためです。

    ブラウザ内のBrowseページ

  8. More Details」をクリックして注文フォームに移動し、入力を完了します。

    Moreページで、ヘッダーの横にあるアイコンをクリックすると、注文フォームの表示/非表示を切り替えることができます。

    ブラウザ・ウィンドウのMoreページ

  9. JDeveloperで「赤色のTerminateアイコンTerminateをクリックし、ドロップダウン・メニューから「Integrated WebLogic Server」を選択します。

  10. エディタ・ウィンドウ内のすべてのファイルを閉じます。

ステップ10: セッション持続期間に対するユーザー・カスタマイズの有効化

アプリケーションのユーザー・カスタマイズを利用すると、エンドユーザーが実行時に何らかのUIコンポーネントを変更しても、エンドユーザーがアプリケーションを離れるまでの間はこれらの変更を持続できます(例:特定のパネル・ボックス内のコンテンツの非表示)。

  1. メイン・メニューから「Tools」→「Switch Roles」→「Studio Developer」を選択します。 JDeveloperを再起動するようを指示されたら「Yes」をクリックします。

  2. アプリケーション・ナビゲータで「ViewController」をダブルクリックし、Project Propertiesダイアログを開きます。

  3. ADF View」を選択します。 「Enable User Customizations」を選択してから、「For Duration of Session」をクリックします。 「OK」をクリックします。

    Project Propertiesダイアログ、Enable User Customizations
  4. アプリケーションでユーザー・カスタマイズまたは変更の永続性を利用すると、エンドユーザーが個人の好みに合わせて特定のUIコンポーネントを実行時に変更し(表のどの列を表示するかなど)、これらの変更をユーザーのセッション中、またはユーザーがアプリケーションを開くたびに適用されるよう”記憶させる”ことができます。 詳細を表示/非表示詳細表示
  5. アプリケーション・ナビゲータで、ViewControllerプロジェクトのWeb ContentPage Flows内にある「orders-task-flow-definition」を右クリックし、「Run」を選択します。

    : ここまでの例に従っている場合、アプリケーションでシード済みカスタマイズも有効化されているはずです。 したがって、アプリケーションの実行時に、事前にcustomization.propertiesに設定されたアクティブなカスタマイズ・レイヤー値に基づく、作成済みのシード済みカスタマイズが表示されます。

  6. ブラウザ内のBrowseページで、表の列の幅を広げます。 「More Details」をクリックして、Moreページに移動します。 Moreページで「Return」をクリックすると、Browseページに戻ります。

    変更した列の幅は新しい幅のままです。

  7. 多くのOracle ADF Facesコンポーネントに対して、ユーザーは実行時にコンポーネントの表示を変更できます。 詳細を表示/非表示詳細表示
  8. Browseページで表の列を動かしてみたり、 Moreページで、フォームの表示/非表示を切り替えてみたりします。 変更するたびにページを前後に移動します。

    すべての変更は、セッション持続中は維持されます。

  9. JDeveloperで「赤色のTerminateアイコンTerminateをクリックして、アプリケーションにバインドされたインスタンスの「CustomizeApp」をドロップダウン・メニューから選択します。

  10. アプリケーションを再実行します。 事前に変更した内容は表示されません。

  11. JDeveloperで「赤色のTerminateアイコンTerminateをクリックし、ドロップダウン・メニューから「Integrated WebLogic Server」を選択します。

ステップ11: 複数のセッションにわたるユーザー・カスタマイズの有効化

アプリケーションのユーザー・カスタマイズを恒久的に永続化し、エンドユーザーがアプリケーションにログインするたびに有効にすることができます。

  1. 必要に応じて、メイン・メニューから「Tools」→「Switch Roles」→「Studio Developer」を選択します。 JDeveloperを再起動するようを指示されたら「Yes」をクリックします。

  2. アプリケーション・ナビゲータで「ViewController」をダブルクリックし、Project Propertiesダイアログを開きます。

  3. ADF View」を選択します。 次に「Enable User Customizations」と「Across Sessions Using MDS」を選択します。 「OK」をクリックします。

    Project Propertiesダイアログ、Enable User Customizations
  4. ユーザー・カスタマイズを使用するには、Studio Developerロールである必要があります。 詳細を表示/非表示詳細表示
  5. アプリケーション・ナビゲータで「Application Resources」パネルを開きます。 「Descriptors」→「ADF META-INF」を開き、「adf-config.xml」をダブルクリックして概要エディタでファイルを開きます。

    Application Resourcesパネル、adf-config.xml
  6. adf-config.xmlを編集し、次の要素を追加します。 詳細を表示/非表示詳細表示
  7. 概要エディタで「MDS」をクリックしてから「緑色のプラス記号アイコン」をクリックします。

    adf-config.xmlファイルの概要エディタ、MDSページ

  8. Edit Customization Classダイアログにuserccと入力します。 「UserCC (oracle.adf.share.config)」クラスを選択し、「OK」をクリックします。

    Edit Customization Classダイアログ

  9. 概要エディタで「View」をクリックします。 Tag ConfigurationセクションのTag Library URIドロップダウン・リストから「http://xmlns.oracle.com/adf/faces/rich」を選択します。

    adf-config.xmlの概要エディタ、Viewページ
  10. adf-config.xmlの概要エディタでViewページのTag Configurationセクションを使用すると、コードを作成することなく、リポジトリ内で永続化したいコンポーネントと関連属性値を宣言できます。 詳細を表示/非表示詳細表示
  11. Tagsセクションで「緑色のプラス記号アイコン」をクリックし、コンテキスト・メニューから「column」を選択します。

    adf-config.xmlの概要エディタ、タグ追加のコンテキスト・メニュー

  12. 再度、「緑色のプラス記号アイコン」をクリックし、「showDetailHeader」を選択します。

  13. 再度、「緑色のプラス記号アイコン」をクリックし、「panelSplitter」を選択します。

    概要エディタのViewページは次のように表示されます。

    adf-config.xmlの概要エディタ
  14. Save AllアイコンSave Allをクリックして作業内容を保存します。 「adf-config.xml」ファイルを閉じます。

  15. 選択したコンポーネントの属性のうち、暗黙的に永続化される属性値は、デフォルトでOracle MDSリポジトリに永続化されます。 選択を変更するには、「Persist Changes」列のチェック・ボックスを使用します。 詳細を表示/非表示詳細表示
ステップ12: Oracle ADF Securityの設定とユーザーの作成

Oracle MDSをリポジトリとして使用し、複数のセッションにわたってユーザー・カスタマイズを永続化する前に、Oracle ADF Securityを設定し、アプリケーション向けユーザーを作成する必要があります。

  1. メイン・メニューから「Application」→「Secure」→「Configure ADF Security」の順に選択します。

    Application、Secureメニュー
  2. Oracle ADF SecurityフレームワークはOracle Platform Security Servicesアーキテクチャに基づいて構築されており、Fusion Webアプリケーションに認証および認可サービスを提供する際に推奨されるテクノロジーです。 詳細を表示/非表示詳細表示
  3. ウィザードのステップ1:Oracle ADF Securityにおいて、デフォルトで選択されているADF Authentication and Authorizationのままにします。 「Next」をクリックします。

    Oracle ADF Securityウィザードの設定
  4. Oracle ADF Securityは認証機能をWebコンテナに委任します。 もっともよく使用される認証方式は、HTTP Basic認証とフォーム・ベース認証です。 詳細を表示/非表示詳細表示
  5. ステップ2のAuthentication Typeで、Web Projectとして指定されているViewController.jprをそのままにします。 HTTP Basic Authenticationが選択されていることを確認します。 「Next」をクリックします。

    Oracle ADF Securityウィザードの設定

  6. ステップ3のAutomatic Policy Grantsで、No Automatic Grantsが選択されていることを確認します。 「Next」をクリックします。

    Oracle ADF Securityウィザードの設定

  7. ステップ4のAuthenticated Welcomeで、Redirect Upon Successful Authentication選択せずに、 「Finish」をクリックします。

    Oracle ADF Securityウィザードの設定

  8. Security Infrastructure Createdダイアログで、「OK」をクリックします。

    Oracle ADF Securityウィザードの設定
  9. デフォルトのOracle ADF認証および認可オプションとその他すべてのデフォルト値を使用してConfigure ADF Securityウィザードを実行すると、ウィザードによって次の処理が行われます。 詳細を表示/非表示詳細表示
  10. メイン・メニューから「Application」→「Secure」→「Application Roles」の順に選択し、概要エディタで「jazn-data.xml」を開きます。

    jazn-dataのエディタ、Application Roles
  11. jazn-data.xmlファイルは、開発環境ファイルです。 詳細を表示/非表示詳細表示
  12. 緑色のプラス記号アイコンRolesドロップダウン・メニューから「Add New Role」を選択します。

    Rolesドロップダウン・メニュー・オプション

  13. NameフィールドにBasicUserRoleと入力し、[Tab]キーを押します。

    jazn-dataのエディタ、Application Roles

  14. 左側にある「Users」タブをクリックします。

    エディタの右上にあるRealmドロップダウンに、jazn.comが表示されています。

    jazn-dataのエディタ、Users
  15. レルムは、認証されたユーザーおよびロールの集合です。 Oracle ADF Securityでのデフォルト・レルムはjazn.comであり、これはjazn-data.xml内に定義されています。 詳細を表示/非表示詳細表示
  16. Usersセクションで、「緑色のプラス記号アイコンNew Userをクリックします。 Nameフィールドにuser1と入力し、[Tab]キーを押します。 Passwordフィールドにwelcome1と入力し、[Tab]キーを押します。 Confirm Passwordフィールドにパスワードを再入力し、[Tab]キーを押します。

    jazn-dataのエディタ、Users

  17. Application Roles」タブをクリックし、先ほど作成したロール「BasicUserRole」を選択します。 Mappingsセクションの緑色のプラス記号アイコンMapped Users and Rolesドロップダウン・メニューから「Add User」を選択します。

    jazn-dataのエディタ、Mappings

  18. Select Usersダイアログで「user1」を選択し、「OK」をクリックします。

    Select Usersダイアログ

    概要エディタのMappingsセクションにuser1が表示されます。

    jazn-dataのエディタ、user1 mapping

  19. 概要エディタで左側の「Resource Grants」タブをクリックします。

    jazn-dataのエディタ、Resource Grants

  20. Resource Type ドロップダウン・リストから「Task Flow」を選択します。

    Source ProjectフィールドにはViewControllerが設定されています (表示されていない場合、フィールドの横にあるBrowseアイコンをクリックしてダイアログを使用し、選択リストにViewControllerを移動します)。

    jazn-dataのエディタ、Resource Grants

  21. Resources列で、アプリケーションのバウンド・タスク・フロー「orders-task-flow-definition」を選択します。 緑色のプラス記号アイコンGranted Toドロップダウン・メニューから「Add Application Role」を選択します。

    Application Roleの追加

  22. Select Application Rolesダイアログで「BasicUserRole」を選択し、「OK」をクリックします。

    Select Application Rolesダイアログ

  23. 概要エディタのActions列でviewが選択されていることを確認します。 「customize」、「grant」、「personalize」を選択します。

    jazn-dataのエディタ、Resource Grants、Actionsの選択

  24. Save AllアイコンSave Allをクリックして作業内容を保存します。

  25. ここでは、Oracle ADFリソースorders-task-flow-definitionに対してセキュリティ・ポリシーを定義し、タスク・フローにアプリケーション・ロールを付与し、選択されたアプリケーション・ロールを持つユーザーに対して付与するタスク・フロー固有の権限を選びました。 詳細を表示/非表示詳細表示
ステップ13: アプリケーションの実行とパーソナライズ

ここまでに、複数のセッションにわたってユーザー・カスタマイズを有効化し、どのコンポーネントの属性値の変更をOracle MDSに永続化するかを定義して、Oracle ADF Securityを設定したため、ユーザー向けにアプリケーションをパーソナライズする準備が整いました。

  1. アプリケーション・ナビゲータで、ViewControllerプロジェクトのWeb ContentPage Flows内にある「orders-task-flow-definition」を右クリックし、「Run」を選択します。

  2. ここまでの例に従っている場合、複数のセッションにわたってユーザー・カスタマイズを有効化し、シード済みカスタマイズをアプリケーションで有効化しているはずです。	詳細を表示/非表示詳細表示
  3. Authentication Requiredダイアログが表示されたら、ユーザー名とパスワードにそれぞれuser1welcome1を入力します。 「OK」をクリックします。

    Authentication Requiredダイアログ

  4. Browseページで、ProductName列の幅を広げます。 次に、「ProductId」列を動かし、ProductName列の前に配置します。 スプリッタ・バーを下に動かします。 「More Details」をクリックして、Moreページに移動します。 フォームのコンテンツを非表示にしたら、 「Return」をクリックして、Browseページに戻ります。

  5. 表の列の幅や、表に表示される列の順序といった永続化コンポーネント属性を変更することで、アプリケーションをパーソナライズします。 詳細を表示/非表示詳細表示
  6. アプリケーションを停止し、「orders-task-flow-definition」を右クリックし、再度「Run」を選択します。

    Browseページには、前回実施したすべての変更が維持されています。 Moreページに移動すると、フォームのコンテンツが非表示になっています。

  7. メタデータ変更の永続性ファイルを開くと、実行時にページをパーソナライズした際にJDeveloperによって作成された要素が確認できます。 詳細を表示/非表示詳細表示
まとめ
このチュートリアルではカスタマイズ可能なFusion Webアプリケーションを作成し、このアプリケーションをパーソナライズしました。 このチュートリアルで学習した内容は、以下のとおりです。 カスタマイズ可能なアプリケーションの開発について、詳しくは次のWebサイトを参照してください。

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

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



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