RPG

265. デバッグ表示を QSYSOPR に出すには ?

DSPLY 命令を使えば、ちょっとしたメッセージを表示できることは良くわかった。
対話式ジョブでは DSPLY は 5250 画面に表示され、バッチ・ジョブでは
DSPLY 命令の内容は QSYSOPR に表示される。
それでは 対話式ジョブであっても DSPLY 命令の内容を QSYSOPR に
表示されるようにするにはどのようにしたらよいのだろうか ?

この方法については IBM ILE-RPG 解説書にも説明されているが
残念ながらその説明は具体的でなくわかりにくいものであるので
ここで解説することにした。

【SAMPLE: TESTSYSMSE】
0001.00 H DFTNAME(TESTSYSMSE) DATEDIT(*YMD/)                                   
0002.00 F********** QSYSOPR へのメッセージ表示 ********************************
0003.00 F*                                                                     
0004.00 F**********************************************************************
0005.00 D DSP40           S             40A                                    
0006.00 D SHCODE          S             10A   INZ('NV-CH1    ')                
0007.00                                                                        
0008.00 C     'SHCODE='     CAT(P)    SHCODE:0      DSP40                      
0009.00 C     DSP40         DSPLY     'QSYSOPR   '                             
0010.00 C                   SETON                                        LR    
0011.00 C                   RETURN                                             
【解説】

演算項目2 に ’QSYSOPR ‘ を指定するだけで
メッセージはつねに QSYSOPR に表示されることになる。
IBM 解説書ももう少しこのように例でも示してわかりやすく解説されればよかった。