ファイル処理のプログラム制御
プログラムの入力のすべてまたは一部を制御するためには、全手順ファイル (
ファイル仕様書の 18 桁目に F) を指定してください。 全手順ファイルでは、
入力 がプログラム指定の演算命令 (たとえば、READ、CHAIN) によっ
て制御されることを指示します。 全手順ファイルと 1 次ファイル (フ
ァイル仕様書の 18 桁目に P) の両方がプログラムに指定されている場合に
は、入力の一部はプログラムによって制御され、その他の入力はサイクルによっ
て制御されます。 プログラム・サイクルは全手順ファイルが指定されている時に存在しますが、フ
ァイル処理は、全手順ファイルの明細または合計の演算時に行われます。
ファイル命令コードを入力のプログラム制御に使用することができます。 これらの
ファイル命令コードは、ファイル命令で説明されています。
図 8. プログラム・サイクル内の入力操作のプログラマー制御
図 9. RPG IV 例外/エラー処理の詳細な流れ ルーチン
RPG IV 例外/エラー処理ルーチン
図 9 は、RPG IV 例外/エラー処理ルーチンの特定のス
テップを示しています。 以下の説明の項目番号は、図の中の
番号を示しています。
- 1
- ファイル情報データ構造またはプロシージャー状況データ構造が指定された
場合には、それが状況情報によってセットアップされます。
- 2
- 例外/エラーが 73 から 74 桁目に標識の指定がある命令コードで起こった場合
には、標識がオンに設定され、演算の次の順序の命令に制御が戻されます。
- 3
- 該当する例外/エラー処理サブルーチン (INFSR または *PSSR) がプロシージ
ャーに存在する場合には、プロシージャーはステップ 13 に分岐し、そうでない
場合には、プロシージャーはステップ 4 から続行されます。
- 4
- 状況コードが 1121 から 1126 の場合には (ファイル状況コードを参照)、
演算の現在の命令に制御が戻されます。 そうでない場合には、プロシージャーはステップ 5 から続行されます。
- 5
- 例外が機能チェックである場合には、プロシージャーはステップ 6 から続行
されます。そうでない場合には、ステップ 15 に分岐します。
- 6
- 照会メッセージが要求元端末に出されます。 対話式ジョブの場合には、メッ
セージは要求元に送られます。 バッチ・ジョブの場合には、
メッセージは QSYSOPR に送られます。
QSYSOPR が中断モードでなければ、デフォルトの応答が出さ
れます。
- 7
- ユーザーの応答がプロシージャーを取り消すためのものである場合には、
プロシージャーはステップ 8 から続行されます。 そうでない場合には、プロシージャーは
続行されます。
- 8
- ユーザーの応答がダンプをとってプロシージャーを取り消すためのものであ
る場合には、プロシージャーはステップ 9 から続行されます。 そうでない場合
には、プロシージャーはステップ 10 に分岐します。
- 9
- ダンプが出力されます。
- 10
- すべてのファイルがクローズされ、データ域はアンロックされます。
- 11
- プロシージャーは再び呼び出せるように設定されます。
- 12
- 戻りコードが設定され、機能チェックがパーコレートされます。
- 13
- 制御が例外/エラー処理サブルーチン (INFSR または *PSSR) に渡されます。
- 14
- 例外/エラー処理サブルーチンの ENDSR 命令の演算項目 2 に戻り点が指定され
ている場合には、プロシージャーは指定された戻り点に進みます。 戻り点が指定
されていない場合には、プロシージャーはステップ 4 に進みます。
ENDSR 命令の
演算項目 2 にフィールド名が指定されていて、その内容が RPG IV 定義の戻り
点 (*GETIN または *DETC など) の 1 つではない場合には、プロシージャーはス
テップ 6 に進みます。 エラーは示されず、元のエラーは演算項目 2 の指定がブラ
ンクであるかのように処理されます。
- 15
- 呼び出しで例外が処理されない場合には、
機能チェックへプロモートされ、プロシージャーはステップ 5 に分岐します。
そうでない場合には、処理プログラムによってとられた処置に応じて、
ステップ 10 でか、または例外が起こった点の後の次の機械命令のいずれかで
このプロシージャーにおける制御が再開されます。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.