returnCode

sysVar.returnCode システム変数には、プログラムによって設定された外部戻りコードが含まれています。メインプログラムは sysVar.returnCode を使用して、オペレーティング・システムに戻りコードを渡します (JCL、CL、バッチ・ファイル、またはコマンド・プロセッサーなどを意味します)。 呼び出し先プログラムは、sysVar.returnCode を使用して、非 EGL プログラムに戻りコードを渡します。

1 つの EGL プログラムから別の EGL プログラムに戻りコードを渡すことはできません。例えば、sysVar.returnCode にゼロ以外の値が指定されている場合、EGL は onException ブロックを実行しません。

sysVar.returnCode の初期値はゼロです。 COBOL 出力の場合、値は 0 以上 512 以下の範囲内にあることが必要です。

特性

sysVar.returnCode には、以下の特性があります。
プリミティブ型
INT
データ長
9
セグメント化された converse にわたって値が保存されるかどうか
はい

以下の例は、オペレーティング・システムに渡す戻りコードを設定します。

  sysVar.returnCode = 6;

互換性

表 1. returnCode の互換性に関する考慮事項
プラットフォーム 問題
Java™ 生成
  • sysVar.returnCode の値は、-2147483648 以上 2147483647 以下の範囲になければなりません。
  • sysVar.returnCode は、コマンド・ラインかスクリプトを介して起動されたプログラム (つまり、メイン・テキスト・プログラムまたはメイン・バッチ・プログラム) からのみ使用可能です。 このコンテキストにおける sysVar.returnCode は、プログラムを呼び出すコマンド・ファイルや実行プログラム用のコードを提供することを目的にしています。
  • プログラムが、そのプログラムの制御下にないエラーで終了した場合、 EGL ランタイムは sysVar.returnCode の設定を無視して、値 693 を戻そうと試みます。
  • Windows では、コマンド・プロンプトの %ERRORLEVEL% を確認することでその値を取得できます。 その他のオペレーティング・システムは、同様の変数を持っています。
  • sysLib.callCmd() の呼び出しが正常に実行されると、呼び出し先のコマンドからの戻りコードが sysVar.returnCode に置かれます。
COBOL 生成
  • sysVar.returnCode の値は、0 以上 512 以下の範囲になければなりません。
  • sysVar.returnCode には、ほとんどの場合にオペレーティング・システムや、 EGL 生成プログラム以外の呼び出し側に提供されるコードが含まれています。 プログラムが、ユーザーのコードでは処理されないエラーで終了した場合、EGL ランタイムは 512 より大きい値を戻そうと試みます。
  • sysVar.returnCode は、COBOL RETURN-CODE 特殊レジスターを使用して実装されます。
CICS® for z/OS® プログラムの終了後に sysVar.returnCode を使用できるのは、 プログラムが、同じ CICS 領域にある別のプログラムから呼び出されていて、かつ、EXEC CICS LINK コマンドによって呼び出されたのではない場合に限られます。 戻りコードは、 CICS ベースのプログラムが呼び出される場合 (および、そのプログラムが非 EGL 生成プログラムから呼び出される場合) にのみ意味があります。
IMS/VS メインプログラムから sysVar.returnCode は返されません。

フィードバック