星期二, 11月 07, 2023

2006-10-11 如何判斷 Job 是 interactive 或 batch(CL command RTVJOBA, API QUSRJOBI, or MI _PCOPTR) ?


如何判斷 Job 是 interactive 或 batch(CL command RTVJOBA, API QUSRJOBI, or MI _PCOPTR) ?

可以使用 CL command RTVJOBA TYPE(&TYPE)
IF (&TYPE *EQ '1') ==> batch(批次)
If (&TYPE *EQ '0') ==> interactive(線上)

或使用 2001-02-06 如何於RPG中判斷 Batch 或 Interactive Job -- INTERACTR(API QUSRJOBI)
請至 http://blog.xuite.net/vengoal/as400 Vengoal 日誌瀏覽

或是用本期電子報所提供更快速的系統內建函數(machine interface) _PCOPTR
 


File  : QRPGLESRC
Member: RTVJOBTYPE
Type  : RPGLE
Usage : CRTBNDRPG RTVJOBTYPE
        CALL RTVJOBTYPER
        ==> DSPLY  I (表示 interactive 線上)
        SBMJOB CMD(CALL RTVJOBTYPE)
        ==> DSPMSG QSYSOPR
           會出現 DSPLY  B 訊息(表示 batch 批次)
OS version: 適用於V5R1(含)以後


     H dftactgrp( *no ) debug                                       
                                                                    
     D PCOPTR          PR              *   extproc( '_PCOPTR' )     
                                                                    
     D Pco             DS                  based( Pco@ ) qualified  
     D   JobType                      1A   overlay( Pco: 545 )      
                                                                    
     C                   eval      Pco@ = PCOPTR()                  
     C*     show "I" or "B"                                         
     C     Pco.JobType   dsply                                      
     C                   eval      *INLR = *on                      




沒有留言: