![]() ![]() ![]() ![]() |
この手順では、ValidateOrder サービスがメッセージをポストするチャネルからのコールバックを処理するロジックを指定するメッセージ パスを、ビジネス プロセスに作成します。
この場合、作成するメッセージ パスはビジネス プロセスの開始ノードに関連付けます。メッセージ パスは個々のノードまたはノード グループに関連付けることもできます。メッセージ パスを開始ノードに関連付けると、このパスでメッセージを受信した場合、パスに定義したロジックはビジネス プロセス全体に適用されます (これは、ビジネス プロセスの開始ノードに例外パスおよびタイムアウト パスを作成した場合も同じです)。個々のノードまたはノード グループに関連付けたパスに定義したロジックは、個々のノードまたはノード グループに適用されます。ビジネス プロセスのメッセージ パス、例外パス、およびタイムアウト パスの詳細については、「関連トピック」を参照してください。
この手順では、以下のタスクを処理するメッセージ パスをビジネス プロセスに設計する方法を学習します。
メッセージ パスは、ブロック要素を含む個々のノードまたはノードのグループ、あるいはビジネス プロセス (グローバル) と関連付けることができます。この場合、開始ノードにメッセージ パスを指定することで、ビジネス プロセスのグローバル メッセージ パスを設計します。
実行時にパスを呼び出すイベントのプレースホルダを含むパスが、デザイン ビューの開始ノードの右に作成されます。
注意 : | 手順 13 で作成したメッセージ ブローカ サブスクリプション コントロールでは、コールバック メソッドは定義されません。このメッセージ パスで Control Receive ノードを設計し、ビジネス プロセスがサブスクライブする StopQuote チャネルからのイベント メッセージを受信する方法を指定するカスタム コールバックを定義します。 |
[コントロール受信] ノードが [OnMessage] パスに追加されます。このノードでは、このパスがコントロールからのメッセージ受信を待機するよう指定します。
void onMessage(String message)
[OnMessage] パスの [コントロール受信] ノードが変更され、サブスクリプション コントロールのメソッドのバインディングが反映されます。ノード名は onMessage となり、開始ノード アイコンはメッセージ ブローカ サブスクリプション コントロールを反映します。メッセージ パスは次の図のようになります。
コントロールで予期されているパラメータのデータ型および名前 String message
が [コントロールが返す値] フィールドに表示されます。
java.lang.String
が設定されます。
これで、StopQuote メッセージ ブローカ チャネルから stopQuote 変数へのメッセージの割り当ては完了です。
これで、RequestQuote ビジネス プロセスがサブスクライブする StopQuote チャネルのメッセージ イベントを処理するコールバック ハンドラの設計は完了しました。
注意 : | 前の手順では、StopQuote チャネルを介して ValidateOrder サービスから受信したメッセージを保持するための String 型の変数を作成しました。これは、見積り要求が無効な場合に、RequestQuote ビジネス プロセスがクライアントに送信するメッセージです。したがって、このノードでは String Java タイプが関係します。 |
java.lang.String
が表示されます。
[クライアントが予期する値] フィールドに、[一般的な設定] タブで指定したデータ型とパラメータ名 String stopQuote が表示されます。
デザイン ビューでは、ノード ビルダでのタスクが完了すると、[Send Quote] ノードに関連付けられている完了アイコンが から
に変わり、ノードの設計が完了したことを示します。
この手順では、このメッセージ パスがトリガされた場合のビジネス プロセスの実行時動作を指定する方法を学習します。これには、プロパティ エディタを使用して、メッセージ パスの after execute プロパティを設定します。
注意 : | BEA Workshop にプロパティ エディタが表示されていない場合は、メニュー バーから [ウィンドウ![]() ![]() |
このプロパティの有効な値は、skip と resume です。ここでは、学習を目的として説明しています。チュートリアルのシナリオでは、デフォルトの指定を変更する必要はありません。
skip - メッセージ パスの実行後に、メッセージ パスが関連付けられているノードまたはグループをプロセス エンジンがスキップするように指定します。つまり、メッセージ パスが定義されているノードまたはグループの次のノードでプロセス エンジンはプロセスの実行を再開します。グローバル メッセージ パス (ビジネス プロセスの開始ノードに定義されているメッセージ パス)のような特殊な場合には、プロセスはメッセージ パスの実行後に終了します。
resume- メッセージ パスの実行後に、プロセス エンジンが、メッセージを受信したときに実行中だったノードからビジネス プロセスの実行を再開するように指定します。つまり、プロセスの状態がメッセージ パス実行前の状態に戻り、On Message ポートはアクティブのままです。
これで、RequestQuote ビジネス プロセスのメッセージ パスの設計は完了しました。
この節が完了すると、RequestQuote ビジネス プロセスが、クライアントから受信する見積り要求メッセージを、メッセージ ブローカ チャネルにパブリッシュできるロジックが作成されたことになります。このチャネルには検証サービスがサブスクライブしています。また、別のメッセージ ブローカ チャネルへの動的サブスクリプションも作成しました。これにより、RequestQuote ビジネス プロセスが、検証サービスによってパブリッシュされたメッセージを受信できます。
チュートリアルの
Part IV の手順に従って作成したビジネス プロセスを実行するには、「
手順 15 : 見積り検証サービスを使用した見積り要求ビジネス プロセスの実行およびテスト」に進みます。
ビジネス プロセスへのメッセージ パス、例外パス、およびタイムアウト パスの設計については、『ビジネス プロセス構築ガイド』の以下のトピックを参照してください。
![]() ![]() ![]() |