如 何於RPG中判斷 Batch 或 Interactive Job -- INTERACTR
FILE:QRPGLESRC
MEMBER Type:RPGLE
H NoMain
D pInteractive PR N
D DummyPrm 1 Options( *Omit )
P pInteractive B Export
D pInteractive PI N
D DummyPrm 1 Options( *Omit )
* Local variables
D RetdInfDs DS
D 4
D 10I 0 Inz( %Size( RetdInfDs ) )
D RiJobType 61 61
D RiTypeInteractive...
D C 'I'
D LenRetdInf S 10I 0 Inz( %Size( RetdInfDs ) )
D FmtName S 8 Inz( 'JOBI0100' )
D QlJobName S 26 Inz( '*' )
D IntJobId S 16 Inz( *Blank )
C Call 'QUSRJOBI'
C Parm RetdInfDs
C Parm LenRetdInf
C Parm FmtName
C Parm QlJobName
C Parm IntJobId
C If RiJobType = RiTypeInteractive
C Return *On
C Else
C Return *Off
C EndIf
P pInteractive E
安裝及使用說明
a) 將 INTERACT 上傳至 112 bytes 長度的 source physical file.
並將上傳的 member 命名為 INTERACT 且其 PDM type 為 RPGLE.
b) 在 PDM 中使用選項 15 編譯 INTERACT 成為一模組物件.
c) 在 Command Line 下 command 產生服務程式(Service Program):
CrtSrvPgm SrvPgm( INTERACT ) Export( *All ) ActGrp( WhateverYouWant )
要於 RPG IV 程式中使用這個服務程式,請參照下列步驟:
a) 在你的原始檔 D-specs 中要包含下列程序的 prototype(原型):
D pInteractive PR N
D DummyPrm 1 Options( *Omit )
如果你希望這個程序被使用於多個程式中,你可以考慮使用 /Copy member 來宣告原型.
b) 下列示範你自己的程式如何於 C-specs 中呼叫程序 INTERACT :
C If pInteractive( *Omit )
C 'Interactive' Dsply DummyVar
C EndIf
C If Not pInteractive( *Omit )
C 'Batch' Dsply
C Endif
c) 在 PDM 中使用選項 15 編譯 自己的程式 成為一模組物件.
d) 在 Command Line 下 command 產生你自己的程式
(底下範例是假設你的程式是單一的程式,也就是單一模組 MYPGM):
CrtPgm MyPgm Module( MYPGM ) BndSrvPgm( INTERACT ) ActGrp( Whatever )
A blog about IBM i (AS/400), MQ and other things developers or Admins need to know.
星期二, 10月 31, 2023
2001-02-06 如何於RPG中判斷 Batch 或 Interactive Job -- INTERACTR
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言