ルーティング定義画面上に、メッセージの同報・条件分岐を定義します。
同報・条件分岐は、実行ルートを出力するように関連付けることで、メッセージの同報送信を定義することができます。また、条件ルートを出力するように関連付けることで、業務データに格納された値を条件としてメッセージを振り分ける定義を行うことができます。メッセージを振り分けるための条件式は、条件ルートの詳細情報で定義します。そのため、同報・条件分岐に詳細を定義する画面はありません。
ルーティング定義画面上に、業務データの値を条件式で判定した結果を元に、メッセージの送信先を振り分けるための条件ルートを定義します。
条件ルートは、同報・条件分岐からルーティングされるメッセージの内容を条件式で評価し、結果がtrueとなる場合のルーティング先を定義します。
また、条件ルートでは、補償処理メッセージが通過する補償ルートを定義することができます。
補償ルートの定義は、“5.2.4.7 補償ルートの設定”を参照してください。
メッセージの条件ルートは、複数のルートを指定することができます。
以下に[条件ルート定義]画面の通常ルートの設定イメージを示します。
メッセージ優先度設定により、優先度を変更するメッセージの条件式を指定することができます。メッセージ分岐条件設定により、メッセージのルーティング先を振り分ける条件式を指定することができます。
それぞれの設定画面の詳細と設定方法については、“5.2.4.5 条件ルートの設定”の“■メッセージ優先度の設定”、“■メッセージ分岐条件の設定”を参照してください。
注意
メッセージ分岐条件設定とメッセージ優先度設定は、定義を行う画面は類似していますが、用途は以下のように異なります。
メッセージ分岐条件設定:メッセージの経路を変更する。
メッセージ優先度設定:同一経路上を流れるメッセージの優先順位を変更する。
同報・条件分岐の運用パターンを以下に示します。
通常の条件分岐
条件ルート(条件分岐)と実行ルート(同報分岐)が混在
上図の場合は、アプリケーションDが必ず通るルートであり、アプリケーションBかCが条件により分岐される運用形態です。
業務処理実行アプリケーションの繰り返し処理
上図の場合、条件式1がtrueとなるかぎり、アプリケーションBとアプリケーションAが繰り返し処理されます。条件式1がfalseとなった時点で、アプリケーションCへルーティングされます。
注意
1つの同報・条件分岐からルーティングされる複数の条件式で、trueとなる式が複数存在する場合、該当するすべての送信先へメッセージが送信されます。
以下に例を示します。ただし、概念図内のメッセージの内容を示す図は実際のルーティング定義画面では表示されません。
上図のようにアプリケーションBへの条件式とアプリケーションCへの条件式で、複数の式がtrueとなる場合は、複数の送信先へメッセージがルーティングされます。
なお、メッセージのルーティング中にメッセージを複数の送信先へ振り分ける運用を行った場合、処理結果のメッセージが複数存在することがあります。
複数の送信先へメッセージを振り分ける運用を行う場合は、receiveMessageメソッドを複数回発行し、すべての処理結果のメッセージを取得してください。