CL

154. DSPLYメッセージを消去するには

RPGでDSPLY命令でメッセージを表示できることは
良く知られている。


 C     '成功!!'   DSPLY         ANS


のようにしてメッセージを対話式で表示することができる。
バッチで実行すると DSPLYによるメッセージは QSYSOPRに
出力されるので CGIのデバッグにも便利である。
さて対話式でこの DSPLY命令によってメッセージを
何度も出力していると以前実行したメッセージも
ヒストリーのように出力が残ったままになっているので
新しくDSPLY命令を実行しても前のメッセージの
続きに表示されるので見難くて仕方ない。

 DSPLY 'SHCODE=A001'
  DSPLY 'SHCODE=B002' ↑...ここから上が前の実行のメッセージ
  DSPLY 'SHCODE=A001' ↓...ここから↓が新しい実行のメッセージ
 DSPLY 'SHCODE=B002'
   :       :
 

という具合である。
それではこの古いメッセージを消すにはどのようにすれば良いのだろうか?
実はこのDSPLYによるメッセージは *EXT による外部メッセージであることが
調べて判明した。
そこで

  

RMVMSG PGMQ(*EXT) CLEAR(*ALL)

とCLPで実行すればDSPLYメッセージを消去することができる。