注意
1つのフロー定義では、異なる言語(COBOLまたはJava)のアプリケーションを相互に連携させることはできません。連携させるアプリケーションの言語は、統一するように定義してください。
本節で示すフローに関する図では、COBOLによるアプリケーション連携を例に説明します。
■ルーティング定義における要素の制限
ルーティング定義における各要素の定義数の制限を以下に示します。
要素名 | 配置個数 | 入力するルート数 | 出力するルート数 |
---|---|---|---|
アクティビティ | 1以上256以下(注1) | 1以上 | 0または1 |
開始点 | 1 | 0 | 1 |
終了点 | 0または1 | 1以上 | 0 |
同報・条件分岐 | 制限なし | 1以上 | 1以上 |
代行分岐 | 制限なし | 1以上 | 2(注2) |
注1)1つのフロー定義では、COBOLとJavaのアクティビティを混在して定義することはできません。アクティビティの言語種別は統一するように定義してください。
注2)実行ルート、代行ルートの組合せだけ指定することができます。
■ルーティング定義における要素とルートの関連付け制限
ルーティング定義における要素とルートの関連付け制限について以下に示します。
◆実行ルートを要素の間に関連付ける場合
ルートの始点側に接続する要素 | ルートの終点側に接続する要素 | ||||
---|---|---|---|---|---|
アクティビティ | 開始点 | 終了点 | 同報・条件分岐 | 代行分岐 | |
アクティビティ | ○(注) | × | ○ | ○ | ○ |
開始点 | ○ | - | × | ○ | ○ |
終了点 | × | × | - | × | × |
同報・条件分岐 | ○(注) | × | ○ | × | ○ |
代行分岐 | ○(注) | × | × | × | × |
○:関連付け可能 ×:関連付け不可能 -:無効な組合せ
◆条件ルートを要素の間に関連付ける場合
ルートの始点側に接続する要素 | ルートの終点側に接続する要素 | ||||
---|---|---|---|---|---|
アクティビティ | 開始点 | 終了点 | 同報・条件分岐 | 代行分岐 | |
アクティビティ | × | × | × | × | × |
開始点 | × | - | × | × | × |
終了点 | × | × | - | × | × |
同報・条件分岐 | ○ | × | ○ | × | ○ |
代行分岐 | × | × | × | × | × |
○:関連付け可能 ×:関連付け不可能 -:無効な組合せ
◆代行ルートを要素の間に関連付ける場合
ルートの始点側に接続する要素 | ルートの終点側に接続する要素 | ||||
---|---|---|---|---|---|
アクティビティ | 開始点 | 終了点 | 同報・条件分岐 | 代行分岐 | |
アクティビティ | × | × | × | × | × |
開始点 | × | - | × | × | × |
終了点 | × | × | - | × | × |
同報・条件分岐 | × | × | × | × | × |
代行分岐 | ○(注) | × | × | × | × |
○:関連付け可能 ×:関連付け不可能 -:無効な組合せ
注)2つの要素間で、直接メッセージを折り返して送信するようなルートの関連付けはできません。ルーティング定義画面上での表示例を以下に示します。
【2つのアクティビティ間】
【アクティビティと同報・条件分岐間】
注意
ルーティング定義では、3つ以上の要素の組合せを加味したルートの関連付けに関する制限はありません。以下に例を示します。
上図のようにアクティビティの処理をループさせる関連付けが可能です。フローの設計時は、同報・条件分岐の要素を含めて無限ループにならないようにしてください。フローが無限ループに陥ったときの異常を検知するため、メッセージがアクティビティを通過できる最大数を設定することができます。詳細については“5.2.5.1 異常処理定義画面の概要”を参照してください。
■ルーティング定義における2つの要素間での補償ルート指定可否
ルーティング定義における2つの要素間での補償ルート指定可否について示します。
補償ルートの指定は、[実行ルート定義]画面、または[条件ルート定義]画面の[補償ルート]タブ内のチェックボックスで行います。その際、ルートの始点側と終点側に接続された要素の種類によって、補償ルートの指定ができる場合とできない場合があります。その組合せを、以下の表に示します。
◆実行ルートを要素の間に関連付ける場合
ルートの始点側に接続する要素 | ルートの終点側に接続する要素 | ||||
---|---|---|---|---|---|
アクティビティ | 開始点 | 終了点 | 同報・条件分岐 | 代行分岐 | |
アクティビティ | ○ | - | × | × | × |
開始点 | × | - | - | × | × |
終了点 | - | - | - | - | - |
同報・条件分岐 | ○ | - | × | - | × |
代行分岐 | ○ | - | - | - | - |
○:補償ルートの指定が可能 ×:補償ルートの指定が不可能 -:無効な組合せ
◆条件ルートを要素の間に関連付ける場合
ルートの始点側に接続する要素 | ルートの終点側に接続する要素 | ||||
---|---|---|---|---|---|
アクティビティ | 開始点 | 終了点 | 同報・条件分岐 | 代行分岐 | |
アクティビティ | - | - | - | - | - |
開始点 | - | - | - | - | - |
終了点 | - | - | - | - | - |
同報・条件分岐 | ○ | - | × | - | × |
代行分岐 | - | - | - | - | - |
○:補償ルートの指定が可能 ×:補償ルートの指定が不可能 -:無効な組合せ
◆代行ルートを要素の間に関連付ける場合
ルートの始点側に接続する要素 | ルートの終点側に接続する要素 | ||||
---|---|---|---|---|---|
アクティビティ | 開始点 | 終了点 | 同報・条件分岐 | 代行分岐 | |
アクティビティ | - | - | - | - | - |
開始点 | - | - | - | - | - |
終了点 | - | - | - | - | - |
同報・条件分岐 | - | - | - | - | - |
代行分岐 | × | - | - | - | - |
○:補償ルートの指定が可能 ×:補償ルートの指定が不可能 -:無効な組合せ
■ルーティング定義における補償ルートの自動設定規則
ルーティング定義では、同報・条件分岐から出力している実行ルート(または条件ルート)で補償ルートを指定した場合、同じ同報・条件分岐へ入力している実行ルートのすべてに対してその指定が引き継がれ、補償ルートが自動設定されます。
代行分岐から出力している実行ルートで補償ルートを指定した場合、同じ代行分岐へ入力している実行ルート(または条件ルート)のすべて、および同じ代行分岐から出力している代行ルートに対してその指定が引き継がれ、補償ルートが自動設定されます。
ただし、同報・条件分岐(または代行分岐)へ入力している実行ルートの始点側に、開始点が接続されている場合は、補償ルートの指定は引き継がれません。
上記に示した補償ルートが自動設定される規則について、以下の表に示します。
分岐へ入力する | 分岐へ入力する | 補償ルートを | 分岐から出力する | 補償ルート実行の |
---|---|---|---|---|
アクティビティ | 実行ルート(○) | 同報・条件分岐 | 実行ルート(-) | アクティビティ |
実行ルート(×) | ||||
条件ルート(×) | ||||
アクティビティ | 実行ルート(○) | 同報・条件分岐 | 条件ルート(-) | アクティビティ |
実行ルート(×) | ||||
条件ルート(×) | ||||
開始点 | 実行ルート(×) | 同報・条件分岐 | 実行ルート(-) | アクティビティ |
実行ルート(×) | ||||
条件ルート(×) | ||||
開始点 | 実行ルート(×) | 同報・条件分岐 | 条件ルート(-) | アクティビティ |
実行ルート(×) | ||||
条件ルート(×) | ||||
アクティビティ | 実行ルート(○) | 代行分岐 | 実行ルート(-) | アクティビティ |
代行ルート(○) | ||||
開始点 | 実行ルート(×) | 代行分岐 | 実行ルート(-) | アクティビティ |
代行ルート(○) | ||||
同報・条件分岐 | 実行ルート(○) | 代行分岐 | 実行ルート(-) | アクティビティ |
代行ルート(○) | ||||
同報・条件分岐 | 条件ルート(○) | 代行分岐 | 実行ルート(-) | アクティビティ |
代行ルート(○) |
-:補償ルートを指定するルート ○:補償ルートが自動設定されるルート ×:補償ルートが自動設定されないルート
■業務データの最大数
業務データは、最大256個まで指定することができます。
■業務データの型の制限
用途にコリレーションIDが選択されている場合、String、Short、Integer、Long以外は指定できません。
業務データの型は、以下から選択できます。
String(デフォルト)
String配列
Byte
Byte配列
Short
Short配列
Integer
Integer配列
Long
Long配列
Float
Float配列
Double
Double配列
Boolean
Boolean配列
ユーザ定義型情報
バイナリ
注意
Javaの場合、ユーザ定義型情報に指定するクラスは、直列化されてメッセージに格納されるため、java.io.Serializableをインプリメントしてください。また、ユーザ定義型情報のクラスに他のクラスを含む場合や、継承関係のクラスがある場合も、すべてのクラスにjava.io.Serializableをインプリメントしてください。java.io.Serializableをインプリメントしていないユーザ定義型情報が指定された場合は、業務開始時にエラーとなります。また、業務処理実行アプリケーションからjava.io.Serializableをインプリメントしていないユーザ定義型情報が返却された場合は、異常処理定義で指定された後処理が実行されます。
業務データの型として配列を指定した場合は、1次元配列として扱われます。実行時に1次元配列以外のデータが入っていた場合は、エラーとなります。
Javaアプリケーションで2次元以上の配列を指定する場合は、ユーザ定義型情報として定義する必要があります。COBOLアプリケーションでは、2次元以上の配列は指定できません。
業務データの型として配列を指定した場合は、以下の条件に当てはまるデータを指定しないでください。以下の条件に当てはまるデータを指定した場合、実行時にエラーとなります。
要素数が0の配列データ
要素数が65536以上の配列データ
String配列以外の配列型で、要素にnullを含む配列データ
■業務データの型の対応
業務処理実行アプリケーションを呼び出すときに、引数、または復帰値として受け渡される業務データの型について、各言語の型との対応関係を以下に示します。
業務データの型 | 業務処理実行アプリケーションの呼出し時に受け渡す型 | |
---|---|---|
Java | COBOL | |
String(注5) | java.lang.String | PIC X(n).(注1) |
PIC S9(1~18). | ||
PIC 9(1~18). | ||
PIC S9(1~18) COMP-3. | ||
PIC 9(1~18) COMP-3. | ||
PIC S9(1~18) COMP. | ||
PIC 9(1~18) COMP. | ||
PIC S9(1~18) COMP-5. | ||
PIC 9(1~18) COMP-5. | ||
PIC S9(n)V9(m).(注2) | ||
PIC 9(n)V9(m).(注2) | ||
PIC S9(n)V9(m) COMP-3.(注2) | ||
PIC 9(n)V9(m) COMP-3.(注2) | ||
PIC S9(n)V9(m) COMP.(注2) | ||
PIC 9(n)V9(m) COMP.(注2) | ||
PIC S9(n)V9(m) COMP-5.(注2) | ||
PIC 9(n)V9(m) COMP-5.(注2) | ||
PIC N(n).(注1) | ||
Byte | java.lang.Byte | 使用不可(注3) |
Short | java.lang.Short | PIC S9(1~4) COMP-5. |
PIC S9(1~4) COMP. | ||
Integer | java.lang.Integer | PIC S9(5~9) COMP-5. |
PIC S9(5~9) COMP. | ||
Long | java.lang.Long | PIC S9(10~18) COMP-5. |
PIC S9(10~18) COMP. | ||
Float | java.lang.Float | COMP-1. |
Double | java.lang.Double | COMP-2. |
Boolean | java.lang.Boolean | 使用不可(注3) |
String配列 | java.lang.String[] | 使用不可(注3) |
Byte配列 | java.lang.Byte[] | |
Short配列 | java.lang.Short[] | |
Integer配列 | java.lang.Integer[] | |
Long配列 | java.lang.Long[] | |
Float配列 | java.lang.Float[] | |
Double配列 | java.lang.Double[] | |
Boolean配列 | java.lang.Boolean[] | |
ユーザ定義型情報 | java.lang.Object | 使用不可(注4) |
バイナリ | byte[] | 特殊集団項目 |
注1)nは整数値
注2)m、nは整数値、かつm+n≦18
注3)フロー定義の呼出し定義(COBOL)でCOBOLの業務処理を定義する場合は、引数や復帰値に使用不可の業務データの型を指定しないでください。使用不可の業務データの型を指定した場合は、業務処理実行アプリケーションの実行時にFSP_INTS-BAS_AP23024のエラーが発生します。エラーの詳細については、“Interstage Business Application Server メッセージ集”を参照してください。
注4)フロー定義の呼出し定義(COBOL)では、該当する業務データの型を業務処理の引数や復帰値に指定することはできません。
注5)COBOLを使用する場合、Javaの整数型に直接対応しない数値を表すデータ型については、COBOL実行基盤インタフェースの生成時に、COBOL実行基盤インタフェースの形式として2進項目整数データをString型にマッピングするように指定します。COBOL実行基盤インタフェースの形式の指定方法については、“14.4.5.3 COBOL実行基盤インタフェースを生成するアプリケーション情報の追加”の“■オプション情報”を参照してください。
■業務データの引継ぎに関する規約
引き継がれていない業務データ名が引数に指定された場合のアプリケーションに渡される値を、以下に示します。
なお、Javaで引数が業務データ全体(java.util.Map)の場合にも、引き継がれていない業務データには、以下の初期値が設定されます。
業務データの型 | 引数に設定される初期値 | ||
---|---|---|---|
Java | COBOL | ||
COBOLのデータ項目 | 初期値 | ||
String | null | PIC X(n) | n個の半角空白 |
PIC S9(1~18) | +000000000 (S9(9)のとき) | ||
小数点付き数字データ | 00000 (9(4)V9(1)のとき) | ||
2進項目整数データ(注) | そのデータ項目の初期値 | ||
Byte | (Byte)0 | 使用不可 | |
Short | (Short)0 | PIC S9(1~4) COMP | +0 (S9(1)のとき) |
Integer | 0 | PIC S9(5~9) COMP | +00000 (S9(5)のとき) |
Long | 0L | PIC S9(10~18) COMP | +0000000000 (S9(10)のとき) |
Float | 0.0f | COMP-1 | .00000000E 00 |
Double | 0.0d | COMP-2 | .00000000000000000E 00 |
Boolean | false | 使用不可 | |
配列型 | null | 使用不可 | |
ユーザ定義型情報 | null | 使用不可 | |
バイナリ | null | 以下の集団項目で定義 | |
注)COBOL実行基盤インタフェースの生成時に、COBOL実行基盤インタフェースの形式として2進項目整数データをString型にマッピングするように指定した場合です。COBOL実行基盤インタフェースの形式の指定方法については、“14.4.5.3 COBOL実行基盤インタフェースを生成するアプリケーション情報の追加”の“■オプション情報”を参照してください。
■呼出し定義における制限
呼出し定義では、以下の制限があります。
[復帰値を設定する業務データ]には、用途がフロー定義名、またはコリレーションIDに設定されている業務データを指定することはできません。
COBOLの場合、業務処理の復帰値、および引数には、指定できない業務データの型があります。指定できない業務データの型については、“■業務データの型の対応”を参照してください。
COBOLの場合、アクティビティと呼出し対象の処理の個数は、1対1で対応させる必要があります。1つの業務処理に定義できる引数の最大数は、256個です。
Javaの場合、呼出し対象のメソッドは、最大256個まで定義できます。1つのメソッドに定義できる引数の最大数は、127個です。
■補償ルートで定義可能な異常の制限
COBOLの場合、エラーコードは最大256個まで指定することができます。
Javaの場合、アプリケーション例外は最大256個まで指定することができます。アプリケーション例外名には、ユーザ独自の例外名を指定することもできます。また、派生クラスに含まれる例外名も指定できます。
■異常処理定義における制限
[アプリケーション異常発生時の後処理]で指定できる後処理の最大数は、Javaのアプリケーション異常、またはCOBOLのアプリケーション異常で、それぞれ256個です。
■キューの設定に関する規約
用途が異なるキューにおいて、同一のDestination名が使用可能かどうかの排他関係を以下に示します。排他の関係にあるキューどうしでDestination名が重複している場合は、定義エラーになります。
| エラーメッセージ退避キュー | 省略時に使用するキュー | 結果受信キュー | 代行ルート上のキュー (注) | 通常ルート上のキュー (注) |
---|---|---|---|---|---|
エラーメッセージ退避キュー | - | × | ○ | × | × |
省略時に使用するキュー | × | - | × | × | ○ |
結果受信キュー | ○ | × | - | × | × |
代行ルート上のキュー (注) | × | × | × | ○ | △ |
通常ルート上のキュー (注) | × | ○ | × | △ | ○ |
○:同一のDestination名を使用可能
△:2つのキューが同一の代行分岐を起点とするルート上に設定されている場合は、使用不可
×:同一のDestination名は使用不可
(注)1つのアクティビティが通常ルートと代行ルートの両方のルート上に設定された場合は、代行ルート上にあるとみなされます。