hab ich mal im Netz abgeschrieben
weiß leider nicht mehr von wem
ist noch nicht so lange her, ging bis v5r3 über trace
Code:
/* CMD WRKFRGNJOB */
CMD PROMPT('WRKFRGNJOB')
PARM KWD(JOBNAME) TYPE(*CHAR) LEN(10) MIN(1) +
CHOICE('NAME') PROMPT('JOB NAME')
PARM KWD(JOBUSER) TYPE(*CHAR) LEN(10) MIN(1) +
CHOICE('NAME') PROMPT('JOB USER')
PARM KWD(JOBNUMBER) TYPE(*CHAR) LEN(6) +
RANGE('00000' '999999') MIN(1) +
CHOICE('000000 - 999999') PROMPT('JOBNUMBER')
PARM KWD(COMMAND) TYPE(*CHAR) LEN(512) MIN(1) +
CHOICE('NAME') PROMPT('COMMAND TO RUN')
Code:
/* CL 1 WRKFRGNPR */
PGM PARM(&JOBNAME &USER &JOBNO &CMD)
DCL VAR(&JOBNAME) TYPE(*CHAR) LEN(10)
DCL VAR(&USER) TYPE(*CHAR) LEN(10)
DCL VAR(&JOBNO) TYPE(*CHAR) LEN(06)
DCL VAR(&CMD) TYPE(*CHAR) LEN(300)
DCL VAR(&INPUT) TYPE(*CHAR) LEN(2056)
DCL VAR(&DTAOFFSET) TYPE(*CHAR) LEN(4)
DCL VAR(&DTALENGTH) TYPE(*CHAR) LEN(4)
DCL VAR(&HEX_0000) TYPE(*CHAR) LEN(2) VALUE(X'0000')
DCL VAR(&C_56) TYPE(*DEC) LEN(5 0) VALUE(56)
DCL VAR(&C_300) TYPE(*DEC) LEN(5 0) VALUE(300)
DCL VAR(&MSG) TYPE(*CHAR) LEN(132)
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))
CHGVAR %BIN(&DTAOFFSET) &C_56
CHGVAR %BIN(&DTALENGTH) &C_300
CHGVAR VAR(&INPUT) VALUE('RUNJBCMDPR' *CAT +
'MISYS ' *CAT &JOBNAME *CAT &USER +
*CAT &JOBNO *CAT &HEX_0000 *CAT &DTAOFFSET + *CAT &DTALENGTH *CAT &CMD)
CALL PGM(QWCJBITP) PARM(&INPUT 'JITP0100' +
X'0000000000000000')
ERROR: RCVMSG MSGTYPE(*EXCP) RMV(*NO) MSG(&MSG)
SNDPGMMSG MSG(&MSG)
ENDIT: ENDPGM
Code:
/* CL 2 WRKFRGN2PR */
PGM PARM(&DUMMY)
DCL VAR(&DUMMY) TYPE(*CHAR) LEN(100)
DCL VAR(&JOBNO) TYPE(*CHAR) LEN(06)
DCL VAR(&CMD) TYPE(*CHAR) LEN(512)
DCL VAR(&MSG) TYPE(*CHAR) LEN(132)
DCL VAR(&CLEN) TYPE(*DEC) LEN(15 5)
DCL VAR(&SNDDTAQ) TYPE(*CHAR) LEN(10)
DCL VAR(&RCVDTAQ) TYPE(*CHAR) LEN(10)
DCL VAR(&LEN) TYPE(*DEC) LEN(5 0)
DCL VAR(&WAIT) TYPE(*DEC) LEN(5 0) VALUE(0)
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ENDIT))
RTVJOBA NBR(&JOBNO)
CHGVAR VAR(&RCVDTAQ) VALUE('SND' *CAT &JOBNO)
CHGVAR VAR(&SNDDTAQ) VALUE('RCV' *CAT &JOBNO)
CALL PGM(QRCVDTAQ) PARM(&RCVDTAQ 'QGPL' &LEN &CMD +
&WAIT) IF COND(&LEN *EQ 0) THEN(GOTO CMDLBL(ENDIT))
CHGVAR VAR(&CLEN) VALUE(&LEN)
CALL PGM(QCMDEXC) PARM(&CMD &CLEN)
MONMSG MSGID(CPF0000)
CHGVAR VAR(&LEN) VALUE(1)
SENDMSG: CALL PGM(QSNDDTAQ) PARM(&SNDDTAQ 'QGPL' &LEN &MSG)
RCVMSG RMV(*NO) MSG(&MSG) MSGLEN(&LEN)
IF COND(&MSG *NE ' ') THEN(GOTO CMDLBL(SENDMSG))
ENDIT: ENDPGM
viel erfolg
Robi
Bookmarks