WebLogic Platform ツアー ガイド
オフィス機器を注文する
ここでは、Avitek 社の 2 人の役割を演じて、次のように企業のオフィス機器注文管理システムのさまざまな機能を試します。
新しい従業員、John Smith として、Avitek 社のオンライン オフィス機器注文管理システムを使用し、自分用のラップトップ コンピュータを注文する。
次に、John のマネージャ、Rachel Burns として、John のラップトップ コンピュータの注文を承認する。
最後に、John Smith として、ラップトップ コンピュータの注文ステータスをチェックする。
この手順からわかるように、この節ではオフィス機器注文管理プロセスについて説明し、WebLogic Integration の機能を使用して構築したアプリケーションの統合を例示します。その中で、Business Process Management 機能がさまざまなアプリケーションと人の関与の統合、およびアプリケーション リソース間における情報の交換の調整にどのように使用されるかについて学習します。
注意 : Business Process Management は、WebLogic Integration の機能であり、WebLogic Workshop Platform Edition の一部として提供されます。
「ツアーの各手順」に示されている手順を実行し、この節で説明する概念を検討して、次の内容を学習します。
ツアーの各手順
従業員 ID を使用して、Avitek 社のイントラネットにログインすると、オフィス機器注文管理システムにアクセスして [注文] ポートレットからオフィス機器の注文を送信することができます。
オフィス機器注文管理システムでは、従業員はオフィス機器を注文し、注文処理 (発注、マネージャ承認、在庫チェック、出荷、請求) のどのフェーズにあるのか、注文状況を確認できます。
WebLogic Platform ツアーのこの手順を実行すると、注文管理処理に慣れることができます。具体的には、次の手順が含まれます。
手順 1 : 新しい注文を発行する
新しい従業員、John Smith として、新しいラップトップ コンピュータを注文します。
注意 : 「Avitek 社の企業イントラネットにログインする」では、新しい従業員である John Smith として Avitek 社の企業イントラネットにログインしました。現在は、[従業員] ポータルが表示されています。
注文を送信するには、以下の手順を実行します。
[注文] ポートレットで、[新しい注文の発行] をクリックします。
[品目 ID] フォームが表示されます。
[品目 ID] フィールドに「notebook_kit1」(注文するラップトップ コンピュータの品目 ID) と入力し、新しいラップトップ コンピュータを申請します。
注意 : 「desktop_kit1」を有効なオプションとして入力することもできます。
注文フォームが送信され、John Smith のマネージャである Rachel Burns に通知が送られます。[注文] ポートレットが更新され、正常に発注されたことを示すメッセージが表示されます。
[注文ステータスの確認] をクリックすると、注文ステータスを表示できます。
[注文] ポートレットが更新され、注文の現在のステータスが表示されます。
[ログアウト] ポートレットで [ログアウト] をクリックし、企業イントラネットからログアウトします。
[ログアウト] ポートレットで [再ログイン] をクリックし、Avitek の [ログイン] 画面に戻ります。
手順 2 : 注文を承認する
John のマネージャ、Rachel Burns として、次のように John の注文を承認します。
Avitek 社の企業イントラネットに Rachel Burns としてログインします。以下のユーザ名およびパスワードを使用します。
ユーザ名 : rachel
パスワード : emanager
Avitek 社のマネージャ用のイントラネット ポータルが表示され、Worklist ユーザ インタフェースにアクセスできるようになります。Worklist ユーザ インタフェースには、Rachel の直属の部下の注文で、未処理のものがすべて表示されます。
注意 : [ダイレクト レポート] ポートレットで、ダイレクト レポートのリストを参照することもできます。
John Smith のラップトップ コンピュータに対する未処理の機器承認を選択します。
[タスクへの応答] を選択して、新しいラップトップ コンピュータの注文を承認します。
[タスクへの応答] テキスト ボックスが表示されます。
テキスト ボックスに「Approved」と入力します。
未処理タスクのリストから注文が削除されます。
[ログアウト] ポートレットで [ログアウト] をクリックし、企業イントラネットからログアウトします。
[ログアウト] ポートレットで [再ログイン] をクリックし、Avitek の [ログイン] 画面に戻ります。
手順 3 : 注文のステータスを確認する
注文ステータスを確認して、在庫チェック ビジネス プロセス、出荷ビジネス プロセス、請求ビジネス プロセスのどの段階にあるのか、状況を追跡することができます。
Avitek 社の企業イントラネットに John Smith としてログインします。以下のユーザ名およびパスワードを使用します。
ユーザ名 : john
パスワード : employee
[注文] ポートレットで、[注文ステータスの確認] をクリックします。
[注文] ポートレットが更新され、すべての未処理の注文の現在のステータスが表示されます。
WebLogic Integration を使用してビジネス プロセスを設計する
WebLogic Integration を使用すると、ビジネス プロセスの開発、管理、配信を簡単に行うことができます。ビジネス プロセスは、ビジネス ロジックの実行、およびアプリケーション、ユーザ、エンタープライズ ネットワーク、トレーディング パートナの間のビジネス ドキュメントの交換を緩やかな結合方法でまとめます。
WebLogic Workshop を使用すると、ビジネス プロセスを簡単に作成できます。ターゲット フォルダをクリックし、[ファイル|新規作成|プロセス ファイル] を選択します。プロセス デザイナが起動され、開始ノードと完了ノードを含む新しいプロセス ファイルが表示されます。
プロセス デザイナは、ビジネス プロセスを設計し、クライアントとリソース (データベース、JMS キュー、ファイル システムなど) との対話を確立できるグラフィカル ツールです。
図 4-1 プロセス デザイナ
次の表では、前の図にあるビジネス プロセス設計ツールの概要について説明します。
表 4-1 ビジネス プロセスの設計に使用するツール
番号
|
使用するツール
|
実行するタスク
|
1
|
[アプリケーション] ウィンドウ
|
アプリケーション プロジェクトに含まれるビジネス プロセス ファイルを作成、表示、編集する。このウィンドウには、アプリケーション ファイルで特定の処理を実行するためのショートカットもある。たとえば、ビジネス プロセス (.jpd ) ファイルを右クリックし、ドロップダウン メニューから [Generate Task Control File] を選択すると、タスク コントロールを生成できる。
|
2
|
[デザイン ビュー] と [ソース ビュー]
|
この領域でビジネス プロセスを設計する。
必要に応じてデザイン ビューとソース ビューとを切り替える。1 つのビューで行った変更は、自動的に他方のビューにも反映される。
|
3
|
[パレット] ウィンドウ
|
[パレット] ウィンドウからコンポーネントをドラッグしてデザイン ビューのキャンバスにドロップすることで、ビジネス プロセスを表すノードのセットを描画する。次の種類のノードを作成できる。
|
4
|
[データ パレット] ウィンドウ
|
ビジネス プロセスで使用する変数インスタンスおよび Java コントロールを定義する。
|
5
|
ノード ビルダ
|
ビジネス プロセス ノードの機能を設計する。ノード ビルダを起動するには、ノードをダブルクリックする。
ノード ビルダは、ビジネス プロセス ノードに対するロジックの定義を可能にする、タスク駆動型インタフェースである。次の種類のロジックがある。
|
6
|
[プロパティ エディタ] ウィンドウ
|
ビジネス プロセスのノードのプロパティを設定する。
|
以下の図で示す WebLogic Integration Administration Console では、ビジネス プロセスなど、WebLogic Integration アプリケーションで必要とされるリソースを管理者が管理およびモニタすることを可能にします。
図 4-2 WebLogic Integration Administration Console
WebLogic Integration Administration Console によって管理できるリソースの一覧を次に示します。
プロセス インスタンスのモニタ - ビジネス プロセスのインスタンスをモニタできます。
プロセス コンフィグレーション - ビジネス プロセスをコンフィグレーションできます。
メッセージ ブローカ - メッセージ ブローカのメッセージベースの通信をモニタできます。
イベント ジェネレータ - イベント ジェネレータを作成、表示、および編集できます。
ワークリスト管理 - ワークリスト タスクのインスタンスを管理およびモニタできます。
Application Integration - エンタープライズ アダプタをモニタできます。
トレーディング パートナ管理 - トレーディング パートナをコンフィグレーションおよび管理できます。
システム コンフィグレーション - システム情報とセキュリティ情報をコンフィグレーションできます。
ユーザ管理 - 統合システムのリソースにアクセスできるユーザとロールをコンフィグレーションできます。
ビジネス カレンダーのコンフィグレーション - ユーザのスケジュールまたはシステム イベントのタイミングを決定するビジネス カレンダーを作成および編集できます。
WebLogic Workshop でのビジネス プロセスの設計および管理についてさらに学習するには
オフィス機器注文管理システムを検討する
e2eWorkflow
アプリケーションは、オフィス機器注文管理システム、オフィス機器の注文に必要なすべてのプロセスを管理する WebLogic Integration Business Process Management アプリケーションを定義します。
WebLogic Workshop で、WebLogic Integration Business Process Management アプリケーションを表示するには
次の手順に従い、e2eWorkflow
アプリケーションを開きます。
[ファイル|開く|アプリケーション] を選択します。
WebLogic Platform のインストール先の samples¥platform¥end2end¥e2eWorkflow
フォルダに移動します。
[e2eWorkflow.work] を選択します。
アプリケーション ファイルの名前には、.work
という拡張子が付きます。
[開く] をクリックしてアプリケーションを開きます。
目的のアプリケーション ファイルが WebLogic Workshop に表示されていない場合は、[表示|アプリケーション] を選択します。
e2eWorkflow
アプリケーションのコンテンツが次のように表示されます。
次の表では、e2eWorkflow
アプリケーションの各フォルダについて説明します。
表 4-2 e2eWorkflow アプリケーション フォルダ
フォルダ
|
内容
|
e2eWorkflowProject
|
次の WebLogic Integration Business Process Management アプリケーションのディレクトリおよびファイル。
サンプルのテスト ファイルとして提供されている input.xml を使用すると、注文管理ビジネス プロセスをポータル外部の Web サービスから直接起動できる。WebLogic Platform ツアーではこのファイルの使い方を説明しない。Web サービスからこのファイルを呼び出してビジネス プロセスを起動する場合は、<orderId> フィールドと <itemId> フィールドに、それぞれ一意の注文 ID と有効な品目 ID が指定されるようにファイルを編集する必要がある。
|
Schemas
|
XML と WLAI (WebLogic Integration Application Integration) のスキーマ定義、およびアプリケーション ビュー コントロールで使用するアプリケーション ビュー情報。
|
モジュール
|
アプリケーション ビューおよび注文追跡 EJB JAR ファイル。このフォルダは、すべてのアプリケーション プロジェクトでの標準フォルダ。このフォルダの内容はアプリケーションの要件に基づいて変更可能。
|
ライブラリ
|
実行時関連ライブラリ ファイル。このフォルダは、すべてのアプリケーション プロジェクトでの標準フォルダ。このフォルダの内容はアプリケーションの要件に基づいて変更可能。
|
セキュリティ ロール
|
セキュリティ ロール情報。このフォルダは、すべてのアプリケーション プロジェクトでの標準フォルダ。このフォルダの内容はアプリケーションの要件に基づいて変更可能。このフォルダは、e2eWorkflow アプリケーションでは空。
|
オフィス機器注文管理ビジネス プロセスの概要
e2eWorkflow
アプリケーションのビジネス プロセスは、次の表に定義されているように、ネストされた複数のビジネス プロセスから構成されています。
表 4-3 オフィス機器注文管理システムのビジネス プロセス
ビジネス プロセス
|
定義
|
注文申請
|
全体の注文処理が行われる。特に、オフィス機器の注文の送信、およびマネージャによる承認がどのように行われるか、在庫はどのようにチェックするか、注文した商品が在庫切れの場合にどのように工場に通知するか、などを定義する。
|
新規注文
|
新しい商品が工場に注文される。
|
請求
|
売り手が買い手に支払いを請求する。
|
出荷
|
注文された商品の出荷がスケジュールされる。
|
ビジネス プロセスは、組み込み Java コントロールを使用して、必要なリソースと対話します。次の表では、オフィス機器注文管理ビジネス プロセスによって使用されるコントロールの種類、およびサンプル アプリケーション用に定義された Java コントロール拡張 (Java Control Extension : JCX) を定義します。
注意 : 前述したように、一部の組み込みコントロールでは、アプリケーションにコントロールを追加する際に、アプリケーション プロジェクト内で JCX ファイルを作成または参照してコントロールの機能を定義する必要があります。組み込みコントロールに使用する JCX ファイルの作成の詳細については、「組み込みコントロールを使用する」を参照してください。
表 4-4 オフィス機器注文管理ビジネス プロセスで使用される組み込みコントロール
コントロール
|
簡素化される機能
|
例
|
アプリケーション ビュー
|
アプリケーション ビューを使用したエンタープライズ アプリケーションへのアクセス。アプリケーション ビュー コントロールを使用して参照するには、あらかじめアプリケーション ビュー コンソールを使用して、アプリケーション ビューを作成する必要がある。
アプリケーション ビューを構築する手順は、WebLogic Platform ツアーでは説明しない。詳細については、WebLogic Workshop ヘルプの「概要 : アプリケーションの統合」を参照。
|
Appview1.jcx は、e2eWorkflow_AppView1_ApplicationView-ejb.jar という AI (Application Integration) アプリケーション ビューを使用して社内および工場の在庫データベースと通信するアプリケーション ビュー コントロール。このアプリケーション ビューは、モジュール プロジェクト フォルダにインポートされる。
このコントロールの使い方は、注文申請ビジネス プロセスと新規注文ビジネス プロセスで示す。
|
EJB
|
アプリケーションからデプロイされる EJB へのアクセス。
EJB を構築する手順は、WebLogic Platform ツアーでは説明しない。詳細については、WebLogic Workshop ヘルプの「エンタープライズ JavaBean (EJB) を開発する」を参照。
|
e2eOrderTrackingEJB.jcx は、E2EOrderTrackingEJB.jar という注文追跡 EJB と対話することによって、プロセス全体にわたって注文ステータスを追跡する EJB コントロール。この EJB は、モジュール プロジェクト フォルダにインポートされる。
このコントロールの使い方は、すべてのビジネス プロセスで示す。
|
メッセージ ブローカ
|
メッセージ ブローカ (強力なメッセージ フィルタ処理機能を備えた、メッセージベースの通信プロトコル) で使用可能なパブリッシュおよびサブスクライブ機能の使用。
|
Publish.jcx は、請求ビジネス プロセスおよび出荷ビジネス プロセスと通信するメッセージ ブローカ コントロール。
このコントロールの使い方は、新規注文ビジネス プロセスで示す。
|
プロセス
|
プロジェクト内のビジネス プロセスへのアクセス。
|
OrderRequisitionControl.jcx は、OrderRequisitionControlWS.jws ファイルを使用して注文申請ビジネス プロセスを開始するプロセス コントロール。
このコントロールの使い方は、注文申請ビジネス プロセスで示す。
|
OrderNewControl.jcx は、新規注文ビジネス プロセスを開始するプロセス コントロール。
このコントロールの使い方は、新規注文ビジネス プロセスで示す。
|
タスク
|
Worklist ユーザ インタフェースへのアクセス。このインタフェースは、ビジネス プロセスによる作業アイテムの管理および WebLogic Integration Worklist ユーザ インタフェースを使用したコールバックの処理を可能にする。
|
ManagerTask.jcx は、オフィス機器の注文の承認を得るために、John Smith のマネージャの Rachel Burns に非同期メッセージを送信するタスク コントロール。
このコントロールの使い方は、注文申請ビジネス プロセスで示す。
|
トランスフォーメーション
|
あるフォーマットから別のフォーマットへのデータのマッピングおよび変換。このようにして、トランスフォーメーション コントロール内でトランスフォーメーション ロジックがカプセル化され、このロジックの修正がプロセス定義に影響しなくなる。
|
Transforms.dtf は、在庫をチェックするときに、社内および工場の在庫データベースとの通信を可能にするトランスフォーメーション コントロール。
このコントロールの使い方は、注文申請ビジネス プロセスで示す。
|
TransformsInputMessage.dtf は、受注に対して、ビジネス プロセス間の通信を可能にするトランスフォーメーション コントロール。
このコントロールの使い方は、すべてのビジネス プロセスで示す。
|
TransformsNetworkMessage.dtf は、 メッセージ ブローカと、請求および出荷ビジネス プロセスの間の通信を可能にするトランスフォーメーション コントロール。メッセージ ブローカは、中間フォーマットを使用し、緩やかに結合されたシステムを配信する。
このコントロールの使い方は、新規注文、請求、出荷の各ビジネス プロセスで示す。
|
Web サービス
|
WSDL (Web Service Definition Language) ファイルを公開する Web サービスへのアクセス。WSDL ファイルは、メソッド名、パラメータ、戻り型など、Web サービスが実装するメソッドおよびコールバックを記述する。
Web サービスを構築する手順は、WebLogic Platform ツアーでは説明しない。詳細については、WebLogic Workshop ヘルプの「Web サービスを構築する」を参照。
|
NotifyManufacturingControl.jcx は、NotifyManufacturing.jws Web サービスを介して、注文を製造部門に通知する Web サービス コントロール。
このコントロールの使い方は、新規注文ビジネス プロセスで示す。
|
GenerateBillControl.jcx は、GenerateBill.jws Web サービスを介して注文した商品の請求書を生成する Web サービス コントロール。
このコントロールの使い方は、請求ビジネス プロセスで示す。
|
この後の節では、以下のノード パスで各ビジネス プロセスを詳細に説明します。
注文申請ビジネス プロセス
注文申請ビジネス プロセスは、Avitek 社の従業員がオフィス機器を注文する際の全般的なイベントの順序を定義します。このビジネス プロセスは、従業員がオフィス機器の注文を発行すると開始され、次の順で処理されます。
マネージャに承認してもらうために従業員が注文を発行する。
注文がマネージャに承認されると、このビジネス プロセスは次の手順に進みます。マネージャが注文を拒否すると、このビジネス プロセスは注文プロセスを終了します。
注文された商品が現在の在庫で用意できる場合は、このビジネス プロセスは注文プロセスを終了します。注文された商品が現在の在庫では用意できない場合は、このビジネス プロセスは新規注文ビジネス プロセスを起動します。
注文申請ビジネス プロセスを WebLogic Workshop で表示するには、[アプリケーション] ウィンドウで workflow/OrderRequisition.jpd ファイルをダブルクリックします。
各ノードの説明に従って、以下の手順を実行します。
ビジネス プロセス内のノードをダブルクリックしてノード ビルダを起動し、ノードの詳細を表示します。
必要に応じて、ノード ビルダで、またはノードを右クリックして [コードの表示] を選択し、関連するコードを [ソース ビュー] ウィンドウで表示します。
次の表では、注文申請ビジネス プロセス内の各ノードについて説明します。
表 4-5 注文申請ビジネス プロセスの処理手順
ビジネス プロセス ノード
|
説明
|
|
ビジネス プロセスを開始するイベントを定義する。つまり、従業員がオフィス機器の注文を発行する。
[戻り値のあるクライアント要求] オプションを介してビジネス プロセスを起動するように指定すると、開始ノードが展開された形式で表示される。左上隅にある負符号をクリックすると、そのノードを折りたたむことができる。
注文を受け取るためにクライアント要求ノードは、OrderRequisitionControlWS.jws Web サービスからエクスポーズされる clientRequest() メソッドを呼び出す。Web サービスは、OrderRequisitionControl プロセス コントロールを使用して、ビジネス プロセスを呼び出す。注文は、XMLObject 引数として渡され、データはデータ マッピング ツールを使用して ClientRequestDocument タイプに変換される。
クライアント応答ノードは、clientReturn() メソッドを呼び出して、呼び出し元のプロセスに結果を戻す。
注意 : WebLogic Platform ツアーでは、ビジネス プロセスおよびポータル クライアント アプリケーションから切り離すために、OrderRequisitionControlWS.jws Web サービスがビジネス プロセスとは別に生成されている。また、WebLogic Workshop ではビジネス プロセスから Web サービスを生成できる。そのためには、まずビジネス プロセスを右クリックし、[WSDL ファイルの生成] を選択する。次に、WSDL ファイルを右クリックし、[Web サービスの生成] を選択する。
|
|
メッセージを適切な形式に変換する。
戻り値のあるコントロール送信ノードは、TransformsInputMessage.dtf データ トランスフォーメーション コントロールのインスタンスである m_Ixform を使用して、getWebserviceMessage() メソッドを呼び出す。このメソッドは、ClientRequestDocument タイプから受け取ったメッセージを InputDocument タイプに変換する。
|
|
メッセージを適切な形式に変換する。
戻り値のあるコントロール送信ノードは、TransformsInputMessage.dtf データ トランスフォーメーション コントロールのインスタンスである m_Ixform を使用して、getInput() メソッドを呼び出す。このメソッドは、InputDocument タイプから受け取ったメッセージを Input タイプに変換する。
|
|
呼び出し元のプロセスに結果を返すために使用されるメソッドを定義する。
クライアント応答ノードは、clientReturn() メソッドを呼び出して、呼び出し元のプロセスに String 引数として結果を返す。
|
|
クライアント要求ノード用の例外ハンドラを定義する。
実行ノードは、invalidMessageHandler() メソッドを呼び出して、カスタム ビジネス ロジックを使用する例外を取得し処理する。
アプリケーションでの必要に応じて、適切な例外ハンドラを追加することが推奨される。特に、ビジネス プロセスの開始ノードにこれらのハンドラを追加する必要がある。
|
|
注文ステータスを更新する。
戻り値のあるコントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、create() メソッドを呼び出す。このメソッドは、新しい注文追跡 ID を作成して、注文が受け取られたことを示すようにその注文ステータスを更新する。
|
|
新しいラップトップ コンピュータの注文承認のために、非同期メッセージを Rachel Burns に送信する。
コントロール送信ノードは、ManagerTask.jcx タスク コントロールのインスタンスである m_Task を使用して、createTaskByName() メソッドを呼び出す。このメソッドは新しいタスクを作成する。
|
|
新しいラップトップ コンピュータの注文承認のために、非同期メッセージを Rachel Burns に送信する。
コントロール送信ノードは、ManagerTask.jcx タスク コントロールのインスタンスである m_Task を使用して、assignTaskToUser() メソッドを呼び出す。このメソッドは、Rachel Burns にそのタスクを割り当てる。
|
|
注文ステータスを更新する。
コントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、setDescRemote() メソッドを呼び出す。このメソッドは、マネージャにタスクが割り当てられたことを示す。
|
|
Rachel Burns からの承認応答を受信する。
コントロール受信ノードは、ManagerTask.jcx タスク コントロールのインスタンスである m_Task を使用して、onTaskCompleted() メソッドを呼び出す。このメソッドは、Rachel Burns からの応答を返す。
|
|
注文ステータスを更新する。
コントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、setDescRemote() メソッドを呼び出す。このメソッドは、マネージャがタスクを承認したことを示す。
|
|
マネージャが注文を承認したかどうかに基づいて、ビジネス プロセス フローを分岐する。注文が承認されると、このビジネス プロセスは Check Inventory ノードに進む。注文が拒否されると、注文プロセスは終了する。
分岐ノードは、isApproved() Java メソッドを呼び出し、その結果に応じてビジネス プロセス フローを分岐させる。
|
|
注文された商品の社内在庫をチェックする。
コントロール送信ノードは、Appview1.jcx アプリケーション ビュー コントロールのインスタンスである m_AppView を使用して、CheckInventoryAsset() メソッドを呼び出す。このメソッドは、アプリケーション ビューと対話して社内在庫をチェックする。
また、このノードは、Transforms.dtf データ トランスフォーメーション コントロールのインスタンスである m_Xform を使用して、次のメソッドを呼び出す。
|
|
注文された商品が社内の在庫で用意できるかどうかに基づいて、ビジネス プロセス フローを分岐する。商品が用意できる場合、このビジネス プロセスは UpdateAppStatusAvailability ノードに進む。商品が用意できない場合、このビジネス プロセスは Not Available ノードに進む。
分岐ノードは、isApproved() Java メソッドを呼び出し、その結果に応じてビジネス プロセス フローを分岐させる。
|
|
注文ステータスを更新する。
コントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、setDescRemote() メソッドを呼び出す。このメソッドは、注文された商品を社内在庫で用意できることを示す。
|
|
注文された商品を用意できなかった理由が在庫切れであるか、または別の条件によるものかどうかに基づいて、ビジネス プロセス フローを分岐する。商品が在庫切れのため用意できない場合、このビジネス プロセスは UpdateAppStatusNonAvailability ノードに進む。商品が別の理由のため用意できない場合、注文プロセスが終了する。
分岐ノードは、isNotAvailable() メソッドを呼び出し、その結果に応じてビジネス プロセス フローを分岐させる。
|
|
注文ステータスを更新する。
コントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、setDescRemote() メソッドを呼び出す。このメソッドは、注文された商品を社内在庫で用意できないことを示す。
|
|
在庫切れの商品を注文するための新規注文ビジネス プロセスを開始する。
コントロール送信ノードは、OrderNewItemControl.jcx プロセス コントロールのインスタンスである m_OrderNew を使用して、receiveNewOrderRequest() メソッドを呼び出す。このメソッドは、新規注文ビジネス プロセスを開始する。
|
|
注文ステータスを更新する。
コントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、setDescRemote() メソッドを呼び出す。このメソッドは、新規注文ビジネス プロセスが呼び出されたことを示す。
|
新規注文ビジネス プロセス
新規注文ビジネス プロセスは、注文された商品が社内在庫では用意できない場合に、工場の在庫に新しい商品を申請するプロセスを定義します。
このビジネス プロセスは、商品が社内在庫にない場合に注文申請ビジネス プロセスによって開始されます。このビジネス プロセスは、商品の工場在庫をチェックします。商品が工場の在庫で用意できる場合は、このビジネス プロセスは注文プロセスを終了します。商品が工場の在庫では用意できない場合は、このビジネス プロセスは新しく商品を生産するように製造部門に通知し、請求および出荷ビジネス プロセスを起動します。
新規注文ビジネス プロセスを WebLogic Workshop で表示するには、[アプリケーション] ウィンドウで workflow/OrderNew.jpd ファイルをダブルクリックします。
各ノードの説明に従って、以下の手順を実行します。
ビジネス プロセス内のノードをダブルクリックしてノード ビルダを起動し、ノードの詳細を表示します。
必要に応じて、ノード ビルダで、またはノードを右クリックして [コードの表示] を選択し、関連するコードを [ソース ビュー] ウィンドウで表示します。
次の表では、新規注文ビジネス プロセス内の各ノードについて説明します。
表 4-6 新規注文ビジネス プロセスの処理手順
ビジネス プロセス ノード
|
説明
|
|
ビジネス プロセス (注文された商品が在庫切れであることを示す注文申請ビジネス プロセスからの呼び出し) を開始する非同期イベントを定義する。
クライアント要求ノードが、InputDocument 引数として注文を受け取る。
|
|
メッセージを適切な形式に変換する。
戻り値のあるコントロール送信ノードは、TransformsInputMessage.dtf データ トランスフォーメーション コントロールのインスタンスである m_Ixform を使用して、getInput() メソッドを呼び出す。このメソッドは、InputDocument タイプから受け取ったメッセージを Input タイプに変換する。
|
|
注文された商品の工場の在庫をチェックする。
コントロール送信ノードは、Appview1.jcx アプリケーション ビュー コントロールのインスタンスである m_AppView を使用して、CheckInventory() メソッドを呼び出す。このメソッドは、アプリケーション ビューと対話して工場の在庫をチェックする。
また、このノードは、Transforms.dtf データ トランスフォーメーション コントロールのインスタンスである m_xform を使用して、次のメソッドを呼び出す。
|
|
現在の注文の注文追跡 ID を取得する。
戻り値のあるコントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、findByPrimaryKey() メソッドを呼び出す。このメソッドは、現在の注文の注文追跡 ID を検索する。
|
|
注文された商品が工場の在庫で用意できるかどうかに基づいて、ビジネス プロセス フローを分岐する。商品が用意できる場合、このビジネス プロセスは UpdateAppStatusAvailability ノードに進む。商品が用意できない場合、このビジネス プロセスは Not Available ノードに進む。
分岐ノードは、isApproved() Java メソッドを呼び出し、その結果に応じてビジネス プロセス フローを分岐させる。
|
|
注文ステータスを更新する。
コントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、setDescRemote() メソッドを呼び出す。このメソッドは、注文された商品を社内在庫で用意できることを示す。
|
|
注文された商品を用意できなかった理由が在庫切れであるか、または別の条件によるものかどうかに基づいて、ビジネス プロセス フローを分岐する。商品が在庫切れのため用意できない場合、このビジネス プロセスは UpdateAppStatusNonAvailability ノードに進む。商品が別の理由のため用意できない場合、注文プロセスが終了する。
分岐ノードは、isNotAvailable() メソッドを呼び出し、その結果に応じてビジネス プロセス フローを分岐させる。
|
|
注文ステータスを更新する。
コントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、setDescRemote() メソッドを呼び出す。このメソッドは、注文された商品を社内在庫で用意できないことを示す。
|
|
新しい商品を生産する必要があることを製造部門に通知する。
コントロール送信ノードは、NotifyManufacturingControl.jcx Web サービス コントロールのインスタンスである notifyManufacturingControl を使用して、notifyMethod() メソッドを呼び出す。このメソッドは、製造部門に通知する。
|
|
新しい商品 (製造部門によって生産されたばかりの商品) に対する請求を作成し、配達先に出荷するように、請求部門および出荷部門に要求する。
コントロール送信ノードは、Publish.jcx メッセージ ブローカ コントロールのインスタンスである mPublish を使用して、notifyMethod() メソッドを呼び出す。このメソッドは、要求を請求部門および出荷部門に送信する。
このノードは、要求を送信する前に、TransformsNetworkMessage.dtf データ トランスフォーメーション コントロールのインスタンスである m_NetTransform を使用して、transformToBasicTypedNet() メソッドを呼び出す。このメソッドは、メッセージ ブローカへの配信に備えて、要求を中間フォーマットである NetMessageDocument に変換する。
|
請求ビジネス プロセス
請求ビジネス プロセスは、注文された商品の請求に必要な一連のタスクを定義します。
このビジネス プロセスは、商品を製造部門で生産する必要がある場合に、新規注文ビジネス プロセスによって開始されます。このビジネス プロセスは、注文の発生場所をチェックします。注文が社内で発生した場合、ビジネス プロセスは該当する部門に請求します。注文が社外で発生した場合、ビジネス プロセスは請求書を作成し、配達先に送信します。
このビジネス プロセスを WebLogic Workshop で表示するには、[アプリケーション] ウィンドウで workflow/WorkflowBilling.jpd ファイルをダブルクリックします。
各ノードの説明に従って、以下の手順を実行します。
ビジネス プロセス内のノードをダブルクリックしてノード ビルダを起動し、ノードの詳細を表示します。
必要に応じて、ノード ビルダで、またはノードを右クリックして [コードの表示] を選択し、関連するコードを [ソース ビュー] ウィンドウで表示します。
次の表では、請求ビジネス プロセス内の各ノードについて説明します。
表 4-7 請求ビジネス プロセスの処理手順
ビジネス プロセス ノード
|
説明
|
|
請求関連のメッセージを受け取るビジネス プロセスを開始する非同期イベントを定義する。
クライアント要求ノードは、Publish.jcx メッセージ ブローカ コントロールのインスタンスである mPublish を使用して、subscription() メソッドを呼び出す。このメソッドは、チャネル名に end2end/billingshipping を指定してメッセージ ブローカをサブスクライブする。このノードは、受信した NetMessageDocument 引数のdestination1 フィールドをフィルタの値、billing と比較するフィルタを使用する。
|
|
メッセージ ブローカの中間フォーマットである NetMessageDocument からメッセージを変換する。
戻り値のあるコントロール送信ノードは、TransformsNetworkMessage.dtf データ トランスフォーメーション コントロールのインスタンスである m_netTransforms を使用して、transformFromBasicNet() メソッドを呼び出す。このメソッドは、メッセージ ブローカが使用する NetMessageDocument タイプから受け取ったメッセージを InputDocument タイプに変換する。
|
|
メッセージを適切な形式に変換する。
戻り値のあるコントロール送信ノードは、TransformsInputMessage.dtf データ トランスフォーメーション コントロールのインスタンスである m_transformsInput を使用して、getInput() メソッドを呼び出す。このメソッドは、InputDocument タイプから受け取ったメッセージを Input タイプに変換する。
|
|
現在の注文の注文追跡 ID を取得する。
戻り値のあるコントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、findByPrimaryKey() メソッドを呼び出す。このメソッドは、現在の注文の注文追跡 ID を検索する。
|
|
注文ステータスを更新する。
コントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、setDescRemote() メソッドを呼び出す。このメソッドは、請求部門が注文を受け取ったことを示す。
|
|
注文が社内で発生したかどうかに基づいて、ビジネス プロセス フローを分岐する。注文が社内で発生した場合、このビジネス プロセスは Charge Dept ノードに進む。注文が社外で発生した場合、このビジネス プロセスは Not Intra Company ノードに進む。
分岐ノードは、isIntra() メソッドを呼び出し、その結果に応じてビジネス プロセス フローを分岐させる。
|
|
該当する部門に請求し、社内注文を処理する。
実行ノードは、chargeDept() Java メソッドを呼び出して、該当する部門に請求する。
|
|
注文ステータスを更新する。
コントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、setDescRemote() メソッドを呼び出す。このメソッドは、該当する部門に請求が行われたことを示す。
|
|
注文が社外で発生したかどうかに基づいて、ビジネス プロセス フローを分岐する。注文が社外で発生した場合、このビジネス プロセスは GenerateBill ノードに進む。その他の条件が発生した場合は、注文プロセスが終了する。
分岐ノードは、isNotIntra() メソッドを呼び出し、その結果に応じてビジネス プロセス フローを分岐させる。
|
|
注文に対する請求書を作成する。
コントロール送信ノードは、GenerateBillControl.jcx Web サービス コントロールのインスタンスである billCtrl を使用して、generateBill() メソッドを呼び出す。このメソッドは、注文に対する請求書を作成する。
|
|
注文ステータスを更新する。
コントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、setDescRemote() メソッドを呼び出す。このメソッドは、請求書が作成されたことを示す。
|
出荷ビジネス プロセス
出荷ビジネス プロセスは、注文された商品の配達に必要な一連のアクションを定義します。
このビジネス プロセスは、注文された商品を製造部門で生産する必要がある場合に、新規注文ビジネス プロセスによって開始されます。このビジネス プロセスは、配達をスケジュールし、出荷通知を生成します。
このビジネス プロセスを WebLogic Workshop で表示するには、[アプリケーション] ウィンドウで workflow/WorkflowShipping.jpd ファイルをダブルクリックします。
各ノードの説明に従って、以下の手順を実行します。
ビジネス プロセス内のノードをダブルクリックしてノード ビルダを起動し、ノードの詳細を表示します。
必要に応じて、ノード ビルダで、またはノードを右クリックして [コードの表示] を選択し、関連するコードを [ソース ビュー] ウィンドウで表示します。
次の表では、出荷ビジネス プロセス内の各ノードについて説明します。
表 4-8 出荷ビジネス プロセスの処理手順
ビジネス プロセス ノード
|
説明
|
|
出荷関連のメッセージを受け取るビジネス プロセスを開始する非同期イベントを定義する。
クライアント要求ノードは、Publish.jcx メッセージ ブローカ コントロールのインスタンスである mPublish を使用して、subscription() メソッドを呼び出す。このメソッドは、チャネル名に end2end/billingshipping を指定してメッセージ ブローカをサブスクライブする。このノードは、受信した NetMessageDocument 引数の destination2 フィールドをフィルタの値 shipping と比較するフィルタを使用する。
|
|
メッセージ ブローカの中間フォーマットである NetMessageDocument からメッセージを変換する。
戻り値のあるコントロール送信ノードは、TransformsNetworkMessage.dtf データ トランスフォーメーション コントロールのインスタンスである m_netTransforms を使用して、transformFromBasicNet() メソッドを呼び出す。このメソッドは、メッセージ ブローカが使用する NetMessageDocument タイプから受け取ったメッセージを InputDocument タイプに変換する。
|
|
メッセージを適切な形式に変換する。
戻り値のあるコントロール送信ノードは、TransformsInputMessage.dtf データ トランスフォーメーション コントロールのインスタンスである m_transformsInput を使用して、getInput() メソッドを呼び出す。このメソッドは、InputDocument タイプから受け取ったメッセージを Input タイプに変換する。
|
|
現在の注文の注文追跡 ID を取得する。
戻り値のあるコントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、findByPrimaryKey() メソッドを呼び出す。このメソッドは、現在の注文の注文追跡 ID を検索する。
|
|
注文ステータスを更新する。
コントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、setDescRemote() メソッドを呼び出す。このメソッドは、出荷部門が注文を受け取ったことを示す。
|
|
注文された商品の配達をスケジュールする。
実行ノードは、schedule() Java メソッドを呼び出して、配達をスケジュールする。
|
|
注文ステータスを更新する。
コントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、setDescRemote() メソッドを呼び出す。このメソッドは、注文の出荷がスケジュールされたことを示す。
|
|
注文された商品の出荷通知を作成する。
実行ノードは、shippingNotification() Java メソッドを呼び出して出荷通知を作成する。
|
|
注文ステータスを更新する。
コントロール送信ノードは、e2eOrderTrackingEJB.jcx EJB コントロールのインスタンスである m_OrderTrack を使用して、setDescRemote() メソッドを呼び出す。このメソッドは、出荷レポートが作成されたことを示す。
|