メニューボタン
製品・技術情報2019.06.13

オンライン処理で発生したエラーを簡単に確認したい

Question

現在、オンライン処理でのエラーハンドリングで、発生することが分かっているメッセージについては個別にMONMSG MSGID(XXX9999)で対応しています。 その他想定していないメッセージが発生した際はMONMSG MSGID(CPF0000)を組み込み途中で終了するようにしていますが、毎回原因を特定するのにジョブログを確認するのが手間です。

想定していないメッセージが出た際に、そのメッセージだけを表示させて終了させる方法は無いでしょうか?

Answer

CPF0000でモニターされた場合にRCVMSGで直前に発生したメッセージを取得し、SNDBRKMSGで自分自身にメッセージを送ることで実現できます。

/*変数定義                                                */
             DCL        VAR(&MSG) TYPE(*CHAR) LEN(512)      
             DCL        VAR(&JOB) TYPE(*CHAR) LEN(10)       
                                                            
/*事前定義                                                 */
             MONMSG     MSGID(CPF0000) EXEC(GOTO CMDLBL(MSG))
             RTVJOBA    JOB(&JOB)                           
                                                            
~                                                          
処理内容                                                    
             GOTO       CMDLBL(END)                         
~                                                          
                                                            
/*異常終了*/                                                
 MSG:        RCVMSG     MSGQ(*PGMQ) MSG(&MSG)               
             SNDBRKMSG  MSG(&MSG) TOMSGQ(&JOB)              
                                                            
/*終了処理*/                                                
 END:        ENDPGM                     

サイト内全文検索

PAGE TOP