EGL call 文は、制御を別のプログラムに移動し、オプションで一連の値を渡します。呼び出し先プログラムが終了すると、制御が呼び出し元に戻ります。また、変数によって渡されたデータが呼び出し先プログラムで変更されると、 呼び出し元で使用可能なストレージ域も変更されます。
指定された名前を予約語にすることはできません。呼び出し側が EGL 予約語と同じ名前を持つ非 EGL プログラムを呼び出す必要がある場合は、 call 文で別のプログラム名を使用し、リンケージ・オプション・パーツ、callLink エレメントを使用して別名を指定します。この別名が、実行時に使用される名前です。
呼び出し先プログラムが Java™ プログラムの場合、その呼び出し先プログラムの名前は大/小文字の区別があります。つまり、calledProgram と CALLEDPROGRAM は異なることになります。それ以外の場合、プログラム名に大/小文字の区別があるかどうかは、呼び出し先プログラムがあるシステムで判断します。UNIX® では大/小文字の区別があり、その他のシステムでは大/小文字の区別はありません。
EGL デバッガーでは、呼び出し先プログラムの名前には大/小文字の区別がありません。
EGL 以外で生成されたプログラムは、call 文ではなく、生成時に使用されるリンケージ・オプション・パーツを使用して、 外部定義されていると識別することをお勧めします。 (関連するプロパティーは、リンケージ・オプション・パーツ、callLink エレメントにあり、 externallyDefined とも呼ばれます。)
この標識は、プログラム・プロパティー VAGCompatibility が選択されている場合、または (生成時に) ビルド記述子オプション VAGCompatibility が yes に設定されている場合に、(開発時に) サポートされます。
画面を最新表示するための設定は、call 文ではなく、生成時に使用されるリンケージ・オプション・パーツを使用して示すことをお勧めします。 (関連するプロパティーは、リンケージ・オプション・パーツ、callLink エレメントにあり、 refreshScreen と呼ばれます。)
以下に例を示します。
if (userRequest == "C") try call programA; onException myErrorHandler(12); end end
call 文の引数の数、型、および順序は、呼び出し先プログラムによって予期される値の数、型、および順序と一致している必要があります。
各引数で渡されるバイト数を予期されるバイト数と同じにすることを特にお勧めします。呼び出し先プログラムが CICS® 内にあり、長さが等しくない場合は、ランタイム異常終了が生じます。EGL 生成の Java プログラムの場合、長さのミスマッチがエラーの原因となるのは、そのミスマッチのランタイム修正によって型ミスマッチが生じる場合のみであり、以下のようになります。
Java の場合は、例えば、NUM 型のデータ項目にブランクが追加される場合はエラーが生じますが、CHAR 型のデータ項目にブランクが追加されてもエラーは生じません。
再帰呼び出しは、すべてのターゲット・システムでサポートされています。
次の表に示すように、call の振る舞いは、一部ターゲット・システムに依存します。
ターゲット・システム | プラットフォーム固有の詳細 |
---|---|
AIX® | 再帰呼び出しはサポートされています。 |
CICS for z/OS® | 再帰呼び出しはサポートされていません。 呼び出し先プログラムがレジスター 15 に置く戻りコードは、呼び出し元にとって利用不能です。 |
HP-UX | 再帰呼び出しはサポートされています。 |
iSeries™ | 再帰呼び出しはサポートされています。 |
Linux™ | 再帰呼び出しはサポートされています。 |
Solaris | 再帰呼び出しはサポートされています。 |
Windows® 2000、Windows NT® | 再帰呼び出しはサポートされています。 |
z/OS バッチ | 再帰呼び出しはサポートされていません。 |
z/OS UNIX システム・サービス | 再帰呼び出しはサポートされています。 |
ターゲット・システム | プラットフォーム固有の詳細 |
---|---|
AIX | 再帰呼び出しはサポートされています。 |
iSeries COBOL | 再帰呼び出しはサポートされていません。 |
iSeries Java | 再帰呼び出しはサポートされています。 |
Linux | 再帰呼び出しはサポートされています。 |
z/OS バッチ | 再帰呼び出しはサポートされていません。 |
Windows 2000、Windows NT | 再帰呼び出しはサポートされています。 |
z/OS UNIX システム・サービス | 再帰呼び出しはサポートされています。 |
生成時に使用されるリンケージ・オプション・パーツが存在する場合、呼び出しは、それによる影響を受けます。(リンケージ・オプション・パーツを組み込むには、ビルド記述子オプション linkage を設定します。)
リンケージの詳細については、『リンケージ・オプション・パーツ』を参照してください。
関連する参照項目
EGL ステートメント
例外処理
linkage
プリミティブ型