実行時照会メッセージに対する応答

ILE RPG プロシージャーでプログラムを実行した場合には、実 行時照会メッセージが生成されることがあります。 これはサイクル・メイン・プロシージャー内で機能チェックのためにデフォルト・ エラー処理プログラムが呼び出された場合に起こります。サイクル・メイン・プロシージャー内の例外処理プログラムを参照してください。プログラムを続いて実行したい場合には、照会メッセージに応答が必要です。
注: サブプロシージャーの機能チェックのデフォルト・エラー処理では サブプロシージャーが取り消され、サブプロシージャーの呼び出し元に対して例外がパーコレートされるため、照会メッセージがサブプロシージャー (リニア・メイン・プロシージャーとして指定されるものも含む) に対して発行されることはありません。 『サブプロシージャー内の例外処理プログラム』を参照してください。

サブプロシージャーの呼び出し元が RPG プロシージャ ーの場合には、実際の例外に関連する状況コードには依存せずに、呼び出しは 状況 00202 で失敗します。呼び出しの失敗により RPG サイクル・メイン・プロシージャーが デフォルト・ハンドラーを呼び出した場合には、照会メッセージ RNQ0202 が 発行されます。

メッセージへ自動応答するために、システム応答リストに照会メッセージを追加することができます。 これらのメッセージに対する応答は個別に、あるいは全般的に指定することができます。 照会メッセージに対するこれらの応答の方法は、バッチ・プログラムに特に適しています。 そうでない場合には、応答を出すオペレーターが必要になります。

変更の始まり システム応答リストに追加できるすべての ILE RPG 照会メッセージを見つけるには、以下のコマンドを使用します。
DSPMSGD RANGE(RNQ0100 RNQ9999)
        MSGF(QRNXMSG) DETAIL(*BASIC) OUTPUT(*PRINT)
注: ILE RPG 照会メッセージは RNQ というメッセージ ID 接頭部を持っています。
変更の終わり
応答リスト項目追加コマンドを使用してシステム応答リストに照会メッセージを追加するためには、 次を入力してください。
ADDRPYLE sequence-no message-id

ここで、sequence-no は 1 ~ 9999 の番号で、 これはリストの中のどこで項目が加えられているかを示し、message-id は、 追加したいメッセージ番号です。 追加したい各メッセージにこのコマンドを繰り返してください。

ジョブ変更 (CHGJOB) コマンド (または他の CL ジョブ・コマンド) を使用し て、ジョブで照会メッセージの応答リストを使用することを指示します。 これを行うためには、QUERY メッセージ応答 (INQMSGRPY) 属性に *SYSRPYL を指定する必要があります。

QUERY メッセージ応答 (INQMSGRPY) 属性が INQMSGRPY(*SYSRPYL) として 指定されているジョブによって照会メッセージが送られた場合にのみ 応答リストが使用されます。INQMSGRPY パラメーターは次の CL コマンドにあります。
  • ジョブ変更 (CHGJOB)
  • ジョブ記述変更 (CHGJOBD)
  • ジョブ記述作成 (CRTJOBD)
  • ジョブ投入 (SBMJOB)

またシステム応答リスト項目処理 (WRKRPYLE) コマンドを使用して、 システム応答リストの項目を変更または除去することができます。ADDRPYLE コマンドおよび WRKRPYLE コマンドについての詳細は、Web サイト http://www.ibm.com/systems/i/infocenter/IBM® i Information Center の中の『プログラミング』カテゴリーの『CL および API』の節を参照してください。