RPG

113. エラー・メッセージ表示のテクニック (2)

少し変わったエラー・メッセージの使用方法を紹介しよう。
開発者は毎度のように QCPFMSG には見飽きているかも知れない。
ここでは逆に QCPFMSG を利用するのである。
QCPFMSG はほとんど OS400によって使用されているのであるが
同じような良く似たメッセージがあれば QCPFMSG を利用するのである。
QCPFMSG でなくても SEU, DFU, QUERY など OS400には大量の
メッセージ・ファイルが保管されている。
しかもOS400リリースによってこれらの内容が変わることもないし
メッセージ・ファイルの管理の手間も削減することができる。
しかも OS400のメッセージ・ファイルは、言語に対応して用意されているので
同じメッセージ識別コードであっても英語環境で実行するときは
正しい英文として表示されるという便利なものである。

そこでコマンド入力行から

DSPMSGD RANGE(*FIRST *LAST) DETAIL(*BASIC) OUTPUT(*PRINT)

を実行すると QCPFMSG の内容が印刷スプールに出力される。
このスプールは保存しておいて頂きたい。
スプールの中身を検索すれば自分が欲しい良く似たメッセージを探すことができる。
首尾良く適切なメッセージが見つかったら、そのメッセージ識別コードを利用すれば
よいのである。

例えば次の例を見て欲しい。

   A* 61 : IMPOSSIBLE TO ROLLUP                                      
   A  61                                  ERRMSGID(EDT0411 QPDA/QEDTMSG 61)
   A* 62 : IMPOSSIBLE TO ROLLDOWN                                    
   A  62                                  ERRMSGID(EDT0410 QPDA/QEDTMSG 62)

DSPMSGD RANGE(EDT0411) MSGF(QPDA/QEDTMSG) を実行してみると
EDT0411 は「すでにリストの最下部が表示されている 」と記述されている。
これはサブファイルがこれ以上ロールアップできないことをメッセージとして表示するものであるが、
これは SEU で使用しているメッセージを借用したものである。
IBM から提供されているメッセージは事前に多くの慎重な検討がなされているはずであるから
ユーザーが借用するのに適している。

また QUERY/400 のテキストなどは、かなりメッセージ・ファイル化されている。
IBM のメッセージ・ファイルの使用を調査するとユーザーにも大いに参考になるはずである。