サイクル・メイン・プロシージャーの未終了の戻り
LR 標識または H1 から H9 標識のどれもがオンでない時に、次のいずれかが起こると、
サイクル・メイン・プロシージャーが未終了で、制御権を呼び出しプロシージャー元に戻すことができます。
- RETURN 命令 (ブランクの演算項目 2 で) が処理された時。
- RT 標識がオンで制御が RPG サイクルの *GETIN 部分に達した時。この場合に は制御権がただちに呼び出し元プロシージャーに戻されます (RT 標識の詳細については、「IBM® Rational® Development Studio for i: ILE RPG 解説書」を参照してください)。
サイクル・メイン・プロシージャーを呼び出し、それが未終了で戻った場合には、
プロシージャーを再び呼び出した時に、このプロシージャーのすべてのフィールド、標識、
およびファイルはプロシージャーが途中終了した時と同じ値を持っています。
しかし、次のような 3 つの例外があります。
- プログラムが *NEW 活動化グループ内で実行している場合には、 プログラムが戻った時に活動化グループが削除されるので、これは当てはまらない。 その場合には、次回にプログラムを呼び出した時には、LR オンで終了した場合と同じになります。
- ファイルを共用している場合には、ファイルの状態は、プロシージャーが途中終了した時の状態と異なることがある。
- 同じモジュール内の別のプロシージャー間で呼び出された場合には、結果は予測できない。
LR 標識と H1 ~ H9 標識を組み合わせて、RETURN 命令 (ブランクの演算項目 2 で) または RT 標識を使用することができます。
その場合に RPG プログラム・サイクル内での、RETURN 命令、RT 標識、
および H1 ~ H9 標識に対するテスト順序に注意してください。LR 標識、
または停止標識のどれかがオンで、次の条件のどちらかが当てはまる場合には、戻りによって終了します。
- RETURN 命令が実行された
- RT により未終了の戻りが起こった