ルーティング定義画面は、メッセージのルーティング先の指定、および業務処理実行アプリケーションの呼び出し順序指定などのアプリケーション連携フローを設計する機能を提供します。
フロー定義エディタの[ルーティング定義]タブをクリックすると、ルーティング定義画面が表示されます。
ルーティング定義画面の画面構成を、以下に示します。
(1) ツールバー部:ルーティング定義で使用可能なアイコンが配置されています。
(2) パネル部:ツールバー部で選択されたアイコンを配置する領域です。
以下に、ルーティング定義画面のイメージを示します。
ルーティング定義画面におけるツールバーの構成とパネル部へ配置した際のイメージ、およびそれぞれの用途は、以下のとおりです。
No. | ツールバーアイコン | パネル部の表示 | アイコン名 | 用途 |
---|---|---|---|---|
(1) | (なし)(注) | 開始点 | ルーティング定義における開始点を表します。 | |
(2) | アクティビティ | キューの定義、およびメッセージの受信時に呼び出す業務処理実行アプリケーションを定義します。アイコンには、言語の区別(JavaまたはCOBOL)が表示されます。 | ||
(3) | 実行ルート | メッセージのルーティング先を指定します。 | ||
(4) | 同報・条件分岐 | メッセージを複数のアクティビティに同報送信する場合、または条件指定によりメッセージを振り分ける場合の分岐点となります。 | ||
(5) | 条件ルート | 同報・条件分岐から遷移するメッセージの内容を条件式で評価し、結果がtrueとなる場合のルーティング先を定義します。 | ||
(6) | 代行分岐 | 送信先のキューが閉塞状態であった場合の代行のルーティング先を指定するための分岐点となります。 | ||
(7) | 代行ルート | メッセージの代行のルーティング先を指定します。 | ||
(8) | 終了点 | メッセージを発行する業務処理開始アプリケーションで、処理結果のメッセージを取得するための定義を行います。 |
注) (1)はパネル部に初期状態で配置されるため、ツールバーからの追加はできません。
ルーティング定義におけるアクティビティや実行ルートなどの詳細情報は、アイコンをダブルクリックした際に表示されるダイアログボックスで設定することができます。ダイアログボックスをもつアイコンは、上記の中で(2)アクティビティ、(3)実行ルート、(5)条件ルート、(8)終了点です。
注意
アイコンの付加情報の表示について
アクティビティのアイコン、および条件ルートには、その詳細情報の一部が表示されます。最大8文字まで表示可能です。詳細情報が9文字以上の場合は、以下のように8文字目が省略表示“…”となります。
アイコンの設定が不十分な状態における表示について
ルーティング定義画面の編集中において、アイコンとルートの関連付けの設定が不十分な場合、または詳細情報にエラーがある場合、該当する箇所にが表示されます。
開始点は、フローの開始を意味します。開始点のアイコンは、画面の初期状態で1つ表示されており、追加・削除を行うことはできません。また、開始点には詳細情報を設定するダイアログボックスはありません。開始点のアイコンは、ルーティング定義画面上では以下のイメージで表示されます。
アクティビティの設定では、キューの定義、およびメッセージの受信時に呼び出す業務処理実行アプリケーションを定義します。
アクティビティのアイコンは、ルーティング定義画面上では以下のイメージで表示されます。アイコンには、言語の区別(COBOLまたはJava)が表示されます。
アクティビティのアイコンをダブルクリックすると、アクティビティ定義のダイアログボックスが表示されます。[アクティビティ定義]画面では、以下の詳細情報を定義します。
業務処理実行アプリケーションの定義
メッセージ格納キューの定義
補償ルートの定義
注意
アクティビティ定義では、定義情報が完全でない状態でもダイアログボックスを閉じることが可能です。ただし、定義情報が完全でない状態で[OK]をクリックした場合は、定義エラーが存在する状態で編集内容を確定するかどうかを確認するダイアログボックスが表示されます。このダイアログボックスで[いいえ]をクリックした場合は、エラー箇所にカーソルを位置付けます。
■業務処理実行アプリケーションの定義
業務処理実行アプリケーションの定義では、メッセージを受信した際に呼び出す業務処理実行アプリケーションについての定義を行います。
[アクティビティ定義]画面を開き、[業務処理実行アプリケーション]タブをクリックすると、設定画面が表示されます。
以下に、画面イメージと各部品の説明を示します。
COBOLの場合
Javaの場合
[アプリケーションの説明]
業務処理実行アプリケーションを識別するための説明を設定します。設定された値は、アクティビティのアイコンの付加情報として下図のように表示されます。
[呼出し定義]
メッセージの入出力を行う業務処理実行アプリケーションで受け渡す業務データを定義する[呼出し定義]画面を開きます。
参照
上記の各定義項目に関する規約については、“付録E 定義規約”を参照してください。
ポイント
資源定義の設定は、バッチ実行基盤のフロー定義でのみ使用します。
◆呼出し定義
呼出し定義では、メッセージの入出力を行う業務処理実行アプリケーションの業務処理またはメソッドを定義します。入力情報となる業務データを業務処理またはメソッドの引数に設定し、出力情報を格納する業務データを業務処理またはメソッドの復帰値に設定します。Javaの場合、複数のメソッドを定義し、呼び出す順序を指定することも可能です。
[アクティビティ定義]画面の[業務処理実行アプリケーション]タブ内の[呼出し定義]をクリックすると、設定画面が表示されます。
以下に、画面イメージと各部品の説明を示します。
COBOLの場合
[業務処理実行アプリケーション名]
業務処理実行アプリケーションの名前を指定します。アプリケーション連携実行基盤からの呼出し名として使用される名前を記述します。
[業務処理名]
呼出し対象の業務処理の名前を指定します。呼出し対象のCOBOLプログラムのプログラム名を記述します。
[復帰値を設定する業務データ]
呼び出す処理の復帰値を業務データへ反映する場合に指定します。復帰値の反映が不要の場合は、[復帰値を設定する業務データ]コンボボックスで[復帰値なし(void)]を選択してください。
[業務データ]
処理の引数として指定するための業務データの一覧を表示します。一覧内の業務データを選択した状態で[->]をクリックすると、業務データが引数の一覧へ移動されます。
[->]、[<-]
[->]は、業務データを[業務データ]一覧から[引数]一覧に移動します。[<-]は、業務データを[引数]一覧から[業務データ]一覧に移動します。業務データはリスト内で複数選択して移動することが可能です。
[引数]
処理の引数として、業務データを指定します。サーバ側のCOBOLプログラムに渡すパラメタを、COBOLプログラムに渡す順に定義します。引数の一覧に追加された業務データの上から順に、第1引数、第2引数、...となります。
メッセージ内に引き継がれていない業務データを引数に指定した場合、実行時には初期値が引き渡されます。データ型ごとの引数に設定される初期値については、“■業務データの引継ぎに関する規約”を参照してください。
[上へ]、[下へ]
[引数]一覧内の業務データを選択した状態で[上へ]、または[下へ]をクリックすると、引数の順序を変更することができます。
注意
業務処理実行アプリケーションは、呼出し定義で指定した値に従ってアプリケーション連携実行基盤から呼び出されます。COBOLの業務処理実行アプリケーションの開発時に作成するCOBOL実行基盤インタフェースの以下の設定項目は、呼出し定義と一致するように指定してください。異なる値が指定された場合、業務処理実行アプリケーションを正しく実行することができません。
呼出し定義の設定項目 | 呼出し定義に対応するCOBOL実行基盤インタフェースの設定項目 | 備考 |
---|---|---|
業務処理実行アプリケーション名 | サーバアプリケーション名(注1) |
|
業務処理名 | プログラム名(注1) |
|
引数(業務データ)の順序 | COBOLプログラムに渡すパラメタの順序(注2) | 引数の方向(IN、OUT、またはINOUT)は、COBOL実行基盤インタフェースの設定として指定します。 |
注1)COBOL開発支援ツールを使用して設定します。設定方法の詳細については、“14.4.5.3 COBOL実行基盤インタフェースを生成するアプリケーション情報の追加”の“■基本情報”を参照してください。
注2)COBOL開発支援ツールを使用して設定します。設定方法の詳細については、“14.4.5.3 COBOL実行基盤インタフェースを生成するアプリケーション情報の追加”の“■パラメタと復帰値情報”を参照してください。
Javaの場合
[クラス名]
クラスの名前を指定します。[クラス名]には、Javaパッケージの完全な名前を指定してください。Javaパッケージの完全な名前を指定しない場合は、業務処理実行アプリケーションを正しく実行することができません。
例)com.fujitsu.interstage.apfwsamples.flow.async.PaymentApp
[呼出し対象のメソッド]
呼出し対象のメソッドの一覧を表示します。[メソッドの追加・変更]領域内でメソッド情報を入力し、[メソッド追加]をクリックすると、この一覧へメソッド情報が追加されます。一覧内に追加されたメソッドは、実行時に上から順に呼び出されます。
[上へ]、[下へ]([呼出し対象のメソッド]用)
[呼出し対象のメソッド]一覧内のメソッドを選択した状態で[上へ]、または[下へ]をクリックすると、メソッドの呼び出し順序を変更することができます。
[変更]
[呼出し対象のメソッド]一覧内のメソッドを選択して[変更]をクリックすると、[メソッドの追加・変更]領域内で追加済みのメソッド情報を再編集できます。
再編集した内容を確定するには、[変更確定]をクリックします。再編集を取り消すには[変更取消]をクリックします。
[削除]
[呼出し対象のメソッド]一覧内のメソッドを選択して[削除]をクリックすると、メソッド情報が削除されます。
[メソッド名]
メソッド名を指定します。
[復帰値を設定する業務データ]
呼び出すメソッドの復帰値を業務データへ反映する場合に指定します。復帰値の反映が不要の場合は、[復帰値を設定する業務データ]コンボボックスで[復帰値なし(void)]を選択してメソッド追加を実行してください。[呼出し対象のメソッド]一覧には、復帰値がvoid型として追加されます。
[業務データ]
メソッドの引数として指定するための業務データの一覧を表示します。一覧内の業務データを選択した状態で[->]をクリックすると、業務データが引数の一覧へ移動されます。
[すべての業務データを入出力]
メソッドにおける情報の入出力には、個々の業務データを指定するか、または業務データ全体を指定することができます。[すべての業務データを入出力]をチェックした場合は、すべての業務データをまとめた情報(java.util.Mapオブジェクト)が、入力引数と復帰値に自動的に設定されます。詳細については、“15.4.3 業務処理の作成・修正”を参照してください。
[->]、[<-]
[->]は、業務データを[業務データ]一覧から[引数]一覧に移動します。[<-]は、業務データを[引数]一覧から[業務データ]一覧に移動します。業務データはリスト内で複数選択して移動することが可能です。
[引数]
メソッドの引数として、業務データを指定します。引数の一覧に追加された業務データの上から順に、第1引数、第2引数、...となります。引数に指定できる属性は入力情報だけとなるため、メソッドの呼び出し後、引数に指定した値が更新されても、業務データには反映されません。
メッセージ内に引き継がれていない業務データを引数に指定した場合、実行時には初期値が引き渡されます。データ型ごとの引数に設定される初期値については、“■業務データの引継ぎに関する規約”を参照してください。
なお、引数が業務データ全体(java.util.Map)の場合にも、引き継がれていない業務データには、同じ初期値が設定されます。
[上へ]、[下へ]([引数]一覧用)
[引数]一覧内の業務データを選択した状態で[上へ]、または[下へ]をクリックすると、引数の順序を変更することができます。
[メソッド追加]
[メソッドの追加・変更]領域内で編集中のメソッド情報を、[呼出し対象のメソッド]一覧へ新たに追加します。
[変更確定]
[変更]のクリックにより開始した追加済みメソッド情報の再編集の内容を確定し、[呼出し対象のメソッド]一覧に反映します。
[変更取消]
[変更]のクリックにより開始した追加済みメソッド情報の再編集を取り消し、[呼出し対象のメソッド]一覧を再編集前の状態に戻します。
参照
上記の各定義項目に関する規約については、“付録E 定義規約”を参照してください。
ポイント
呼出し対象のメソッドに資源の一覧を入力するかどうかの設定は、バッチ実行基盤のフロー定義でのみ使用します。
業務データ定義画面で業務データ名を変更した際、[呼出し定義]画面でその業務データが使用されている場合、連動して定義内容を変更するかどうかを確認するダイアログボックスが表示されます。
[業務データ名の変更をすべての使用箇所に適用します。]をチェックして[OK]をクリックした場合、[呼出し定義]画面内の該当する業務データ名が、一括で変更されます。
[業務データ名の変更をすべての使用箇所に適用します。]をチェックしないで[OK]をクリックした場合、業務データ名の変更は確定しますが、[呼出し定義]画面内の該当する業務データ名は変更されません。この場合、業務データ定義画面と[呼出し定義]画面の業務データ名で差異が生じます。差異が生じた箇所は、[呼出し定義]画面で以下のように表示されます。
[キャンセル]をクリックした場合は、業務データ定義画面における業務データ名の変更を取り消します。[呼出し定義]画面内の該当する業務データ名も変更されません。
■メッセージ格納キューの定義
メッセージ格納キューの定義では、メッセージを受信するキューに関する定義を行います。
[アクティビティ定義]画面を開き、[メッセージ格納キュー]タブをクリックすると、設定画面が表示されます。
以下に、画面イメージと各部品の説明を示します。
COBOLの場合
Javaの場合
[処理要求メッセージ格納キュー名称]
ルーティング定義画面上にあるアクティビティのキューを識別するための名称を設定します。なお、[処理要求メッセージ格納キュー名称]は、説明のための情報であり、非同期アプリケーション連携実行基盤の運用には関係ありません。Destination名と設計上のキュー名称が一致しない場合や、フロー定義で指定したDestination名に対応する設計名を指定する場合などに、コメント欄として使用してください。
[処理要求メッセージ格納キュー(Destination)]
キューのDestination名を入力します。プロパティ画面の[省略時に使用するキュー(Destination)]に値を設定することで、省略できます。ただし、[省略時に使用するキュー(Destination)]が設定されていない場合、またはそのアクティビティが代行ルートの出力先になっている場合には、入力は必須となります。[省略時に使用するキュー(Destination)]については、“5.2.6 プロパティ”を参照してください。
参照
上記の各定義項目に関する規約については、“付録E 定義規約”を参照してください。
注意
同じ処理要求メッセージ格納キューを1つのルート上に複数使用することも可能です。その場合、キューごとに異なる業務処理実行アプリケーションを定義することが可能となります。ただし、代行ルート上のアクティビティと、通常ルート上のアクティビティでは、同じキューを指定することはできません。
1つの処理要求メッセージ格納キューを、複数のフロー定義で配置することが可能です。その場合、おのおので異なる業務処理実行アプリケーションを定義することも可能となります。
処理要求メッセージ格納キューを未設定のまま定義情報を保存した場合、定義ファイルをフロー定義DBへ登録する際に、プロパティ画面の[省略時に使用するキュー(Destination)]の値が自動的に設定されます。詳細については、“5.2.6 プロパティ”を参照してください。
■補償ルート定義
“5.2.4.7 補償ルートの設定”の“■アクティビティ定義における補償ルートの設定”を参照してください。
実行ルートの設定では、非同期アプリケーション連携実行基盤におけるメッセージのルーティング先を定義します。実行ルートは、ルーティング定義画面上では以下のイメージで表示されます。
実行ルートをダブルクリックすると、実行ルート定義のダイアログボックスが表示されます。[実行ルート定義]画面では、以下の詳細情報を定義します。
通常ルート
補償ルート
■通常ルートの設定
通常ルートの設定では、メッセージに含める業務データ、およびそのメッセージの優先度を定義します。
[実行ルート定義]画面を開き、[通常ルート]タブをクリックすると、設定画面が表示されます。
以下に、画面イメージと各部品の説明を示します。
[メッセージに含める業務データ]
実行ルート上のメッセージに含める業務データを指定します。
[->]
業務データを、[メッセージから削除する業務データ]の一覧に移動します。業務データは、一覧内で複数選択して移動することが可能です。
[<-]
業務データを、[メッセージに含める業務データ]の一覧に移動します。業務データは、一覧内で複数選択して移動することが可能です。
[メッセージから削除する業務データ]
実行ルート上のメッセージから削除する業務データを指定します。業務データ定義画面でコリレーションIDとして設定された業務データは、メッセージから削除することはできません。
[メッセージ優先度設定]
[メッセージ優先度設定]画面を表示して、メッセージの優先度を条件により設定します。[メッセージ優先度設定]画面については、“5.2.4.5 条件ルートの設定”の“■メッセージ優先度の設定”を参照してください。
注意
[実行ルート定義]画面の初期状態では、すべての業務データが[メッセージに含める業務データ]の一覧に設定されます。ただし、フロー定義名を意味する業務データについては、必ずメッセージに含まれることになっており、削除する対象に指定する必要がないため、この一覧には表示されません。フロー定義名を意味する業務データについては、“5.2.3.1 業務データ定義画面の概要”を参照してください。
業務データ定義画面で業務データ名を変更した際に、[実行ルート定義]画面([条件ルート定義]画面についても以下同様)でその業務データが使用されている場合、連動して定義内容を変更するかどうかを確認するダイアログボックスが表示されます。
[業務データ名の変更をすべての使用箇所に適用します。]をチェックして[OK]をクリックした場合、[実行ルート定義]画面内の該当する業務データが、一括で変更されます。
[業務データ名の変更をすべての使用箇所に適用します。]をチェックしないで[OK]をクリックした場合、業務データ名の変更は確定しますが、[実行ルート定義]画面内の該当する業務データ名は変更されません。この場合、業務データ定義画面と[実行ルート定義]画面の業務データで差異が生じます。差異が生じた箇所は、[実行ルート定義]画面で以下のように表示されます。
[キャンセル]をクリックした場合は、業務データ定義画面における業務データ名の変更を取り消します。[実行ルート定義]画面内の該当する業務データ名も変更されません。
■補償ルートの設定
補償ルートの設定では、補償処理メッセージが通過するための補償ルートを定義します。補償ルートの設定については、“5.2.4.7 補償ルートの設定”の“■実行ルート定義、または条件ルート定義における補償ルートの設定”を参照してください。
■メッセージの同報送信について
実行ルートは、同報・条件分岐を用いることにより、複数のルーティング先へのメッセージの同報送信を指定することができます。同報・条件分岐には、詳細情報を設定するためのダイアログボックスはありません。
同報・条件分岐により設定された同報送信の実行ルートは、ルーティング定義画面上で以下のように表示されます。
条件ルートの設定では、業務データの値を条件式で判定した結果を元に、メッセージの送信先を振り分けるための定義を行います。条件ルートは、ルーティング定義画面上では以下のイメージで表示されます。
条件ルートは、始点を同報・条件分岐に関連付ける必要があります。同報・条件分岐は、ルーティング定義画面上では以下のイメージで表示されます。
同報・条件分岐は、ルートの分岐点を表すアイコンです。ただし、ルートを振り分けるための条件はそれぞれの条件ルートの詳細情報で設定するため、詳細情報を設定するためのダイアログボックスはありません。
同報・条件分岐には、複数の条件ルートを設定することも可能です。1つの同報・条件分岐から出る複数のルートにおいて、条件がtrueとなるルートが複数存在する場合、該当するすべてのルートへメッセージが送信されます。
同報・条件分岐により設定された条件ルートは、ルーティング定義画面上で以下のように表示されます。
条件ルートをダブルクリックすると、条件ルート定義のダイアログボックスが表示されます。[条件ルート定義]画面では、以下の詳細情報を定義します。
通常ルート
補償ルート
■通常ルートの設定
通常ルートの設定では、メッセージに含める業務データ、およびそのメッセージの優先度と分岐条件を定義します。
[条件ルート定義]画面を開き、[通常ルート]タブをクリックすると、設定画面が表示されます。
以下に、画面イメージと各部品の説明を示します。
[メッセージに含める業務データ]
条件ルート上のメッセージに含める業務データを指定します。
[->]
業務データを、[メッセージから削除する業務データ]の一覧に移動します。業務データは、一覧内で複数選択して移動することが可能です。
[<-]
業務データを、[メッセージに含める業務データ]の一覧に移動します。業務データは、一覧内で複数選択して移動することが可能です。
[メッセージから削除する業務データ]
条件ルート上のメッセージから削除する業務データを指定します。業務データ定義画面でコリレーションIDとして設定された業務データは、メッセージから削除することはできません。
[メッセージ優先度設定]
[メッセージ優先度設定]画面を表示して、メッセージの優先度を条件により設定します。[メッセージ優先度設定]画面については、“■メッセージ優先度の設定”を参照してください。
[メッセージ分岐条件設定]
[メッセージ分岐条件設定]画面を表示して、業務データの値の条件によりメッセージのルーティング先を振り分ける設定を行います。[メッセージ分岐条件設定]画面については、“■メッセージ分岐条件の設定”を参照してください。
注意
[条件ルート定義]画面の初期状態では、すべての業務データが[メッセージに含める業務データ]の一覧に設定されます。ただし、フロー定義名を意味する業務データについては、必ずメッセージに含まれることになっており、削除する対象に指定する必要がないため、この一覧には表示されません。フロー定義名を意味する業務データについては、“5.2.3.1 業務データ定義画面の概要”を参照してください。
■補償ルートの設定
補償ルートの設定では、補償処理メッセージが通過するためのルートを定義します。補償ルートの設定については、“5.2.4.7 補償ルートの設定”の“■実行ルート定義、または条件ルート定義における補償ルートの設定”を参照してください。
■メッセージ優先度の設定
メッセージ優先度の設定では、同一ルート上を流れるメッセージの優先度の変更を定義します。優先度を変更するには、メッセージに含まれる業務データの値に対する条件式を定義します。メッセージが条件式を設定したルート上を通過する際に条件式がtrueとなった場合、指定された優先度に変更します。メッセージの優先度制御に関する機能概要については、“4.3 フローの設計”の“■優先度制御機能”を参照してください。
[実行ルート定義]画面、または[条件ルート定義]画面の[メッセージ優先度設定]をクリックすると、以下のようなメッセージ優先度設定のダイアログボックスが表示されます。
[比較元データ名]
条件式の比較元となる業務データを指定します。
[要素番号]
該当するデータが配列型の場合に指定します。比較元データ、または比較対象値に指定されたデータが配列型以外の場合は指定できません。
[比較条件]
比較元データ名と比較対象値の比較条件として演算子を指定します。
比較条件の詳細については、“■条件式における比較条件について”を参照してください。
[比較対象値]
条件式の比較対象となるデータを指定します。
複数の条件式を指定するための論理演算
条件式は、最大5個まで指定することが可能です。それらの式の関係を、ANDまたはORの論理演算で指定します。条件式は、上に定義された方が優先して評価されます。
[メッセージ優先度]
ルートを通過する際のメッセージの優先度を指定します。上記1~5に示す部品で指定された条件を満たす場合だけ、メッセージの優先度を変更します。条件式が指定されない場合は、ルート上を通過するすべてのメッセージが選択された優先度に変更されます。
メッセージ優先度は、以下の項目から選択します。
選択項目 | 説明 |
---|---|
受信した優先度を引き継ぐ | メッセージを受信した際の優先度をそのまま引き継ぎ、優先度を変更しないでメッセージを送信します。 |
高い | メッセージがルートを通過する際、優先度を「高い」で送信します。優先度が「高い」で送信されたメッセージは、各キューの受信処理・送信処理で優先的に実行されます。 |
普通 | メッセージがルートを通過する際、優先度を「普通」で送信します。優先度が「普通」で送信されたメッセージは、各キューの受信処理・送信処理で「高い」に次ぐ優先度で実行されます。 |
低い | メッセージがルートを通過する際、優先度を「低い」で送信します。優先度が「低い」で送信されたメッセージは、各キューの受信処理・送信処理で「普通」に次ぐ優先度で実行されます。 |
参照
上記の各定義項目に関する規約については、“付録E 定義規約”を参照してください。
■メッセージ分岐条件の設定
メッセージ分岐条件の設定では、メッセージの経路の振り分けを定義します。経路の振り分けを設定するには、メッセージに含まれる業務データの値に対する条件式を定義します。メッセージは、メッセージ分岐条件の条件式がtrueとなった場合だけルートを通過することができます。
[条件ルート定義]画面の[メッセージ分岐条件設定]をクリックすると、以下のようなメッセージ分岐条件設定のダイアログボックスが表示されます。
[条件不成立時に実行]
[条件不成立時に実行]をチェックした場合、その条件ルートは、1つの同報・条件分岐から出力している複数の条件ルートにおいて、それらすべての条件が不成立であった場合に通過するルートとして扱われます。条件不成立時に実行するルートは、複数設定することも可能です。また、[条件不成立時に実行]をチェックした場合は、以下の2~6の条件式を入力することはできません。
注意
同報・条件分岐から実行すべき条件ルートがない場合に、条件不成立と判断します。1つの同報・条件分岐から出力しているルートがすべて条件不成立時の条件ルートである場合(通常の条件ルートが設定されていない場合)は、つねに条件不成立となり、条件不成立時の条件ルートが実行されます。
[比較元データ名]
条件式の比較元となる業務データを指定します。
[要素番号]
該当するデータが配列型である場合に指定します。比較元データ、または比較対象値に指定されたデータが配列型の場合は、必ず指定してください。
[比較条件]
比較元データ名と比較対象値の比較条件として演算子を指定します。比較条件の詳細については、“■条件式における比較条件について”を参照してください。
[比較対象値]
条件式の比較対象となるデータを指定します。
複数の条件式を指定するための論理演算
条件式は、最大5個まで指定することが可能です。それらの式の関係を、ANDまたはORの論理演算で指定します。条件式は、上に定義された方が優先して評価されます。
参照
上記の各定義項目に関する規約については、“付録E 定義規約”を参照してください。
■条件式における比較条件について
比較元データと比較対象値を比較する際の条件について、以下に示します。
数値型の比較元データが指定された場合の比較対象値の条件
比較元データの型が数値型(Byte、Short、Integer、Long、Float、Double)の場合は、比較対象値に数値型のデータを指定する必要があります。
数値として指定できる範囲は、Long型(8バイト整数)、またはDouble型(8バイト浮動小数点数)で表現可能な値です。数値は、10進数で指定してください。数値に小数点がない場合(57、-957など)は、Longの範囲の数値として扱われます。数値に小数点または指数がある場合(7.、.8、-95.7、3e1、1.0E-3など)は、Doubleの範囲の数値として扱われます。
文字列型の比較元データが指定された場合の比較対象値の条件
比較元データが文字列型(String)の場合は、比較対象値に文字列型のデータを指定する必要があります。
比較対象値として文字列を指定するには、単一引用符で文字列を囲む必要があります。
例)'ABCDEF'、'123-456'、'a'、'ABC伝票'
空文字列は単一引用符だけ('')で指定します。
単一引用符で囲まれた文字列中に単一引用符を指定する場合は、単一引用符を2つ記述してください。
例)abc'def'ghを指定する場合、'abc''def''gh'と記述する。
注意
実行時の文字列比較では、比較元データと比較対象値の文字コードが異なり、かつ値の中に正しく変換ができない文字が含まれていた場合、文字列が一致していても評価結果がfalseになる場合があります。正しく変換ができない文字については、“付録E 定義規約”を参照してください。
比較対象値に業務データ名を指定する場合の条件
比較対象値として業務データ名を指定する場合は、単一引用符で囲まずに業務データ名だけを指定してください。
比較元データ名と比較対象値の両方に業務データ名が指定された場合、以下に示す一覧で“○”となっている型どうしの比較が可能です。“○”となっていない型どうしの比較が行われた場合は、定義エラーになります。
| Boolean | Byte | Short | Integer | Long | Float | Double | String |
---|---|---|---|---|---|---|---|---|
Boolean | ○ | - | - | - | - | - | - | - |
Byte | - | ○ | ○ | ○ | ○ | ○ | ○ | - |
Short | - | ○ | ○ | ○ | ○ | ○ | ○ | - |
Integer | - | ○ | ○ | ○ | ○ | ○ | ○ | - |
Long | - | ○ | ○ | ○ | ○ | ○ | ○ | - |
Float | - | ○ | ○ | ○ | ○ | ○ | ○ | - |
Double | - | ○ | ○ | ○ | ○ | ○ | ○ | - |
String | - | - | - | - | - | - | - | ○ |
上記一覧の各データ型には、配列型も含みます。たとえば、String配列型はString型と同様であり、その他のデータ型についても同様です。
ユーザ定義型情報、およびバイナリの業務データは指定できません。ユーザ定義型情報、またはバイナリの業務データを条件式に指定した場合は、定義エラーになります。
比較元データまたは比較対象値に指定する業務データにおいて、実行時に格納される数値に非数(NaN)、正の無限大値、または負の無限大値が設定された場合は、評価結果がつねにfalseになります。
比較元データまたは比較対象値に指定する業務データにおいて配列型の値を比較する際、アプリケーション実行時に存在しない要素番号が指定された場合(たとえば、フロー定義では配列要素100番めの値を指定しているにもかかわらず、アプリケーション実行時には配列数が5個しか存在しない)、評価結果はつねにfalseになります。
Boolean型の比較元データ名が指定された場合の比較対象値の条件
比較元データがBoolean型の場合は、比較対象値にBoolean型の値(trueまたはfalse)を指定する必要があります。Boolean型の値以外が指定された場合、定義エラーになります。
比較条件で使用可能な演算子
条件式内で指定可能な比較条件の演算子は、比較元データの型により異なります。以下に示す一覧で“○”となっている箇所が、比較元データで指定された型に対する演算子として使用できます。使用できない演算子で比較が行われた場合、定義エラーになります。
| = | > | >= | < | <= | <> |
---|---|---|---|---|---|---|
Boolean | ○ | - | - | - | - | ○ |
Byte | ○ | ○ | ○ | ○ | ○ | ○ |
Short | ○ | ○ | ○ | ○ | ○ | ○ |
Integer | ○ | ○ | ○ | ○ | ○ | ○ |
Long | ○ | ○ | ○ | ○ | ○ | ○ |
Float | ○ | ○ | ○ | ○ | ○ | ○ |
Double | ○ | ○ | ○ | ○ | ○ | ○ |
String | ○ | - | - | - | - | ○ |
代行ルートは、実行ルートへのメッセージ送信ができなくなった場合に備えるためのルートです。非同期アプリケーション連携実行基盤では、送信先のキューが閉塞状態の場合、または送信先のキューへの送信に失敗した場合、代行ルートへメッセージを自動的に送信します。
代行ルートは、ルーティング定義画面上では以下のイメージで表示されます。
代行ルートは、始点を代行分岐に関連付ける必要があります。代行分岐は、代行ルートの分岐点を表すアイコンです。ルーティング定義画面上では以下のイメージで表示されます。
代行分岐に入力するルートは、実行ルートにする必要があります。代行分岐に入力する実行ルートは、複数設定することも可能です。代行分岐から出力するルートは、実行ルートと代行ルートの1組で定義する必要があり、それ以上のルートは設定できません。ルーティング先は、どちらもアクティビティを指定する必要があります。
代行分岐により設定された代行ルートは、ルーティング定義画面上で以下のように表示されます。
代行ルート、および代行分岐には、詳細情報を設定するためのダイアログボックスはありません。
補償ルートは、特定のアプリケーションで異常が発生した場合に、取消し用アプリケーションを呼び出すメッセージを送信するためのルートです。非同期アプリケーション連携実行基盤では、キューでメッセージを受信してから業務処理実行アプリケーションを呼び出し、次のキューへメッセージを送信するまでの間にユーザが指定した異常が発生した場合、メッセージが通過してきた処理を取り消すための補償処理メッセージを送信することができます。
補償処理メッセージは、ユーザが指定した補償ルートを通るメッセージであり、すでに処理が完了した業務処理実行アプリケーションに対し、取消し処理を行う業務処理実行アプリケーションを呼び出します。補償処理メッセージは、実行ルート、条件ルートに対して補償ルートを定義することで、異常が発生した際に受信したメッセージが通過してきた経路を逆に戻るようにルーティングされます。補償ルート制御に関する機能概要については“2.4.3 補償ルート制御機能”を参照してください。
補償ルートに関する設定は、以下の定義で行います。
実行ルート定義、または条件ルート定義における補償ルートの設定
補償ルートを通過するメッセージに含める業務データを定義します。
アクティビティ定義における補償ルートの設定
補償ルートを実行する契機となるアプリケーション異常、および補償処理メッセージを受信した際に呼び出す補償処理用アプリケーションを定義します。
■実行ルート定義、または条件ルート定義における補償ルートの設定
実行ルート定義、または条件ルート定義における補償ルートの設定では、補償ルートを通過するメッセージに含める業務データを定義します。
[実行ルート定義]画面、または[条件ルート定義]画面を開き、[補償ルート]タブをクリックすると、設定画面が表示されます。
以下に、画面イメージと各部品の説明を示します。なお、ここでは、[実行ルート定義]画面を例に説明します。[条件ルート定義]画面についても、画面構成は同じです。
[補償ルートの指定]
[補償ルートの指定]をチェックすると、以下2~5の設定が可能になります。ただし、補償ルートを指定できない箇所では、[補償ルートの指定]をチェックすることはできません。補償ルートの指定の可否に関する制約については、“付録E 定義規約”を参照してください。
[補償ルートの指定]をチェックした状態で、[OK]をクリックしてダイアログボックスを閉じると、実行ルートを逆戻りする補償ルートが、ルーティング定義画面上に表示されます。
[補償ルートの指定]をチェックしていない状態
[補償ルートの指定]をチェックした状態
補償ルートが設定されている実行ルートをルーティング定義画面上で削除した場合、連動して補償ルートも画面から削除されます。
[メッセージに含める業務データ]
補償ルート上のメッセージに含める業務データを指定します。
[->]
業務データを、[メッセージから削除する業務データ]の一覧に移動します。業務データは、一覧内で複数選択して移動することが可能です。
[<-]
業務データを、[メッセージに含める業務データ]の一覧に移動します。業務データは、一覧内で複数選択して移動することが可能です。
[メッセージから削除する業務データ]
補償ルート上のメッセージから削除する業務データを指定します。業務データ定義画面でコリレーションIDとして設定された業務データは、メッセージから削除することはできません。
参照
実行ルート定義、または条件ルート定義における補償ルートの設定に関する定義例をまじえた詳細については、“3.1.7 補償ルート”を参照してください。
■アクティビティ定義における補償ルートの設定
アクティビティ定義における補償ルートの設定では、補償ルートを実行する契機となるアプリケーション異常、および補償処理メッセージを受信した際に呼び出す補償処理用アプリケーションを定義します。
補償ルートを実行する契機となるアプリケーション異常には、COBOLのアクティビティではエラーコードを指定します。Javaのアクティビティではアプリケーション例外を指定します。アプリケーション例外を指定する際は、契機から除外する異常も指定することができます。補償処理用アプリケーションの定義では、業務処理実行アプリケーションと同様の呼出し定義を行います。
◆補償ルートを実行する異常
補償ルートを実行する異常は、[アクティビティ定義(COBOL)]画面、または[アクティビティ定義(Java)]画面の[補償ルート]タブで設定します。
以下に、画面イメージと各部品の説明を示します。
COBOLの場合
[補償ルートを実行する異常]一覧
COBOLのアクティビティにおいて補償ルートを実行する異常を指定するためのエラーコードの一覧を表示します。
エラーコードの入力には、単一の値を指定する方法と、値の範囲を指定する方法があります。単一の値を指定した場合は、[エラーコード]列にその値が表示され、[エラーコード上限]列には“範囲指定なし”が表示されます。値の範囲を指定した場合は、[エラーコード]列に下限値が、[エラーコード上限]列には上限値が表示されます。
[補償ルートを実行する異常]一覧は、つねに[エラーコード]列をキーとして昇順にソートされた上で表示されます。
[追加]
[補償ルートを実行する異常]一覧にエラーコードを追加します。クリックすると、[エラーコードの設定]画面が表示されます。エラーコードは256個まで定義できます。
[更新]
[補償ルートを実行する異常]一覧で選択中のエラーコードを、編集します。クリックすると、[エラーコードの設定]画面が表示されます。エラーコードを選択していない場合、ボタンは無効になります。
[削除]
[補償ルートを実行する異常]一覧で選択中のエラーコードを削除します。エラーコードを選択していない場合、ボタンは無効になります。
[追加]、[更新]ボタンをクリック、または選択中の行をダブルクリックすると、[エラーコードの設定]画面が表示されます。
[エラーコードの設定]画面では、以下の項目を設定します。
エラーコードの範囲指定
エラーコード
エラーコード上限
[エラーコードの範囲指定]
エラーコードの指定方法を切り替えます。
[エラーコードの範囲指定]のチェックを外すと、[エラーコード上限]のテキストボックスが無効になり、単一の値を指定する状態になります。[エラーコードの範囲指定]をチェックすると、[エラーコード上限]のテキストボックスが有効になり、値を範囲指定する状態になります。
[エラーコード]
COBOLのアクティビティにおいて、補償ルート実行の契機となる異常を指定するためのコードです。業務処理実行アプリケーション実行時の各出口インタフェースにおいて、エラーが発生した際に設定されるエラー情報の中のエラーコードを指定します。エラー情報は、登録集APFW_EXCEPTIONに設定されます。
出口インタフェースの詳細については、“Interstage Business Application Server リファレンス”の“サーバアプリケーション出口インタフェース”を参照してください。
登録集APFW_EXCEPTIONの詳細については、“Interstage Business Application Server リファレンス”の“例外情報”を参照してください。
[エラーコード上限]
エラーコードを範囲指定する場合の上限値を指定します。
Javaの場合
[補償ルートを実行する異常]
[アプリケーション例外]
補償ルートを実行するための異常(アプリケーション例外名)を指定します。パッケージ名を含まない例外名を指定した場合は、発生した例外名と一致しないため、補償ルートを正しく実行することができません。必ずパッケージ名を含めて指定してください。同じ例外名が[除外する異常]一覧に設定された場合は、[補償ルートを実行する異常]一覧に設定していても、実行の対象にはなりません。
[追加]、[削除]
[アプリケーション例外]のデータの追加・削除を行います。
参照
上記の定義項目に関する規約については、“付録E 定義規約”を参照してください。
補償ルートを実行する異常に関する定義例をまじえた詳細については、“4.3 フローの設計”の“■補償処理を考慮した設計”を参照してください。
[除外する異常]
[除外する異常]タブでは、補償ルートを実行する契機から除外するアプリケーション例外を定義します。[アクティビティ定義]画面の[補償ルート]タブ > [除外する異常]タブでは、補償ルートを実行する契機から除外する異常(アプリケーション例外名)を定義します。[補償ルートを実行する異常]に定義したアプリケーション例外が発行された場合でも、その基底クラスに[除外する異常]で定義したアプリケーション例外が含まれる場合は、補償ルートは実行されません。
以下に、画面イメージと各部品の説明を示します。
[アプリケーション例外]
補償ルート実行の対象から除外する異常(アプリケーション例外)を指定します。パッケージ名を含めた例外名を指定してください。
[追加]、[削除]
[アプリケーション例外]のデータの追加・削除を行います。
参照
上記の定義項目に関する規約については、“付録E 定義規約”を参照してください。
除外する異常に関する定義例をまじえた詳細については、“4.3 フローの設計”の“■補償処理を考慮した設計”を参照してください。
◆補償処理用アプリケーションの呼出し定義
補償処理メッセージを受信した際に呼び出す補償処理用アプリケーションの設定は、[アクティビティ定義(COBOL)]画面、または[アクティビティ定義(Java)]画面の[補償ルート]タブ内で、[呼出し定義]をクリックして表示される[呼出し定義]画面で行います。
COBOLの場合
Javaの場合
[呼出し定義]
補償処理メッセージ受信後の補償処理実行時に呼び出すアプリケーションを指定する[呼出し定義]画面を表示します。呼出し定義の詳細については、“5.2.4.3 アクティビティの設定”の“◆呼出し定義”を参照してください。
注意
複数のアクティビティを横断する補償ルート上において、取消し処理用の業務処理実行アプリケーションの呼び出しが不要なアクティビティがある場合は、そのアクティビティにおける補償ルートの呼出し定義を、未定義の状態(初期状態)にしてください。一度、補償ルートの呼出し定義を確定した後、未定義の状態に戻したい場合は、[呼出し定義]画面の値を以下の状態にしたうえで[OK]をクリックしてください。
COBOLの呼出し定義の場合
[業務処理実行アプリケーション名] | 値なし |
[業務処理名] | 値なし |
[復帰値を設定する業務データ] | [復帰値なし(void)] |
Javaの呼出し定義の場合
[クラス名] | 値なし |
[呼出し対象のメソッド] | 0個 |
取消し処理用の業務処理実行アプリケーションの呼び出しが不要な場合の設計方法については、“4.3 フローの設計”の“■補償処理を考慮した設計”を参照してください。
終了点は、業務処理開始アプリケーションで、処理結果のメッセージを取得するための定義を行います。終了点のアイコンは、ルーティング定義画面上では以下のイメージで表示されます。
終了点のアイコンをダブルクリックすると、以下のダイアログボックスが表示されます。
[結果受信キュー(Destination)]
結果受信用に使用するキューを指定します。
メッセージを発行する業務処理開始アプリケーションで同期的にメッセージを発行する場合や、処理結果のメッセージを取得する場合は、必ず結果受信キューを指定してください。
指定するキューは、アクティビティ定義で指定されていないキューである必要があります。また、ほかのフロー定義の待ち合わせ型で使用するキューと同じキューを指定することができます。
[結果受信キューに格納するメッセージの有効期間]
待ち合わせ型フロー起動APIのsendMessageSyncメソッドまたはフローの処理結果を取得するAPIのreceiveMessageメソッドを呼び出して処理結果のメッセージを取得した場合、そのメッセージは結果受信キューから削除されます。
ただし、receiveMessageメソッドが発行されない場合などは、メッセージが削除されない可能性があります。この場合、結果受信キューに格納するメッセージの有効期間を指定することで、指定した期間を超えた時点でメッセージを自動的に削除することができます。
単位は秒で指定してください。有効期間を無制限にする場合は、0を指定してください。
参照
上記の各定義項目に関する規約については、“付録E 定義規約”を参照してください。