Worklist User Portal の使用

     前  次    新しいウィンドウで目次を開く     
ここから内容

Worklist User Portal のカスタマイズ

ワークリストには、タスクと対話するための Web ベースのユーザ ポータルとして、Worklist User Portal が用意されています。このポータルを使用して、ユーザはタスクの詳細を表示したり、タスクをライフサイクルに沿って進めていくためのアクションを実行したりできます。タスク プランの各ステップではユニークなアクションを定義できるため、そのステップ独自の考慮事項をユーザに提示できます。

Worklist User Portal は、ステップとアクションのメタデータを使用して各ステップで使用できるインタフェースを表示する、多目的ユーザ インタフェースです。特定のステップとアクションを対象としたユーザ インタフェースは、他のステップとアクションのユーザ インタフェースとは異なります。これは、それぞれのメタデータが異なるためです。たとえば、特定のステップでユーザ インタフェースを表示すると、Worklist User Portal は、タスク プランの設計者がそのステップに定義した説明とアクションを表示します。Worklist User Portal に含まれるのは、ユーザ インタフェースを表示したときに提供されるこれらの情報だけであり、そのステップに関してユーザが求める可能性のあるより細かなニーズ (アクションの必須プロパティの値を入力するために必要な概要情報や、プロパティの結果値を取得するために各タスク プロパティに適用できる計算など) に対応することはできません。

前述の例のように、特定のステップまたはそのステップで実行できるアクションで、カスタマイズされたユーザ インタフェースが必要になる場合があります。ワークリストでは、Web 開発者が特定のステップまたはタスク プラン全体で使用するカスタム Web ユーザ インタフェースを設計できるようにすることで、この拡張性のニーズに対応しています。このカスタム Web ユーザ インタフェースは、カスタム タスク ユーザ インタフェースと呼ばれます。カスタム タスク UI により、Web 開発者は必要な場合にのみカスタム ページをデザインし、それ以外の場合はデフォルトの Worklist User Portal の機能を使用できます。これにより、Worklist User Portal のインタフェースを全面的に置き換える必要なく、ユーザ ポータルのカスタマイズに徐々に投資できます。

タスク プランの特定のステップだけを対象とするカスタム インタフェースを設計することも、タスク プラン全体を対象とするカスタム インタフェースを設計することもできます。

このドキュメントでは、次の情報について説明します。

一般的なワークフロー

カスタム タスク ユーザ インタフェースを作成する際の一般的なワークフローは次のとおりです。

  1. 登録するカスタム タスク UI の対象となるステップでユーザに表示する Web ページのモデルを作成します。ページ間のフロー、およびページ間を接続するリンクとボタンを定義します。また、対象のステップで実行できるステップ アクションを表すリンクまたはボタンも定義します。
  2. Worklist User Portal をホストする Web アプリケーションで、Beehive NetUI ページ フロー コントローラを作成します。
  3. 手順 1 でモデル化した各ページのデータ構造 (フォーム Bean) を定義します。
  4. 手順 2 のページ フロー コントローラのアクションを定義します。これらのアクションは、ページ間の遷移と実行できるステップ アクションを表します。
  5. 手順 1 で定義した Web ページ モデルの JSP ページを定義します。手順 3 でページに定義したフォーム Bean に各ページをバインドし、手順 4 で定義したアクションを参照します。

サンプル シナリオについては、『チュートリアル : Worklist アプリケーションの構築』の「カスタマイズされたユーザ インタフェースの追加」を参照してください

カスタム タスク UI のページ フローの実装

カスタム タスク UI のページ フローは、次の 2 つの方法のいずれかで実装できます。

注意 : http://edocs.bea.com/wli/docs92/worklist.javadoc/index.html

タスク UI のページ フローの要件

TaskUIPageFlowController を使用してカスタム コントローラを拡張しない場合は、タスク UI の PageFlowController の以下の要件を手動で満たす必要があります。これらの要件により、呼び出しタスク ワークのページ フローをタスク UI のページ フローで呼び出し、呼び出し側が実装済みであることが保証されているアクションを使用してタスク UI のページ フローを呼び出しタスク ワークのページ フローに戻すことができます。

ページ フローの作成

カスタマイズしたユーザ インタフェース ページのルック アンド フィールを決定したら、Beehive ページ フローを作成して、これらのページのロジックと使用方法を定義する必要があります。ページ フローでは、アクションを定義できるユーザ インタフェースを設計できます。ページ フローは、カスタム タスク インタフェースの Web ページのアクションとナビゲーションを制御します。

ページ フローを作成するには、以下の手順を実行します。

  1. [パッケージ・エクスプローラー] ペインで、<Web プロジェクト名>\src フォルダを右クリックし、[新規Arrow symbolその他] を選択します。[ウィザードを選択] ダイアログが表示されます。
  2. Web プロジェクトは、システムのユーザ インタフェースとして機能する、ワークリストの Web アプリケーションと対応しています。詳細については、『Worklist の使い方』の「ワークリスト タスク プランの作成および管理」にある「Worklist アプリケーション」を参照してください。

    図 3-1 ページ フローの作成


    ページ フローの作成

  3. [Web] の横の ページ フローの作成 をクリックし、[ページ フロー] を選択します。[次へ] をクリックします。[新しいページ フロー] ダイアログが表示されます。
  4. 図 3-2 ページ フローの詳細の指定


    ページ フローの詳細の指定

  5. ページ フロー フォルダの名前を入力します
  6. ページ フローの親フォルダを指定します。
  7. ページ フロー コントローラの名前を入力します。
  8. [これをネストされたページ フローにする] チェック ボックスをオンにして、[終了] をクリックします
  9. [関連付けられたパースペクティブを開きますか?] ダイアログが表示されます。[はい] をクリックします。
  10. 図 3-3 関連付けられたパースペクティブの表示


    関連付けられたパースペクティブの表示

    [ページ フロー エディタ] が表示されます。

    図 3-4 ページ フロー エディタ


    ページ フロー エディタ

  11. <ページ フロー コントローラ>.java ファイル内の以下のコードを、
  12. @Jpf.Controller(nested = true, simpleActions = { @Jpf.SimpleAction(name = "begin", path = "index.jsp") })
    public class <page flow controller> extends PageFlowController

    以下のコードに置き換えます。

    @Jpf.Controller(nested = true)
    public class <page flow controller> extends com.bea.wli.worklist.TaskUIPageFlowController {
    注意 : この変更によって、「アクション "begin" が見つかりませんでした。」というコンパイル エラーが発生します。begin アクションを定義すると、このエラーは解決します。begin アクションについては、「ページ フローのアクションの定義」を参照してください。[問題] ビューでエラー、警告、および情報メッセージのリストを表示するには、[ウィンドウArrow symbolビューの表示Arrow symbol問題] を選択します。

フォーム Bean の作成

カスタム タスク UI で必要な各 Web ページのフォーム Bean を作成する必要があります。これらのフォーム Bean は、ページ フロー コントローラの Java 内部クラスとして表すことができます。また、スタンドアロン Java クラスであってもかまいません。フォーム Bean では、JDK Javadoc の説明に従って java.io.Serializable を実装する必要があります。

フォーム Bean を作成するには、以下の手順を実行します。

  1. [ページ フロー エクスプローラ] で、[フォーム Bean] を右クリックし、[新しい内部クラス フォーム Bean] を選択します。
  2. 図 3-5 新しい内部クラス フォーム Bean


    新しい内部クラス フォーム Bean

  3. NewFormBean というデフォルト名の付いた新しいフォーム Bean が作成されます。
  4. NewFormBean を右クリックArrow symbol[名前の変更] を選択して、フォーム Bean にわかりやすい名前を付けます。
  5. 手順 1 から手順 3 を繰り返して、カスタム タスク UI に必要なすべての Web ページのフォーム Bean を作成します。

プロパティのセッター メソッドとゲッター メソッドの生成

フォーム Bean は、カスタム タスク UI の Web ページで実行するデータ処理の基盤となります。フォーム Bean は、多数のプロパティを持つ JavaBean オブジェクトです。これらの各プロパティのセッター メソッドとゲッター メソッドを生成する必要があります。

セッター メソッドとゲッター メソッドを生成するには、以下の手順を実行します。

  1. [ページ フロー エクスプローラ] ビューで、[フォーム Bean] をダブルクリックします。
  2. フォーム Bean で変数を宣言します。
  3. 変数を選択し、右クリックします。[ソースArrow symbolGetter および Setter の生成] を選択します。[Getter および Setter の生成] ダイアログが表示されます。
  4. 図 3-6 ゲッター メソッドとセッター メソッドの生成


    ゲッター メソッドとセッター メソッドの生成

  5. 変数を選択し、[OK] をクリックします。
  6. カスタム タスク UI に必要なすべてのフォーム Bean のプロパティについて、上記の手順を繰り返します。

これで、すべてのプロパティのゲッター メソッドとセッター メソッドが生成されました。

ページ フローのアクションの定義

カスタム タスク インタフェースの Web ページ間を移動し、タスクの適切なアクションを実行するために、ページ フローのアクションを定義します。ページ フローのアクションは、ページ フロー コントローラのメソッドです。これらのメソッドにより、インタフェース内でのナビゲーションが可能になります。また、結果を計算し、必要な Web ページにフォーム Bean を渡すこともできます。

フォーム Bean は、アクションから Web ページに渡されて、ページの表示フィールドに設定されます。Web ページが処理のためにサーバに送信されると、これらのフィールド値が収集され、フォーム Bean のプロパティに配置されます。

フォーム Bean をアクション メソッドへのパラメータとして定義すると、アクション メソッドは、Web ページの [送信] ボタンをクリックすることによって取得されたフォーム Bean を受け入れることができます。また、アクション メソッドは、アクションの転送先のターゲット Web ページにフォーム Bean を渡すこともできます。これは、フォーム Bean オブジェクトが設定された Forward オブジェクトを渡すことによって実行されます。

カスタム タスク インタフェースに必要な設計済みのすべてのアクションのページ フロー アクションを定義します。また、ページ フロー コントローラを初期化するための begin アクションを定義することも必要です。begin アクションは、このコントローラを初期化し、スーパークラス ヘルパー (beginActionhelper) を呼び出して、タスク コンテキスト、タスクとアクションの標準フォーム Bean、およびプロパティ編集サポートを初期化します。

注意 : begin() でスーパークラス ヘルパーを呼び出す必要があるのは、カスタム ページ コントローラで TaskUIPageFlowController を拡張した場合のみです。

アクション メソッドとフォーム Bean

アクション メソッドはフォーム Bean を受け入れ、フォーム Bean を使用してページに転送できます。Web ページを送信し、[送信] に関連付けられたアクションの呼び出し中に、NetUI フレームワークは、デフォルトで (フォーム Bean クラスの引数なしのパブリック コンストラクタを使用して) 新しいフォーム Bean インスタンスを作成します。その後、この新しい Bean インスタンスに、Java Reflection を介して、送信された Web ページ フォームのデータ バインディング タグからのデータが入力されます。

このプロセスには、いくつかの制限があります。たとえば、Web ページの JSP タグで表されていない一時的な非表示の情報がフォーム Bean に含まれている場合、アクションに実際に渡されるフォーム Bean (NetUI フレームワークによって作成された Bean) には、この情報は含まれません。

アクション メソッドが呼び出されるたびに新しい Bean を作成することから生じるオーバーヘッドと起こりうる動作上の問題を回避するには、action メソッドの @Jpf.Action アノテーションに useFormBean フィールドを指定します。これにより、ページ フロー コントローラの状態にフォーム Bean の単一のコピーを保持できるため、アクション メソッドは新しいフォーム Bean オブジェクトを作成するのではなく、この状態からオブジェクトをフェッチするだけになります。

ワークリスト プロパティ エディタとアクション

ワークリストには、カスタム タスク UI のプロパティを編集するための組み込みサポートが用意されています。このサポートには、JSP タグ、デフォルト エディタ、基本 TaskUIPageFlowController のヘルパー メソッドなどがあります。これらの機能により、用意された UI を使用して次のタイプのプロパティを容易に編集できます。

さらに、プロパティ エディタの機能により、カスタム タスク UI を使用するユーザは、インライン エディタ (簡単なフォーム フィールド) と、上記の複雑なタイプに対応するスタンドアロン エディタを使用して、プロパティを容易に編集できます。この機能によって、面倒なプロパティの編集が非常に容易になります。

タスクのユーザ プロパティ エディタを操作するには、カスタム ページ フロー コントローラで以下のアクションを作成します。

ページ フローのアクションの作成

ページ フローのアクションを作成するには、以下の手順を実行します。

  1. [ページ フロー エクスプローラ] ビューで、[アクション] を右クリックし、[新しいアクション] を選択します。[新しいアクション] ダイアログが表示されます。
  2. 図 3-7 新しいアクションの作成


    新しいアクションの作成

  3. 既存のアクション テンプレートを選択します。たとえば、空のアクション メソッドを作成するには、[基本のメソッド アクション] を作成します。
  4. アクションの名前を入力します。
  5. このアクションに関連付けるフォーム Bean を指定します。必要に応じて、[追加] をクリックしてフォーム Bean を選択します。
  6. 必要に応じて、このアクションの転送先となるフォーム Bean を指定します。
  7. [終了] をクリックします。
  8. ページ フローに必要なすべてのアクションについて、上記の手順を繰り返します。

ページ フローのすべてのアクションが作成されます。コードは次のようになります。

	@Jpf.Action()
	public Forward newAction1(test_pageflow.Test_pageflowController.NewFormBean form) {
		Forward forward = new Forward("success");
		return forward;
	}

JSP ページの定義

設計したインタフェース モデルに基づいて、フォーム Bean からデータを読み込んだり、フォーム Bean にデータを書き込んだりできる Web フォームを表示するための Beehive NetUI データ バインディング JSP タグを使用して、カスタム タスク UI の JSP ページを定義します。これらのタグを使用することで、データ駆動型の JSP ページを記述するプロセスが大幅に簡素化されます。

JSP ファイルの作成

ページ フロー パースペクティブで JSP ファイルを作成するには、以下の手順を実行します。

  1. [ページ フロー エクスプローラ] で、[ページ] を右クリックし、[新しい JSP ページ] を選択します。
  2. 注意 : ページ フロー コントローラに、使用できない JSP への参照が存在する場合、[ページ フロー エクスプローラ] ビューの [ページ] ノードの下にグレー表示された JSP ページが自動的に一覧表示されます。これらの JSP を右クリックし、[作成] を選択すると、JSP ファイルを作成できます。
  3. JSP ファイルを開き、以下のコードを表示します。
  4. <%@ page language="java" contentType="text/html;charset=UTF-8"%>
    <%@taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%>
    <%@taglib uri="http://beehive.apache.org/netui/tags-databinding-1.0" prefix="netui-data"%>
    <%@taglib uri="http://beehive.apache.org/netui/tags-template-1.0" prefix="netui-template"%>
    <netui:html>
        <head>
            <netui:base/>
        </head>
        <netui:body>
           <p>Beehive NetUI JavaServer Page - ${pageContext.request.requestURI}</p>
        
        </netui:body>
    </netui:html>
  5. JSP ページを作成するには、まず JSP から以下のコードを削除します。
  6. <p>Beehive NetUI JavaServer Page - ${pageContext.request.requestURI}</p>

    次に、<netui:body> タグと </netui:body> タグの間にテキスト フォームを挿入します。

  7. Web ページに表示するインタフェースを設計するには、[JSP デザイン パレット] ビューの [NetUI] フォルダから必要な要素を JSP にドラッグ アンド ドロップします。
  8. 図 3-8 JSP デザイン パレット


    JSP デザイン パレット

  9. NetUI フォーム要素を使用して、必要なすべてのアクションのフォームをデザインします。
  10. NetUI ボタン要素を使用して、フォーム間のナビゲーションを可能にし、タスクのアクションを実行できるようにします。
  11. カスタム タスク UI に必要なすべての JSP ページについて、上記の手順を繰り返します。

JSP ページが作成されます。

カスタム タスク UI の登録

タスク プランのステップまたはタスク プラン全体のカスタム タスク UI を設計したら、カスタム タスク UI を登録する必要があります。カスタム タスク UI を登録するには、マッピング エントリを <Web プロジェクト名>/WebContent/WEB-INF/task-ui-registry.xml レジストリ ファイルに追加する必要があります。

注意 : Web プロジェクトは、システムのユーザ インタフェースとして機能する、ワークリストの Web アプリケーションと対応しています。詳細については、『Worklist の使い方』の「ワークリスト タスク プランの作成および管理」にある「Worklist アプリケーション」を参照してください。

この XML レジストリ ファイルは、ワークリスト タスク UI レジストリのスキーマに関連付けられ、このスキーマが Workshop に登録されます。

このファイルを開いて編集します。[ソース] タブでのこの XML ファイルの初期内容は次のようになります。

<task-ui-registry xmlns="http://www.bea.com/wli/worklist/taskuiregistry">
</task-ui-registry>

[デザイン] タブで、ツリー ビューのノードを右クリックすると、そのノードでアクションを実行できます。ノードの削除および子ノードの追加が行えます。

カスタム タスク UI を登録するには、以下の情報が必要です。

注意 : タスク プランのステップではなく、タスク プラン全体を対象に設計されたカスタム タスク UI を登録する場合には、ステップ名は不要です。

task-ui-registry.xml を編集するには、[パッケージ・エクスプローラー] ビューに切り替えてから、エディタの [デザイン] タブで以下の手順を実行します。

  1. [パッケージ・エクスプローラー] で、<Web プロジェクト名>/WebContent/WEB-INF/ フォルダに移動し、task-ui-registry.xml を選択します。
  2. 注意 : Web プロジェクトは、システムのユーザ インタフェースとして機能する、ワークリストの Web アプリケーションと対応しています。詳細については、『Worklist の使い方』の「ワークリスト タスク プランの作成および管理」にある「Worklist アプリケーション」を参照してください。
  3. ファイルをダブルクリックして、XML エディタでファイルを開きます。
  4. エディタArrow symboltask-ui-registry.xml を右クリックArrow symbol[子の追加] を選択します。作成したカスタム タスク UI がステップとタスク プラン全体のどちらを対象としているかに応じて、[step-override] または [task-plan override] を選択します。これにより、新しいオーバーライド要素がルート要素の下に追加されます。
  5. 図 3-9 子オーバーライド要素の追加


    子オーバーライド要素の追加

  6. 新しく追加した [step-override] 要素または [task-plan-override] 要素を展開し、タスク プラン ID、ステップ名、およびカスタム タスク UI の URI を指定します。
  7. 注意 : タスク プランのステップではなく、タスク プラン全体を対象に設計されたカスタム タスク UI を登録する場合には、ステップ名は不要です。
  8. これらの各要素について、右側の値カラムをクリックし、デフォルト値を実際の値で置き換えます。
  9. 図 3-10 レジストリ ファイルのマップ エントリ


    レジストリ ファイルのマップ エントリ

カスタム タスク UI のデプロイ

カスタム タスク ユーザ インタフェースをデプロイするには、以下の手順を実行します。

  1. [パッケージ・エクスプローラー] ビューで、<Web プロジェクト名> を選択して右クリックします
  2. 注意 : Web プロジェクトは、システムのユーザ インタフェースとして機能する、ワークリストの Web アプリケーションと対応しています。詳細については、『Worklist の使い方』の「ワークリスト タスク プランの作成および管理」にある「Worklist アプリケーション」を参照してください。
  3. [実行Arrow symbolサーバーで実行] をクリックします。[新規サーバーの定義] ダイアログが表示されます。
  4. デフォルトの設定をそのまま使用し、[次へ] をクリックします。
  5. 必要なドメインを参照して選択します
  6. [終了] をクリックします。

カスタム タスク UI がサーバにデプロイされます。


  ページの先頭       前  次