BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

開発者ガイド

 前 次 目次 索引 PDFで表示  

ポータル ナビゲーションのセットアップ

ポータルのナビゲーションは Webflow を用いて実現されます。この Webflow は、Web アプリケーションの構築を支援し、プレゼンテーション ロジックと基礎となるビジネス プロセスとを常に分離しておくのに役立つよう設計されたメカニズムです。訪問者が、ページ上で [次へ] をクリックするといったイベントを発生させると、Webflow は訪問者に次に表示するコンテンツを決定します。Webflow はまた、訪問者の操作の適切なタイミングを捉えて、Pipeline という定義済みの専用コンポーネントを呼び出すこともあります。Pipeline は、データの検証やバックエンド ビジネス プロセスの実行に用いられます。

Web サイトの訪問者に対するページの表示順序は Webflow の XML コンフィグレーション ファイルによって一元的に指定されるので、Webflow メカニズムを使用すると、Web サイトのフローを作成および変更するのに必要な労力を軽減することが可能です。

この章では、以下の内容について説明します。

 


Webflow の作成

この節では、必要なノードを Webflow に追加し、それらのノードを遷移で互いに接続することで、基本的な Webflow を作成する方法を示します。

Webflow を作成するには、以下の手順を実行する必要があります。

これらの手順を実行すれば、基本的な Webflow ができあがります。そのあとは、以降の節で示す作業を行うことで、Webflow 作成プロセスが完了します。

注意: この章で説明している手順では、Webflow および Pipeline の特定の作成順序を念頭に置いていますが、これは説明の都合上そうしているだけであり、必ずそうしなければならないわけではありません。各自の開発ニーズに最も合う順序であれば何でもかまいません。たとえば、Webflow を実際に作成する前にまずその Webflow の Pipeline を作成したほうがよい場合もあるでしょう。ただし、Webflow が存在しないうちは、Webflow をアプリケーションに同期化することはできないので、くれぐれも注意してください。

Webflow コンポーネントの概要

Webflow の作成と実装を試みる前に、後述の手順で使用する Webflow コンポーネントのいくつかを理解しておくことが必要です。

ノードと遷移

ノードは、Webflow 内のある状態の機能をグラフィカルに表現したものです。ノード タイプに応じて、発生する可能性のある定義済みイベント(訪問者による Web ページ上のリンクのクリックなど)が多数用意されています。個々のイベントが発生すると、Webflow はどの後続ノード を呼び出してフローを続行するかを決定します。このプロセスを遷移と呼び、その概要を図 9-1 に示します。

図9-1 一般的な Webflow 遷移


 

図 9-1 に示されているとおり、ノードは、遷移内の位置に応じて、起点ノードまたは遷移先ノードと呼ばれます。

ノードのタイプ

ノードの主要なタイプには、プレゼンテーション ノードとプロセッサ ノードの 2 つがあります。プレゼンテーション ノードとプロセッサ ノードはどちらも、Webflow 内で起点ノードまたは遷移先ノードとして使用することができます。

プレゼンテーション ノード

プレゼンテーション ノードは、Web アプリケーションを操作している人に Webflow が何かを表示する状態を表します。プレゼンテーションの形式には、以下のものがあります。

また、拡張(カスタム)プレゼンテーション ノードを作成して Webflow 内で使用することも可能です。拡張プレゼンテーション ノードの詳細については、拡張プレゼンテーション ノードの作成方法を参照してください。

プロセッサ ノード

プロセッサ ノード は、Webflow が専用コンポーネントを呼び出して、フォーム検証や、サイトのプレゼンテーションを駆動するバックエンド ビジネス ロジックなどの処理を行う状態を表します。利用可能なプロセッサ ノードは、表9-1 のとおりです。

表9-1 Webflow プロセッサ ノードのタイプ

プロセッサ ノードのタイプ

解説

入力プロセッサ

入力プロセッサは定義済みの専用 Java クラスであり、Webflow メカニズムから呼び出されて、より複雑なタスクを実行する。入力プロセッサは通常、HTML フォーム データの検証や、Web ページ内での条件分岐の実現に用いられる。たとえば、入力された日付の形式が正しいかどうかを確かめるコードを、フォーム フィールドを表示するのと同じ JSP 内に埋め込むのでなく、入力プロセッサに入れておくことができる。入力プロセッサは Web アプリケーションに固有のロジックを含んでおり、そのため Web アプリケーションのコンテナによってロードされる。

Pipeline

Pipeline もプロセッサ ノードの一種で、Webflow から呼び出されることがある。Pipeline はビジネス プロセスに関連する特定タスクの実行を開始する。トランザクション対応の Pipeline とトランザクション非対応の Pipeline がある。たとえば、訪問者がサイト上の別のページに移動しようとしているが、その前に訪問者の情報をデータベースに保存しておきたいという場合には、Pipeline を使用することができる。Pipeline には、より大規模なエンタープライズ アプリケーション内の複数の Web アプリケーションに適用される可能性のあるビジネス ロジックが含まれており、そのため Pipeline は Enterprise JavaBeans(EJB)コンテナによってロードされる。

Pipeline はすべて、個々の Pipeline コンポーネントの集まりであり、それらのコンポーネントは Java オブジェクトやステートレス セッション Enterprise JavaBeans(EJB)として実装することができる。Pipeline コンポーネントは Pipeline の一部で、基礎となるビジネス ロジックに関連付けられているタスクを実際に遂行するものである。これらのタスクが複雑な場合には、Pipeline コンポーネントは外部サービス(他のビジネス オブジェクト)を呼び出すこともある。

拡張プロセッサ ノード

Webflow で使用するための拡張(カスタム)プロセッサ ノード。拡張プロセッサ ノードの詳細については、拡張プレゼンテーション ノードと拡張プロセッサ ノードの作成による Webflow の拡張を参照のこと。


 

ワイルドカード ノード

Webflow が特定のプレゼンテーション ノードまたはプロセッサ ノードを見つけて遷移を完了できない場合には、ワイルドカード プレゼンテーション ノードまたはワイルドカード プロセッサ ノードを検索して遷移先ノードとして使用します。そのため、ワイルドカード プレゼンテーション ノードとワイルドカード プロセッサ ノードは、Web アプリケーションのデフォルトの動作を実装しています。言い換えれば、ワイルドカード ノードを用いることで、共通の機能を抽出して Webflow 内の 1 箇所にまとめておくことができます。ワイルドカード ノードを用いるのは、遷移先ノードをまだ Webflow に明示的に定義していない場合に限ります。ネームスペースごとに、ワイルドカード プレゼンテーション ノードとワイルドカード プロセッサ ノードを 1 つずつ用意することができます。

ワイルドカード ノードの一例として、[ヘルプ] というリンク(どのページにも存在する)をクリックすると、ヘルプ情報が記載されている JSP に常に移動するようにしたい場合を考えてみましょう。それには、ワイルドカード プレゼンテーション起点を使用することができます。さらに、プロセッサ ノードから返された例外が、そのエラーに関する詳細な情報が記載された JSP に常に遷移するようにしたい場合もあります。これらの状況はどちらも、ワイルドカード プロセッサ ノードで処理することができます。

注意: Webflow がワイルドカード ノードを検索する必要がある場合には、必要な処理が増えるため、パフォーマンスに少し影響が出ることがあります。

遷移のタイプ

遷移には、イベント遷移と例外遷移の 2 種類があります。

遷移の原因となるイベントの詳細については、イベントのタイプを参照してください。

イベントのタイプ

Webflow 内の各ノードはイベントに応答し、その結果、遷移(すなわち、起点ノードから遷移先ノードへの移動)が発生します。ただし、ノードが応答するイベントのタイプは、ノードがプレゼンテーション ノードかプロセッサ ノードかによって異なります。

プレゼンテーション ノードは以下のイベントに応答します。

すなわち、Web サイトの訪問者がリンクやボタンをクリックすると、Webflow はそのイベントに応答します。応答として考えられるのは、別のプレゼンテーション ノード(JSP など)への遷移や、プロセッサ ノード(訪問者から入力されたフォーム データを検証する入力プロセッサなど)への遷移でしょう。

一方、プロセッサ ノードは以下のイベントに応答します。

例外が発生するのは、入力プロセッサや Pipeline が正常に実行されず、エラー状態を示す場合です。そうでない場合には、これらのプロセッサ ノードはオブジェクトを返し、Webflow ではそれを用いて処理を続行できます。

注意: ポータル アプリケーションで用いられる Webflow では、上記より多くのイベントに応答する場合があります。

Webflow エディタのツールとボタン

Webflow の作成には、図 9-4 に示すような Webflow エディタを使用します。ほとんどの作業では、ツール ボタンかコマンド ボタンのどちらかを選択する必要があります。利用可能なツール ボタンについては表9-2 で、コマンド ボタンについては表9-3 で、それぞれ説明します。

表9-2 Webflow エディタのツール

ツール

機能

解説


 

[選択ツール]

ノード、イベント遷移、および例外遷移の選択や移動に用いる。遷移へのエルボーの追加にも用いる。Webflow エディタのデフォルト ツール。

注意: このツールをいったん選択すると、別のツールを選択するまで、選択された状態のままになる。


 

[イベント ツール]

2 つのノード間のイベント遷移や、自己参照イベント遷移を追加するのに用いる。

注意: このツールをいったん選択すると、別のツールを選択するまで、選択された状態のままになる。


 

[例外ツール]

2 つのノード間の例外遷移や、自己参照例外遷移を追加するのに用いる。

注意: このツールをいったん選択すると、別のツールを選択するまで、選択された状態のままになる。


 

[プレゼンテーション ノード]

エディタ キャンバスに新しいプレゼンテーション ノードを追加するのに用いる。


 

[ワイルドカード プレゼンテーション ノード]

エディタ キャンバスに新しいワイルドカード プレゼンテーション ノードを追加するのに用いる。


 

[入力プロセッサ ノード]

エディタ キャンバスに新しい入力プロセッサ ノードを追加するのに用いる。


 

[Pipeline ノード]

エディタ キャンバスに新しい Pipeline ノードを追加するのに用いる。


 

[ワイルドカード プロセッサ ノード]

エディタ キャンバスに新しいワイルドカード プロセッサ ノードを追加するのに用いる。


 

[拡張(カスタム)プロセッサ ノード]

エディタ キャンバスに新しい拡張(カスタム)プロセッサ ノードを追加するのに用いる。

注意: このツールは、Webflow エディタが webflow-extensions.wfx ファイルに新しいノードを検出すると使用可能になる。


 

[プロキシ ノード]

エディタ キャンバスにプロキシ ノードを追加するのに用いる。別のネームスペースに定義されているノードを参照するときには、必ずプロキシ ノードを作成しなければならない。


 

表9-3 Webflow エディタのコマンド ボタン

ツール

機能

解説

キーボード ショートカット


 

[印刷] ボタン

Webflow ネームスペースまたは Pipeline の全体をプリンタに出力するのに用いる。

〔Ctrl〕+〔P〕


 

[削除] ボタン

選択されている Webflow コンポーネントを削除する。このボタンは、Webflow コンポーネントが選択されると使用可能になる。

〔Delete〕


 

[全体表示] ボタン

Webflow ネームスペースまたは Pipeline の全体を表示するのに用いる。

〔Ctrl〕+〔Z〕


 

[選択したノードを検証] ボタン

選択されているノードに対して Webflow 検証機能を実行するのに用いる。このボタンは、Webflow コンポーネントが選択されると使用可能になる。

〔Ctrl〕+〔V〕


 

[すべてを検証] ボタン

Webflow ネームスペース全体に対して Webflow エディタの検証機能を実行するか、Pipeline 全体に対して Pipeline エディタの検証機能を実行するのに用いる。

〔Alt〕+〔V〕


 

[コンフィグレーション エラー ページ名のセットアップ] ボタン

コンフィグレーション エラー ページの名前とパスを指定するのに用いる。

注意: Webflow エディタでのみ利用可能。

なし


 

[Pipeline コンポーネント エディタを起動] ボタン

Pipeline コンポーネント エディタを開く。このエディタを用いて、Pipeline コンポーネントを管理できる。

注意: Pipeline エディタでのみ利用可能。

なし


 

ステップ 1: Webflow を作成する

Webflow を作成するには、以下の手順に従います。

注意: この手順では、以下の事がらを前提としています。

  1. 図 9-2 に示すように、[新規作成] アイコンをクリックしてドロップダウン メニューを開き、[Webflow/Pipeline] を選択します。

    図9-2 E-Business Control Center で [新規作成] ドロップダウン メニューを開く


     

    [Webflow/Pipeline の新規作成] ダイアログ ボックスが表示されます。

    図9-3 [Webflow/Pipeline の新規作成] ダイアログ ボックス


     


     

  2. [新しい Webflow] が選択されていることを確認してから [Webapp:] ドロップダウン メニューを開き、Webflow の作成先となる Web アプリケーションを選択します(この値はすでに選択されているかもしれません)。この操作で Webflow のスコープ(有効範囲)がその Web アプリケーションに限定されるので、Web アプリケーションの選択は重要です。

  3. [ネームスペース] 編集ボックスにネームスペース名を入力します。ネームスペースは、単一の Web アプリケーションで複数の Webflowを使用しても名前の衝突が発生しないように、Webflow のスコープを限定するのに用いられます。各 Web アプリケーションには複数のネームスペースが存在できることに注意してください。

  4. [OK] をクリックします。

    E-Business Control Center の右ペインに Webflow エディタが表示されます。図 9-4 に例を示します。

    図9-4 Webflow エディタ


     

ステップ 2: Webflow キャンバスにノードを追加する

Webflow は 2 種類のノードから成ります。すなわち、プレゼンテーション ノードとプロセッサ ノードです。プレゼンテーション ノードとプロセッサ ノードはそれぞれ、Webflow 内の起点ノードまたは遷移先ノードに用いることができます。Webflow ノードの詳細については、Webflow コンポーネントの概要を参照してください。

以下の手順に従って、Webflow エディタ キャンバスに最初のノードを追加します。

  1. 適切なツールを選択し、キャンバス上の任意の場所にポインタ(十字線)を置いてクリックします。Webflow エディタ パレットに用意されている各ツールについては、表9-2 で説明しています。

    キャンパス上のクリックした場所にノードが表示されます。たとえば、最初のノードをプレゼンテーション ノード(すなわち、JSP、HTML ファイルなどのプレゼンテーション ファイル)にする場合、[プレゼンテーション ノード] ツールを選択してからキャンバス上をクリックして、そこにノードを置くことになるでしょう。

    図9-5 プレゼンテーション ノードの配置


     

    注意: [プレゼンテーション ツール] は選択されたままになっています。これにより、ノードごとにツールを選択し直さなくても、プレゼンテーション ノードを必要なだけ追加できるようになります。また、ノードをキャンバスのどこに置くかを気にする必要はありません。ノードを選択して好ましい場所までドラッグすることで、ノードをどこにでも移動することができるからです。

    ノードをキャンバスに置くと、そのノードのプロパティ エディタ(図 9-6 に示す)がキャンバスの下のペインに開きます。 また、ノードそのものをクリックすることで、そのノードのプロパティ エディタを開くこともできます。

    図9-6 プレゼンテーション ノードのプロパティ エディタ


     

  2. プロパティ エディタで、必要に応じて以下の情報を入力します。


     

    入力が完了したら、プロパティ エディタは、図 9-7 に示すサンプルのようになります。

    図9-7 入力の完了したプレゼンテーション ノード用プロパティ エディタのサンプル


     

  3. Webflow に必要なノードがすべて追加されるまで、キャンバスへのノードの追加を続けます。

ステップ 3: 開始ノードを指定する

開始ノードは、訪問者のアプリケーション操作の出発点として用いられます。開始ノードは Webflow の最初のエントリ ポイントすなわち初期状態として指定されるもので、プレゼンテーション ノードまたはプロセッサ ノードに自動的に遷移します。開始ノードは通常、JSP 形式のプレゼンテーション ノードです。

URL で起点、ネームスペース、またはイベントが指定されていない場合には、Webflow メカニズムがデフォルト ネームスペース内で開始ノードを検索します。開始ノードは省略可能ですが、デフォルト ネームスペースに最低 1 つ定義しておくことをお勧めします。

ノードを開始ノードに指定するには、以下の手順に従います。

  1. 開始ノードに指定したいノードを右クリックします。

    図 9-8 に示すように、ノードのコンテキスト メニューが表示されます。

    図9-8 プレゼンテーション ノードのコンテキスト メニュー


     

  2. [開始ノードを設定] を選択します。

    開始ノードに指定された印として、図 9-9 に示すように、ノード名の右側に緑色の縞模様が表示されます。

    図9-9 開始ノードの外見


     

注意: Webflow に存在できる開始ノードは 1 つだけです。

ステップ 4: ノード間の遷移を作成する

ノードをすべてキャンバス上に配置したら、それらの間の遷移を作成してノード同士を接続します。これらの遷移の作成には、表9-2 に示すような [イベント ツール] と [例外ツール] を使用します。 [例外ツール] は赤で、 [イベント ツール] は黒で示されます。

イベント遷移を追加する

イベント遷移を追加するには、以下を実行します。

  1. [イベント ツール] をクリックして、アクティブにします。

  2. 遷移元ノードの外縁にポインタを持っていきます。

    接続が許される場合には、 そのノードの外縁にオレンジ色の小さい四角形が表示されます。

  3. 遷移先ノードまでポインタをドラッグします。

    灰色の接続ポートが遷移元ノードに表示され、接続が許される場合には、図 9-10 に示すように、遷移先ノードに矢印が表示されます。

    図9-10 ノード間のイベント遷移


     

    接続が許されない場合(たとえば、プレゼンテーション ノードに例外リンクを作成しようとする場合など)には、図 9-11 に示すように、該当するノードの外縁に X 印を囲む赤い輪郭だけの四角形が表示されます。

    図9-11 無効な接続を示すマーク


     

  4. イベント遷移の追加を必要なだけ続け、イベントに応答するノードをすべて接続します。

例外遷移を追加する

例外処理が必要と思われるすべてのノードを、その例外処理を行うノードに接続するには、[例外ツール] を使用します。たとえば、受け渡しの前に検証しておく必要があるデータを入力プロセッサが受け取るとしましょう。そのデータにエラーが含まれていたら、入力プロセッサは例外を送出する必要があるでしょう。[例外ツール] を使用すれば、例外を処理し、その結果などの情報を表示することができます。例外の場合には、ノード間の遷移リンクは赤で表示されることに注意してください。

例外遷移を追加するには、以下を実行します。

  1. [例外ツール] をクリックして、アクティブにします。

  2. 遷移元ノードの外縁にポインタを持っていきます。

    接続が許される場合には、 そのノードの外縁にオレンジ色の小さい四角形が表示されます。

  3. 遷移先ノードまでポインタをドラッグします。

    灰色の接続ポートが遷移元ノードに表示され、接続が許される場合には、遷移先ノードに矢印が表示されます。

    接続が許されない場合(たとえば、プレゼンテーション ノードに例外リンクを作成しようとする場合など)には、図 9-11 に示すように、該当するノードの外縁に X 印を囲む赤い輪郭だけの四角形が表示されます。

  4. 例外遷移の追加を必要なだけ続け、例外に応答するノードをすべて接続します。

ノードがすべて正しく配置され、適切な遷移で接続されたら、Webflow は 図 9-12 に示すようなものになるでしょう。

図9-12 Webflow のサンプル レイアウト


 

遷移ツールの使い方

遷移の追加(イベント遷移を追加する例外遷移を追加するで説明)だけでなく、既存遷移の接続ポートを移動したり、遷移にエルボーを追加したり、あるいは遷移を削除することもできます。

接続ポートの移動: 遷移を受け入れる接続ポートは入力接続ポートと呼ばれ、遷移の起点となる接続ポートは出力接続ポートと呼ばれます。場合によっては、ノードの接続ポートを移動すると有益なことがあります。ノード上の接続ポートの位置を変更するには、以下の手順に従います。

  1. 遷移ツール([イベント ツール] および [例外ツール] )または [選択ツール] を選択します。

  2. 接続ポート上でクリックし、マウス ボタンを押したまま、その接続ポートをノード上の目的の位置までドラッグします。

  3. マウス ボタンを放すと、新しい位置に接続ポートが配置されます。

自己参照遷移に関連付けられている接続ポートの場合には、同じノードの外縁上にしか移動できません。

別ノードへの遷移の移動: 遷移の終点(矢印で示される)をあるノードから別のノードへ移動することができます(接続が許される場合)。それには、以下を実行します。

  1. 遷移ツールまたは [選択ツール] を選択します。

  2. 移動したい終点(矢印)を選択します。

  3. 左マウス ボタンを押したまま、新しい接続先ノードまで矢印をドラッグします。

  4. マウス ボタンを放します。

遷移線でのエルボーの作成、移動、削除: エルボーを移動、作成、または削除することにより、エディタ キャンバス上で遷移線の位置を変更することもできます。エルボーを利用すれば、図 9-13 に示すように遷移線を折れ線にして、フローをわかりやすくすることができます。

図9-13 遷移線におけるエルボー


 

新しいエルボーを作成するには、以下の手順に従います。

  1. 遷移をシングル クリックして既存のエルボーを表示させます。エルボーは黒い四角形で表示されます。

  2. 遷移線の任意の箇所(既存エルボー上を除く)でクリックし、マウス ボタンを押したままドラッグすると、新しいエルボーが追加されます。選択されたエルボーは、オレンジ色の四角形で表示されます。

  3. マウス ボタンを放すと、その位置にエルボーが作成されます。

既存の遷移内のエルボーを移動するには、以下の手順に従います。

  1. 遷移をシングル クリックして既存のエルボーを表示させます。エルボーは黒い四角形で表示されます。

  2. エルボーをクリックし、マウス ボタンを押したまま目的の位置までドラッグします。選択されたエルボーは、オレンジ色の四角形で表示されます。

  3. マウス ボタンを放すと、そのエルボーが新しい位置に配置されます。

既存のエルボーを削除するには、以下の手順に従います。

  1. 遷移をシングル クリックして既存のエルボーを表示させます。エルボーは黒い四角形で表示されます。

  2. 削除したいエルボーをクリックして選択します。選択されたエルボーは、オレンジ色の四角形で表示されます。

  3. エディタのツールバーの [削除] ボタンをクリックするか、〔Delete〕キーを押します。

 


Pipeline の作成と Webflow への追加

Webflow の詳細表示を図 9-14 に示します。この例では、PL01 および PL02 というラベルの付いた 2 つのノードが表示されています。これらのノードは Pipeline と呼ばれます。

図9-14 Webflow の例: Pipeline ノードを示す詳細表示


 

Pipeline はプロセッサ ノードの一種で、通常、Webflow でバックエンド ビジネス ロジックを実行するのに用いられます。各 Pipeline は、特定のタスクを実行する多数の Pipeline コンポーネントから成ります。WebLogic Portal 製品スイートには、新たに作成する Pipeline で再利用していただけるような Pipeline コンポーネントが多数付属しています。ただし、所属組織の特定のビジネス プロセスを実行する Pipeline コンポーネントを独自に作成したほうがよい場合もあります。

この節では、以下の手順に従って Pipeline を作成する方法を示します。

Pipeline エディタの概要

Pipeline を作成し、そこに機能を追加するには、Webflow の場合と同様に、E-Business Control Center で Pipeline エディタ(図 9-15 および 図 9-18 を参照)を用います。

図9-15 Pipeline エディタの表示された E-Business Control Center


 

Pipeline エディタの上部には、 一連の表示および動作制御ボタンと一連のコマンド ボタンが用意されており、左端には一連のツール ボタンが用意されています。 ツール ボタン、表示および動作制御ボタン、コマンド ボタンについては、それぞれ表9-5表9-6表9-7 で説明します。

表9-5 Pipeline エディタのツール

ツール

機能

解説


 

[選択ツール]

Pipeline コンポーネント、イベント遷移、および例外遷移の選択や移動に用いる。遷移へのエルボーの追加にも用いる。Pipeline エディタのデフォルト ツール。

注意: このツールをいったん選択すると、別のツールを選択するまで、選択された状態のままになる。


 

[イベント ツール]

2 つのノード間のイベント遷移を追加するのに用いる。

注意: このツールをいったん選択すると、別のツールを選択するまで、選択された状態のままになる。


 

[例外ツール]

2 つのノード間の例外遷移や、自己参照例外遷移を追加するのに用いる。

注意: このツールをいったん選択すると、別のツールを選択するまで、選択された状態のままになる。


 

[開始ノード]

エディタ キャンバス上の既存の Pipeline コンポーネントのいずれか 1 つを現在の Pipeline の開始ノードに指定するのに用いる。


 

[Pipeline コンポーネント ノード]

エディタ キャンバスに新しい Pipeline コンポーネントを追加するのに用いる。


 

表9-6 Pipeline エディタの表示および動作制御ボタン

ツール

機能

解説


 

[背景のグリッド線を表示/非表示] ボタン

エディタ キャンバスにおける背景のグリッド線の表示/非表示を切り替えるのに用いる。


 

[グリッドへの位置合わせを有効/無効にする] ボタン

マウス ボタンを放したとき、Webflow コンポーネントをエディタ キャンバス上の最も近いグリッド点に自動的に配置するかどうかを制御するのに用いる。


 

[リンク最適化を有効/無効にする] ボタン

エディタ キャンバス上でノードを移動したとき、それに合わせて各ノード上のコネクタもノードの周囲に自動的に移動するかどうかを制御するのに用いる。


 

[例外イベントを表示/非表示] ボタン

エディタ キャンバスにおける例外遷移の表示/非表示を切り替えるのに用いる。


 

[この Pipeline をトランザクション対応にする] ボタン

Pipeline をトランザクション対応にするかどうかを指定するのに用いる。

注意: Pipeline エディタでのみ利用可能。


 

[Pipeline セッションをトランザクションに組み込む] ボタン

Pipeline セッションをトランザクションに組み込むかどうかを指定するのに用いる。[この Pipeline をトランザクション対応にする] ボタンがオンになっている場合のみ使用可能。

注意: Pipeline エディタでのみ利用可能。


 

Pipeline エディタでは、 Webflow エディタで使用されるのと同じコマンド ボタン(表9-3 を参照)と、表9-7 に示すボタンが使用されます。

表9-7 Pipeline エディタのコマンド ボタン

ツール

機能

解説


 

[Pipeline コンポーネント エディタを起動] ボタン

Pipeline コンポーネント エディタを開く。このエディタを用いて、Pipeline コンポーネントを管理できる。

注意: Pipeline エディタでのみ利用可能。


 

これらのボタンの機能と使い方を理解すれば、Pipeline の作成を迅速かつ容易に行えるようになります。

ステップ 1: 新しい Pipeline コンポーネントを作成する

この節では、Webflow で使用する Pipeline コンポーネントを作成するのに必要な手順について説明します。

注意: この手順では、以下の事がらを前提としています。

  1. エクスプローラの左ペインで、[Webflow/Pipeline] をクリックします。エクスプローラの右ペインに Webflow と Pipeline のリストが表示されます。

  2. [Webflow/Pipeline] リストで、Pipeline Namespaces フォルダを展開します。

  3. Pipeline のホストとなるネームスペースを開きます。Pipeline の場合には、ネームスペースは、単一のエンタープライズ アプリケーションで複数の Pipeline を使用しても名前の衝突が発生しないように、Pipeline のスコープを限定するのに用いられます。

  4. [名前フィルタ] の上の [新規作成] アイコンをクリックして、図 9-16 に示すように [新規作成] メニューを開きます。

    図9-16 選択された Pipeline ネームスペースに対する [新規作成] メニュー


     

  5. [Webflow/Pipeline] を選択します。

    図 9-17 に示すような [Webflow/Pipeline の新規作成] ウィンドウが開きます。

    図9-17 [Webflow/Pipeline の新規作成] ウィンドウ


     

  6. 以下を実行して、新しい Pipeline を作成します。

    1. [新しい Pipeline ] ラジオ ボタンを選択します。

    2. [ネームスペース] リスト ボックスから、Pipeline のホストとなるネームスペース(たとえば、bookmark)を選択します。

    3. [Pipeline 名 ] フィールドに、Pipeline の名前(たとえば、「validate Bookmark」)を入力します。

    4. [OK] ボタンをクリックします。

      図 9-18 に示すような Pipeline エディタが表示されます。

      図9-18 Pipeline エディタ [Pipeline: validateData]


       

    Pipeline エディタが開くと、アボート例外 (Abort Exception) ノードがキャンバス上に自動的に置かれることに注意してください。このノードは例外処理に用いられるもので、通常の処理で例外を解決できない場合に Webflow をアボートさせます。

  7. 以下を実行して、最初の Pipeline コンポーネントを作成します。

    1. Abort Exception ノードをクリックし 、マウス ボタンを押したまま、キャンバスの下部付近までドラッグします。

    2. [Pipeline コンポーネント ノード] ツール(表9-5 を参照)を選択します。

    3. Pipeline エディタ キャンバスで、新しい Pipeline コンポーネントを置く場所を Abort Exception ノードより上のどこかに決めて、そこに十字線ポインタを持っていきます。そこでクリックして、新しい Pipeline コンポーネント ノードをエディタ キャンバス上に配置します。

    4. [Pipeline コンポーネント エディタを起動] ボタン(表9-7 を参照)をクリックします。図 9-19 に示すような [Pipeline Component Editor] ウィンドウが開きます。

      図9-19 [Pipeline Component Editor]


       

    5. [Pipeline Component Editor] ウィンドウで、[新規作成] をクリックします。図 9-20 に示すような [Pipeline コンポーネント作成ツール] ウィンドウが開きます。

      図9-20 [Pipeline コンポーネント作成ツール]


       

    6. [名前] に、 Pipeline コンポーネントの名前(たとえば「validateBookmark」)を入力します。

    7. [タイプ] として [Class] を選択します。

      Pipeline コンポーネントは通常の Java クラスかセッション EJB のどちらかなので、[タイプ] 値は重要です。[Class] を選択すれば通常の Java クラスを実装することになるのに対して、[JNDI] を選択すればセッション EJB を実装することになります。

    8. [クラス名] に、Pipeline コンポーネントの参照先クラスの完全パッケージ名を入力します。たとえば、以下のように入力します。

      examples.wlcs.sampleapp.order.pipeline.ValidateBookmarkClass

      入力の完了したダイアログ ボックスは、図 9-21 に示す例のようになるでしょう。

      図9-21 入力の完了した [Pipeline コンポーネント作成ツール] ダイアログ ボックス


       

    9. [OK] をクリックして、[Pipeline コンポーネント作成ツール] ウィンドウを閉じます。

    10. 新しい Pipeline コンポーネントが、[Pipeline Component Editor] ウィンドウの [Pipeline コンポーネント ] リストに表示されます。

      [Pipeline Component Editor] ウィンドウで、[閉じる] をクリックします。

    11. 新しい Pipeline ノードを選択します。

    12. キャンバスの下にあるプロパティ エディタで、図 9-22 に示すように、component*/[値] ポップアップ リストから、ステップ f で入力した Pipeline コンポーネント名を選択します。

      図9-22 プロパティ エディタ ― コンポーネントの選択


       

      新しいコンポーネント名が [component*/値] セルに表示されます。

  8. この例では、例外が発生すれば必ず Pipeline を終了するように設定します。そのため、新しいノードを Abort Exception ノードに接続する必要があります。以下の手順に従って、新しい Pipeline コンポーネントを Abort Exception ノードに接続します。

    1. [例外ツール] をクリックします。

    2. validateBookmark ノードの下縁にマウス カーソルを移動して、遷移の位置を決めます。オレンジ色で塗りつぶされた四角形が表示されることで、接続可能な位置であることが示されます。また、カーソルが遷移の追加を示すものに変わります。

    3. その位置でクリックし、マウス ボタンを押したまま、Abort Exception ノードまでドラッグします。マウス ボタンを放すと、遷移が Abort Exception ノードに接続されます(図 9-23)。

      図9-23 validateBookmark - Abort Exception 間の接続


       

    4. その例外遷移を選択します。遷移線がオレンジ色に変わります。

    5. プロパティ エディタで、第 2 列を選択し(図 9-24 を参照)、以下のように例外クラスのパッケージ名を入力します。

      com.bea.p13n.appflow.exception.PipelineException

      図9-24 プロパティ エディタ ― 例外の値


       

  9. 以下のようにして、validateBookmark ノードを開始ノードにします。

    1. [開始ノード] ツール([開始ノード]を参照)をクリックします。

      図 9-25 に示すように、開始ノードを作成しようとしていることを示すメッセージが表示されます。

      図9-25 開始ノード メッセージ ボックス


       

    2. メッセージ ウィンドウで [了解] をクリックします。

    3. validateBookmark が開始ノードになります。そのことは、図 9-26 に示すように、ノードの右縁に緑色のバーが表示されることでわかります。

      図9-26 開始ノードになった validateBookmark


       

  10. E-Business Control Center のメイン ツールバーから [ファイル保存] を選択して、新しい Pipeline を保存します。

ステップ 2: 新しい Pipeline コンポーネントを Webflow に追加する

さて次は、新しい Pipeline コンポーネントを Webflow に追加する必要があります。それには、以下の手順に従います。

  1. エクスプローラの右ペインで、 Pipeline の追加先となる Web アプリケーションを開きます。その Web アプリケーションで、Pipeline の追加先となる Webflow をダブルクリックします。

    図 9-27 に示すような Webflow エディタが開きます。

    図9-27 完成した Webflow を示す Webflow エディタ


     


     


     

  2. bea.portal.framework... ノードと bookmarkEditIP ノードの間の遷移を選択し、〔Delete〕を押します。


     

  3. 以下のようにして、validateBookmark Pipeline を Webflow に追加します。

    1. [Pipeline ノード] ツール(表9-2 を参照)をクリックし、bea.portal.framework... ノードと bookmarkEditIP ノードの間にポインタを持っていきます。そこで 1 回クリックして、エディタ キャンバス上のその位置に新しい Pipeline ノードを追加します。

    2. キャンバスの下にあるプロパティ エディタで、pipeline-name* 行の第 2 列を選択したあと、図 9-28 に示すように、ドロップダウン リストから validateBookmark を選択します。

      図9-28 プロパティ エディタ ― コンポーネントの選択


       

  4. 以下のようにして、validateBookmark Pipeline ノードを他の Pipeline ノードに接続します。

    1. [イベント ツール](表9-5 を参照)を用いて、 validateBookmark ノードを bea.portal.framework... ノードに接続し、作成したイベント遷移をクリックしたあと、プロパティ エディタの [プロパティ] タブで、イベントの名前を「success」に変更してから〔Enter〕を押します。

    2. [イベント ツール] を用いて、validateBookmark ノードを bookmarkEditIP ノードに接続します。

    3. 作成したイベント遷移をクリックしたあと、プロパティ エディタの [プロパティ] タブで、(必要なら)イベントの名前を「success」に変更してから〔Enter〕を押します。

    上記の作業が完了したあとの Webflow エディタ キャンバスを図 9-29 に示します(図が見やすくなるようにノードを移動してあります)。

    図9-29 イベント遷移


     

  5. 変更内容を保存するには、E-Business Control Center のメイン ツールバーから [ファイル保存] を選択します。

 


アプリケーションへの Webflow の同期化

上記で作成した Webflow が機能するためには、それを Web アプリケーションに同期化する必要があります。データの同期化によって、Webflow と Pipeline の XML 定義がデータベースとマスター データ リポジトリ(インメモリ データ ストア)にロードされます。

警告: アプリケーション データはすべて、一斉に同期化されます。同時に複数の開発者が単一のエンタープライズ アプリケーションに対してデータを同期化すると、お互いの作業結果を上書きしたり、デバッグしにくい矛盾した変更を作り込んでしまうおそれがあります。そのような事態にならないようにするには、アプリケーションの別個のインスタンスに対して同期化を行います。

新しい Pipeline コンポーネントと変更済みの Webflow を同期化するには、以下の手順に従います。

  1. WebLogic Server を起動し、E-Business Control Center を開きます。

  2. [ツール同期] を選択します。

    数秒後に、同期進捗メーター(図 9-30)が表示されます。

    図9-30 同期進捗メーター


     

    このメーターは、同期が実行中であることを示します。処理が完了すると、進捗メーターにはそのことが表示され、[停止] が [閉じる] に変わります。

  3. [閉じる] をクリックします。

これで、Webflow がアプリケーションに同期化されました。

 


入力プロセッサの新規作成

すでに述べたように、入力プロセッサは定義済みの専用 Java クラスであり、Webflow メカニズムから呼び出されて、より複雑なタスクを実行します。入力プロセッサは通常、HTML フォーム データの検証や、Web ページ内での条件分岐の実現に用いられます。WebLogic Portal には、開発済みの入力プロセッサが多数付属しています。開発するアプリケーションではこれらの入力プロセッサを再利用したほうがよい場合がある一方、独自の入力プロセッサを作成してアプリケーションの Webflow で使用するほうがよい場合もあるでしょう。

InputProcessor インタフェースを用いて入力プロセッサを作成する

新しい入力プロセッサを作成するには、process() メソッド(リスト 9-1 に示す)の詳細を用意することによって、com.bea.p13n.appflow.webflow.InputProcessor インタフェースを実装する必要があります。

コード リスト 9-1 InputProcessor インタフェースの Process() の実装

public java.lang.Object process(javax.servlet.http.HttpServletRequest req,
java.lang.Object requestContext)
throws ProcessingException

このインタフェースは、HttpSession 内に存在する HttpServletRequestPipelineSession を処理します。 リターン オブジェクトは何でもかまいませんが、そこに用意されている toString() の実装は意味のあるものでなければなりません。Webflow エグゼキュータは、返されたオブジェクトに対して toString() を呼び出して、プロセッサ用のイベントを生成します。

パラメータ

req - HttpServletRequest オブジェクト

requestContext - リクエストを一意に識別する Object

戻り値

Object(toString() を意味のあるものに実装してあること)

送出する例外

ProcessingException または、そのサブクラス

入力プロセッサの命名規約

入力プロセッサの名前の末尾には、「IP」 という接尾辞を付けなければなりません。たとえば、届け先住所の削除を担当する入力プロセッサには、DeleteShippingAddressIP という名前を付けるといった具合です。こうした命名規約に従うことで、入力プロセッサがより把握しやすくなるはずです。

入力プロセッサでのビジネス ロジックの実行

入力プロセッサ内では、通常、ビジネス(アプリケーション)ロジックは実行しない方がよいでしょう。特に、入力プロセッサでは、Enterprise JavaBeans(EJB)を呼び出したり、データベースへのアクセスを試みるべきではありません。そのようなロジックはすべて、Pipeline コンポーネントに実装すべきです。そのロジックを入力プロセッサ内で実行することも可能ですが、そうしたロジックはトランザクション対応でないことがあり、その場合には Webflow アーキテクチャの主たる目的を達成できなくなります。ビジネス ロジックとプレゼンテーション ロジックを分離することで、Web サイトの柔軟性が本質的に高くなります。機能の変更や追加は、Pipeline あるいは入力プロセッサを新たに作成してプラグインする程度の単純な作業になります。

InputProcessorSupport クラスを拡張する

あるいは、リスト 9-2 に示すような com.bea.p13n.appflow. webflow.InputProcessorSupport クラスを拡張する入力プロセッサを新たに作成することもできます。名前のとおり、この抽象クラスを使用すれば、入力プロセッサの働きを補助する静的ヘルパー メソッドを利用できるようになります。ただし、新しい入力プロセッサ クラスが何か他のクラスを拡張する必要がある場合には、InputProcessorSupport クラスを利用することはできません。

コード リスト 9-2 InputProcessorSupport クラスの拡張

public abstract class InputProcessorSupport
extends java.lang.Object
implements InputProcessor, ValidatedFormConstants

注意: InputProcessorSupport クラスの実装の詳細については、com.bea.p13n.appflow.webflow の『Javadoc』を参照してください。

キャンバス上に配置した入力プロセッサ ノードのプロパティを、Webflow エディタを用いて指定する場合には、新たに作成した入力プロセッサのクラス名を該当するフィールドに入力すればよいだけです。入力プロセッサを既存の Webflow メカニズムと連携させるために必要な作業は、それ以外にはありません。

 


拡張プレゼンテーション ノードと拡張プロセッサ ノードの作成による Webflow の拡張

入力プロセッサと Pipeline コンポーネントを新たに作成して、製品にあらかじめ用意されているものに追加しても、必要を満たせない場合には、拡張(カスタム)プレゼンテーション ノードや拡張(カスタム)プロセッサ ノードとして使用できるクラスを作成して、Webflow メカニズムを拡張することにしてもかまいません。これらのノードに関連付けられるクラスを作成したら、新しいノードを webflow-extensions.wfx ファイルに登録する必要があります。この節では、これらの作業の実行方法を示します。

拡張プレゼンテーション ノードの作成方法

拡張(カスタム)プレゼンテーション ノードを作成するには、以下の手順に従います。

  1. com.bea.p13n.appflow.webflow.PresentationNodeHandler インタフェースを実装するクラスを作成します。作成するクラスは、必ず WebflowServlet サーブレットの転送先の URL を返すようにしてください。

  2. 作成した拡張ノードを webflow-extensions.wfx ファイルに登録して、Webflow エディタや Pipeline エディタで使用できるようにします。拡張プレゼンテーション ノードおよび拡張プロセッサ ノードを Webflow エディタや Pipeline エディタで使用可能にするを参照してください。

WebLogic Portal では、portal という拡張(カスタム)プレゼンテーション ノードが使用されるので、このノードを一例と考えることができます。Portal では、この拡張ノードを用いて、ポートレットのコンテンツが変更されていない(つまり、最後の URL を表示すべきである)ことをポータル Webflow に知らせます。portal ノードの実装クラスは LastContentUrlNodeHandler.java です。

拡張プロセッサ ノードの作成方法

拡張(カスタム)プロセッサは、(BEA ではなく)開発者の所属組織がアプリケーションの Webflow 用に開発するプロセッサです。たとえば、入力プロセッサや Pipeline プロセッサと同じレベルで動作する拡張(カスタム)プロセッサを作成したいとしましょう。拡張プロセッサは、Webflow で現在サポートされていない処理を実行するのに用いることができます。ただし、拡張プロセッサの入出力フローは、やはり Webflow メカニズムによって制御されます。拡張プロセッサは Webflow エディタでは、入力プロセッサノードや Pipeline ノードによく似たノードとして表現されますが、表現が多少異なるので、容易に識別できます。

たとえば、BEA ルール エンジンと連携して、何らかの条件(顧客セグメントへの所属の有無など)に基づくさまざまな Webflow をサポートする拡張(カスタム)プロセッサを作成するといった場合もあるでしょう。また、もっと単純な例としては、ページ本文のコンテンツが与えられたときに JSP にヘッダーとフッターを自動的に付加するレイアウト マネージャ プロセッサがあります。実際に、そうしたプロセッサはすでに作成されています。

拡張(カスタム)プロセッサ ノードを作成するには、以下の手順に従います。

  1. com.bea.p13n.appflow.webflow.Processor インタフェースを実装するクラスを作成して、拡張プロセッサを定義します。 Processor インタフェースの典型的な実装をリスト 9-3 に示します。

コード リスト 9-3 Processor インタフェースの実装

public java.lang.Object process(java.lang.String webapp,
java.lang.String namespace,
javax.servlet.http.HttpServletRequest request,
java.lang.Object requestContext)
throws java.lang.Exception

このインタフェースは、リクエストで示されるプロセッサを実行します。リターン オブジェクトは何でもかまいませんが、そこに用意されている toString() の実装は意味のあるものでなければなりません。Webflow エグゼキュータは、返されたオブジェクトに対して toString() を呼び出して、プロセッサ用のイベントを生成します。

  • 作成したプロセッサを webflow-extensions.wfx ファイルに登録して、Webflow エディタや Pipeline エディタで使用できるようにします。
  • 注意: webflow-extensions.wfx ファイルに拡張ノードを登録する方法については、拡張プレゼンテーション ノードおよび拡張プロセッサ ノードを Webflow エディタや Pipeline エディタで使用可能にするを参照してください。

    拡張プレゼンテーション ノードおよび拡張プロセッサ ノードを Webflow エディタや Pipeline エディタで使用可能にする

    拡張(カスタム)プレゼンテーション ノードや拡張(カスタム)プロセッサ ノードを作成したら、そのノードを webflow-extensions.wfx ファイルに登録して、チームの他の開発者から利用できるようにする必要があります。

    注意: webflow-extensions.wfx ファイルは <BEA_HOME>/user_projects/myNEWDomain/beaApps/ portalApp-project/default/webflow/ フォルダ内にあります(ここで、<BEA_HOME> は WebLogic Portal のインストール先ディレクトリです)。たとえば、以下のフォルダです。

    bea/user_projects/myNEWDomain/beaApps/portalApp-project/
    default/webflow/

    拡張(カスタム)プロセッサ ノードを登録すると、E-Business Control Center の再起動後に、Webflow エディタ パレット上の対応するツールが使用可能になります。

    拡張プレゼンテーション ノードを登録する

    拡張プレゼンテーション ノードを webflow-extensions.wfx ファイルに登録するには、以下の手順に従います。

    1. webflow-extensions.xml ファイルを開きます。このファイルは、<BEA_HOME>/user-projects/myNEWDomain/beaApps/portalApp-
      project/application-synch/webapps/<APPLICATION>
      フォルダにあります(ここで、<BEA_HOME> は BEA 親ディレクトリ、<APPLICATION> は特定の Web アプリケーション用ディレクトリです)。

    2. <end-node> 要素を <end-node-registration> リストに追加します。

    3. name 属性でプレゼンテーション ノード名を指定し、node-handler 属性で、基礎となるノード実装のクラスを指定します。

    4. 呼び出し時に上記クラスで想定される入力パラメータを、<node-processor-input> 要素を用いて定義します。各パラメータの name 属性を入力し、省略可能なパラメータの場合には、required 属性の値を false にします。

      注意: この情報が、Webflow エディタおよび Pipeline エディタのプロパティ エディタで使用されることになります。

    5. webflow-extensions.wfx ファイルを保存し、E-Business Control Center を再起動します。

    拡張プロセッサ ノードを登録する

    拡張プロセッサ ノードを webflow-extensions.wfx ファイルに登録するには、以下の手順に従います。

    1. webflow-extensions.xml ファイルを開きます。このファイルは、<BEA_HOME>/user-projects/myNEWDomain/beaApps/portalApp-
      project/application-synch/webapps/<APPLICATION>
      フォルダにあります(ここで、<APPLICATION> は特定の Web アプリケーション用ディレクトリです)。

    2. <process> 要素を <process-registration> リストに追加します。

    3. name 属性でプロセッサ名を指定し、executor 属性で、基礎となるプロセッサ実装のクラスを指定します。

    4. 呼び出し時に上記クラスで想定される入力パラメータを、<node-processor-input> 要素を用いて定義します。各パラメータの name 属性を入力し、省略可能なパラメータの場合には、required 属性の値を false にします。

      注意: この情報が、Webflow エディタおよび Pipeline エディタのプロパティ エディタで使用されることになります。

    5. webflow-extensions.wfx ファイルを保存し、E-Business Control Center を再起動します。

     

    ページの先頭 前 次