チュートリアル : 初めてのビジネス プロセス構築

     前  次    目次     
ここから内容

手順 14 : ビジネス プロセスのメッセージ パスの設計

この手順では、ValidateOrder サービスがメッセージをポストするチャネルからのコールバックを処理するロジックを指定するメッセージ パスを、ビジネス プロセスに作成します。

この場合、作成するメッセージ パスはビジネス プロセスの開始ノードに関連付けます。メッセージ パスは個々のノードまたはノード グループに関連付けることもできます。メッセージ パスを開始ノードに関連付けると、このパスでメッセージを受信した場合、パスに定義したロジックはビジネス プロセス全体に適用されます (これは、ビジネス プロセスの開始ノードに例外パスおよびタイムアウト パスを作成した場合も同じです)。個々のノードまたはノード グループに関連付けたパスに定義したロジックは、個々のノードまたはノード グループに適用されます。ビジネス プロセスのメッセージ パス、例外パス、およびタイムアウト パスの詳細については、「関連トピック」を参照してください。

ここで実行するタスクは次のとおりです。

プロセスがサブスクライブしたチャネルを介してルーティングされたメッセージを処理するメッセージ パスをビジネス プロセスに作成するには

この手順では、以下のタスクを処理するメッセージ パスをビジネス プロセスに設計する方法を学習します。

メッセージ パスは、ブロック要素を含む個々のノードまたはノードのグループ、あるいはビジネス プロセス (グローバル) と関連付けることができます。この場合、開始ノードにメッセージ パスを指定することで、ビジネス プロセスのグローバル メッセージ パスを設計します。

StopQuote チャネルからメッセージ イベントを受信するノードを設計するには
  1. RequestQuote ビジネス プロセスがデザイン ビューに表示されていることを確認します。
  2. [Request Quote] ノード (開始ノード) を右クリックして、ドロップダウン メニューから [メッセージ パスを追加] を選択します。
  3. 実行時にパスを呼び出すイベントのプレースホルダを含むパスが、デザイン ビューの開始ノードの右に作成されます。



    注意 : 手順 13 で作成したメッセージ ブローカ サブスクリプション コントロールでは、コールバック メソッドは定義されません。このメッセージ パスで Control Receive ノードを設計し、ビジネス プロセスがサブスクライブする StopQuote チャネルからのイベント メッセージを受信する方法を指定するカスタム コールバックを定義します。
  4. メッセージ パスの [ダブルクリックして開始イベントを選択] (開始イベント) ノードをダブルクリックすると、このパスで選択できるノードのタイプが表示されます。
  5. [コントロール受信] を選択して、[閉じる] をクリックします。
  6. [コントロール受信] ノードが [OnMessage] パスに追加されます。このノードでは、このパスがコントロールからのメッセージ受信を待機するよう指定します。

  7. データ パレットで、mbSubValidate コントロールの次のメソッドをクリックします。
  8. void onMessage(String message)



  9. メソッドをメッセージ パス (OnMessage) にドラッグ アンド ドロップし、[Control Receive] ノードに配置します。
  10. [OnMessage] パスの [コントロール受信] ノードが変更され、サブスクリプション コントロールのメソッドのバインディングが反映されます。ノード名は onMessage となり、開始ノード アイコンはメッセージ ブローカ サブスクリプション コントロールを反映します。メッセージ パスは次の図のようになります。



  11. [onMessage] ノードをダブルクリックします。[一般的な設定] タブにノード ビルダが開きます。mbSubValidate コントロールとその void onMessage (String message) メソッドがすでに選択されています。
  12. [データの受信] をクリックして、ノード ビルダの 2 番目のタブを開きます。このタブでは、StopQuote チャネルから受信するメッセージが格納される変数を割り当てます。
  13. コントロールで予期されているパラメータのデータ型および名前 String message が [コントロールが返す値] フィールドに表示されます。

  14. [割り当てる変数を選択します] フィールドで、矢印をクリックしてプロジェクト内の変数を表示し、[変数の新規作成...] を選択します。[変数を作成] ダイアログ ボックスが表示されます。
  15. [変数名] フィールドに stopQuote と入力します。
  16. [変数の型の選択] ペインで、[単純] タブをクリックして、[クラス] を展開し、[String] を選択します。[型名] フィールドに、値 java.lang.String が設定されます。
  17. [OK] をクリックします。stopQuote 変数が作成され、[データの受信] タブ (およびデータ パレットの [変数] タブ) に表示されます。


  18. これで、StopQuote メッセージ ブローカ チャネルから stopQuote 変数へのメッセージの割り当ては完了です。

  19. [onMessage] ノード ビルダを閉じるには、[閉じる] をクリックします。
  20. これで、RequestQuote ビジネス プロセスがサブスクライブする StopQuote チャネルのメッセージ イベントを処理するコールバック ハンドラの設計は完了しました。

ビジネス プロセスが StopQuote チャネルから StopQuote メッセージを受信した場合にメッセージをクライアントに送信するノードを設計するには
  1. RequestQuote ビジネス プロセスがデザイン ビューに表示されていることを確認します。
  2. ノード パレットで、[Client Response] をクリックし、ノードをビジネス プロセスにドラッグ アンド ドロップして、メッセージ パスの [onMessage] サブスクリプション ノードの直後に配置します。デザイン ビューが更新され、[Client Response] ノードが表示されます。


  3. ノードの名前を Client Response から Deny Quote に変更します。
  4. [Deny Quote] ノードをダブルクリックして、ノード ビルダを開きます。
  5. [一般的な設定] タブで、[メソッド名] フィールドのデフォルト名を denyQuote に変更します。
  6. [追加] をクリックしてデータ型のパネルを表示します。
  7. 注意 : 前の手順では、StopQuote チャネルを介して ValidateOrder サービスから受信したメッセージを保持するための String 型の変数を作成しました。これは、見積り要求が無効な場合に、RequestQuote ビジネス プロセスがクライアントに送信するメッセージです。したがって、このノードでは String Java タイプが関係します。
  8. データ型のパネルで [単純] を選択し、[String] を選択します。[型] フィールドに java.lang.String が表示されます。
  9. [名前] フィールドで、stopQuote と入力して、デフォルトの x0 を置き換え、[OK] をクリックします。
  10. [データの送信] タブをクリックして、ビジネス プロセスがクライアントに送信するデータを保持する変数を割り当てることができるタブを開きます。
  11. [クライアントが予期する値] フィールドに、[一般的な設定] タブで指定したデータ型とパラメータ名 String stopQuote が表示されます。

  12. [割り当てる変数を選択します] の下で [stopQuote (String)] を選択します。


  13. [Client Response] ノード ビルダを閉じるには、[閉じる] をクリックします。
  14. デザイン ビューでは、ノード ビルダでのタスクが完了すると、[Send Quote] ノードに関連付けられている完了アイコンが から に変わり、ノードの設計が完了したことを示します。

  15. Workshop メニューから [ファイルArrow symbol保存] を選択します。
メッセージ パスがトリガされた場合のビジネス プロセスの動作を指定するには

この手順では、このメッセージ パスがトリガされた場合のビジネス プロセスの実行時動作を指定する方法を学習します。これには、プロパティ エディタを使用して、メッセージ パスの after execute プロパティを設定します。

  1. デザイン ビューで、[OnMessage] パス アイコンをクリックします。プロパティ エディタに [OnMessage] パスのプロパティが表示されます。
  2. 注意 : BEA Workshop にプロパティ エディタが表示されていない場合は、メニュー バーから [ウィンドウArrow symbol ビューの表示Arrow symbolプロパティ] を選択します。



  3. [OnMessage] パスの以下のプロパティを確認します。
    • [name] - メッセージ パスの名前 OnMessage が表示されます。パスに新しい名前を入力する場合は、このプロパティをクリックします。
    • [notes] - [notes] フィールド の [...] をクリックすると、テキスト エディタが起動し、テキストを追加できます。たとえば、これを使用して、このノードに関する情報を記録できます。
    • [after execute] - 実行時に、このメッセージ ノードがアクティブ化されたときのビジネス プロセスの動作を指定します。[skip] がデフォルトで指定されています。
    • このプロパティの有効な値は、skipresume です。ここでは、学習を目的として説明しています。チュートリアルのシナリオでは、デフォルトの指定を変更する必要はありません。

      skip - メッセージ パスの実行後に、メッセージ パスが関連付けられているノードまたはグループをプロセス エンジンがスキップするように指定します。つまり、メッセージ パスが定義されているノードまたはグループの次のノードでプロセス エンジンはプロセスの実行を再開します。グローバル メッセージ パス (ビジネス プロセスの開始ノードに定義されているメッセージ パス)のような特殊な場合には、プロセスはメッセージ パスの実行後に終了します。

      resume- メッセージ パスの実行後に、プロセス エンジンが、メッセージを受信したときに実行中だったノードからビジネス プロセスの実行を再開するように指定します。つまり、プロセスの状態がメッセージ パス実行前の状態に戻り、On Message ポートはアクティブのままです。

    • [retry count] - プロセス エンジンが、メッセージ パスに含まれるノードの実行を最初に試行してから、after execute パスが実行されるまでに、それらの実行を再試行する回数を指定します。デフォルトでは 0 が指定されています。

これで、RequestQuote ビジネス プロセスのメッセージ パスの設計は完了しました。

この節が完了すると、RequestQuote ビジネス プロセスが、クライアントから受信する見積り要求メッセージを、メッセージ ブローカ チャネルにパブリッシュできるロジックが作成されたことになります。このチャネルには検証サービスがサブスクライブしています。また、別のメッセージ ブローカ チャネルへの動的サブスクリプションも作成しました。これにより、RequestQuote ビジネス プロセスが、検証サービスによってパブリッシュされたメッセージを受信できます。

チュートリアルの Part IV の手順に従って作成したビジネス プロセスを実行するには、「 手順 15 : 見積り検証サービスを使用した見積り要求ビジネス プロセスの実行およびテスト」に進みます。

関連トピック

ビジネス プロセスへのメッセージ パス、例外パス、およびタイムアウト パスの設計については、『ビジネス プロセス構築ガイド』の以下のトピックを参照してください。


  ページの先頭       前  次