![]() ![]() ![]() ![]() |
プロセス コントロールは、Java/RMI を使用して同じドメイン内の他のビジネス プロセスに要求を送信したり、そのビジネス プロセスから応答を受信したりするために使用されます。このシナリオは、親ビジネス プロセスからサブプロセスを呼び出すという、プロセス コントロールの一般的な使用例を示しています。
チュートリアルのこのパートでは、前のパートで作成したビジネス プロセスの設計を変更して、前に使用した税計算 Web サービスの代わりに、ビジネス プロセスで提供される税計算サービスを使用するようにします。これを行うには、まず税計算ビジネス プロセスからプロセス コントロールを作成します。その後で、コントロール ノードを変更して、ノードが Web サービス コントロールを介して税計算 Web サービスと通信するのではなく、新しいプロセス コントロールを介して税計算ビジネス プロセスと通信するようにします。
RequestQuote.java
を開きます。
プロジェクトですでに使用可能なコントロールのインスタンスが、[データ パレット] ビューの [コントロール] フォルダ内に表示されます。
[コントロールの挿入 - プロセス] ダイアログ ボックスが表示されます。
taxCalcProcess
を入力し、[次へ] をクリックします。TaxCalculationProcess
と入力し、[次へ] をクリックします。 /Tutorial_Process_Application_Web/src/requestquote.services/TaxCalcProcess.java
を選択します。
この Java ファイルは、RFQ の消費税を計算する単純なビジネス プロセスです。
TaxCalcProcess.java
(requestTaxRate) の開始メソッドが [開始メソッド] フィールドに表示されます。
プロセス コントロール (TaxCalcControl.java
) が作成され、[パッケージ・エクスプローラー] ビューに表示されます。コントロールのインスタンス (taxCalcProcess
) が [データ パレット] に追加されます。[データ パレット] ビュー内の [コントロール] 領域は、以下の図のように表示されます。
コントロール
] フォルダ下の [taxCalcProcess] の横にある [+] をクリックして、コントロールのメソッドのリストを展開します。 RequestQuote.java
プロセスの [requestTaxRate] ノード上にドロップします。
このコントロール ノードは、すでにコントロール メソッドに関連付けられています。このコントロール メソッドを置換しますか ?
[requestTaxRate] ノードは、関連付けられているコントロールのタイプを反映するように変更されます。ノードは以下のように変更されます。
taxCalcProcess
] が選択され、[メソッド] フィールドで以下のメソッドが選択されていることを確認します。void requestTaxRate (QuoteRequestDocument quoteRequest)
デフォルトで [変数の割り当て] オプションが選択され、[コントロールが予期する値] フィールドには QuoteRequestDocument quoteRequest と表示されて、税計算プロセスで必要なメッセージのフォーマットと型が示されます。
注意 : | 税計算プロセスでは、XML 型のメッセージ QuoteRequestDocument が必要です。これは、クライアントから RequestQuote.java プロセスに送られる XML メッセージが割り当てられている requestXML 変数と同じ型になります。「手順 4 : Web サービスの呼び出し」で税計算 Web サービスにデータを送信するシナリオとは異なり、このノードではトランスフォーメーションが不要です。変数の直接割り当てを作成できます。 |
この手順で、ビジネス プロセスを変更して、税計算 Web サービスの代わりに税計算ビジネス プロセスを呼び出すようにする処理が完了します。
taxCalcProcess
] の横にある [+] をクリックして、コントロールのメソッドのリストを展開します。RequestQuote.java
プロセスの [returnTaxRate] ノード上にドロップします。
このコントロール ノードは、すでにコントロール メソッドに関連付けられています。このコントロール メソッドを置換しますか ?
[returnTaxRate] ノードが、関連付けられているコントロールのタイプを反映するように変更されます。
void returnTaxRate(float salesTaxRate)
デフォルトで [変数の割り当て] オプションが選択され、[コントロールが返す値] フィールドには float salesTaxRate と表示されて、税計算プロセスから返されるパラメータの型と名前が示されます。
taxRate (float)
] を選択します。
この手順で、コールバック ハンドラを変更し、メッセージを税計算 Web サービスからではなく、税計算ビジネス プロセスから受け取るようにする処理が完了します。
この時点で前のパートでビジネス プロセスをテストしたのと同じ方法で、別のビジネス プロセスへの非同期呼び出しをもつビジネス プロセスを実行およびテストすることができます。「手順 5 : ビジネス プロセスの実行」の手順 1 ~ 7 を実行します。
[テスト フォーム] ページで操作を開始すると、[メッセージ ログ] の内容が更新されて、税計算ビジネス プロセスへの呼び出しと税計算ビジネス プロセスからの応答の概要が表示されます。
ビジネス プロセスのメソッドに対応する [メッセージ ログ] のエントリは次のとおりです。
quoteRequest
メソッド。taxCalcProcess.requestTaxRate
。ここでは、requestXML
変数に格納されている XML ドキュメント全体がサブプロセスに渡される点に注目します。これは、ビジネス プロセスが税計算 Web サービスを呼び出す場合に、state
フィールドのみが Web サービスに渡される点と異なります。taxCalcProcess.returnTaxRate
。Web サービスの戻り値と同じである、Web サービス SOAP エンベロープに返される税率の代わりに、プロセス コントロールは、float 値 (0.08
) をそのまま返します。
![]() ![]() ![]() |