メイン・プロシージャーからの戻り

メイン・プロシージャーから戻ると、次のことが起こります。

メイン・プロシージャーは、次の 1 つの方法で呼び出しプロシージャー に制御権を戻します。

呼び出されたメイン・プロシージャーから戻る方法について次に説明します。

LR、H1 〜 H9、および RT 標識が RPG プログラム・サイクルのどこでテストされるかについての 詳細は、「WebSphere Development Studio: ILE RPG 言語解説書」の RPG プログラム・サイクルのセクションを 参照してください。

正常終了

LR 標識がオンで、H1 〜 H9 標識がオンでない時には、メイン・プロシージャーが 正常に終了し、制御権が呼び出し元プロシージャーに戻されます。 LR 標識は、 次のようにしてオンに設定することができます。

次の場合にも、メイン・プロシージャーは正常に終了します。

メイン・プロシージャーが正常に終了すると、次のことが起こります。

メイン・プロシージャーへの次回の呼び出しでは、 エクスポートされた変数は別として、処理用に新しいコピーが使用可能になります (エクスポートされた 変数は 1 回だけ初期設定されますが、これはプログラムが活動化グループで最初に 活動化される時です。 たとえ LR が前の呼び出しでオンであっても、エクスポートされた変数は 新しい呼び出し時には最後に割り当てられた値のままです。 それらを再初期化したい場合は、手操作で リセットしなければなりません)。

ヒント

通常は LR オンで終了して記憶域を解放するところを、指定された (持続 する) 活動化グループで実行している場合には、終了しないで戻ることを考慮 したいことがあります。 理由は次のとおりです。

これを行うのは、プログラムをその都度初期設定し直す必要がない場合のみにしてください。

異常終了

次のいずれかが起こると、メイン・プロシージャーが異常終了し、制御権が 呼び出し元プロシージャーに戻されます。

メイン・プロシージャーが異常終了した時には、次のことが起こります。

このプロシージャーを次回に呼び出す時には、 最新コピーを処理に使用することができます (例外処理プログラムについて詳しくは、RPG 特有の処理プログラムの使用を参照してください)。

未終了の戻り

LR 標識または H1 〜 H9 標識のどれもがオンでない時に、次のいずれかが起こると、 メイン・プロシージャーが未終了で、制御権を呼び出しプロシージャーに戻すことができます。

メイン・プロシージャーを呼び出し、それが未終了で戻った場合には、 プロシージャーを再び呼び出した時に、このプロシージャーのすべてのフィールド、標識、 およびファイルはプロシージャーが途中終了した時と同じ値をもっています。 しかし、次のような 3 つの例外があります。

LR 標識と H1 〜 H9 標識を組み合わせて、RETURN 命令 (ブランクの演算項目 2 で) または RT 標識を使用することができます。 その場合に RPG プログラム・サイクル内での、RETURN 命令、RT 標識、 および H1 〜 H9 標識に対するテスト順序に注意してください。LR 標識、 または停止標識のどれかがオンで、次の条件のどちらかが当てはまる場合には、戻りによって終了します。