CL

5. バッチジョブでも対話式でもメッセージを正しく通知するには?

ある CLP は対話式でもバッチでも実行される場合があり、その場合で正しく元の捜査員にメッセージを伝えたい。
RTVJOBA で取得できるタイプは 0=バッチ, 1=対話式ジョブ を意味する。

0001.00              PGM          
0002.00              DCL        VAR(&TYPE) TYPE(*CHAR) LEN(1)   
0003.00              DCL        VAR(&SBMMSGQ) TYPE(*CHAR) LEN(10) 
0004.00              DCL        VAR(&SBMMSGQLIB) TYPE(*CHAR) LEN(10)   
0005.00                                    
0006.00              RTVJOBA    TYPE(&TYPE) SBMMSGQ(&SBMMSGQ) +    
0007.00                           SBMMSGQLIB(&SBMMSGLIB)     
0008.00              IF         COND(&TYPE = '0') THEN(DO)   
0009.00              SNDPGMMSG  MSG('COMPLETED AT BATCH JOB') +  
0010.00                           TOMSGQ(&SBMMSGQLIB/&SBMMSGQ) MSGTYPE(*COMP)   
0011.00              ENDDO                 
0012.00              ELSE       CMD(DO)     
0013.00              SNDPGMMSG  MSG('COMPETED AT INTERACTIVE') MSGTYPE(*COMP) 
0014.00              ENDDO      
0015.00              ENDPGM