/*š**************************************************************************€*/ /*šADDDLYC: Add an extra delay (in days) before returning to calling pgm €*/ /*šPGMR: MJR May'97 €*/ /*š**************************************************************************€*/ PGM (&CHARTIME &ADDDLY &PROMPT) DCL VAR(&CHARTIME) TYPE(*CHAR) LEN(8) DCL VAR(&PROMPT) TYPE(*CHAR) LEN(1) DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(512) DCL VAR(&DELAY) TYPE(*DEC) LEN(6 0) DCL VAR(&DELAYDAYS) TYPE(*CHAR) LEN(1) DCLF FILE(ADDDLYDF) /*š**************************************************************************€*/ /*š GLOBAL MESSAGE MONITOR €*/ /*š**************************************************************************€*/ MONMSG MSGID(CPF0000 RPG0000 QRG0000 RSF0000 + MCH0000) EXEC(GOTO CMDLBL(##ERROR)) GOTO CMDLBL(##NOERROR) ##ERROR: MOVPGMMSG MONMSG MSGID(CPF0000) RSNESCMSG MONMSG MSGID(CPF0000) RETURN ##NOERROR: /*š**************************************************************************€*/ /*š START OF MAINLINE CODE €*/ /*š**************************************************************************€*/ /*šFormat current request time foir screen display €*/ CHGVAR VAR(&DLYTIM) VALUE(&CHARTIME) /*šMain display loop €*/ DISPLAY: /*šSend the screen display if prompt required, otherwise use parm values €*/ IF COND(&PROMPT = 'Y') THEN(SNDRCVF + RCDFMT(SCREEN01)) /*šConvert delay in days to number of seconds €*/ CHGVAR VAR(&DELAY) VALUE((&ADDDLY * 60 * 60 * 24) + 1) /*šSend status message to let user know they're in for a (long) wait €*/ CHGVAR VAR(&DELAYDAYS) VALUE(&ADDDLY) CHGVAR VAR(&MSGDTA) VALUE(&DELAYDAYS |> 'day wait + started.') SNDPGMMSG MSGID(EMS0000) MSGF(MMSMSGF) MSGDTA(&MSGDTA) + TOPGMQ(*EXT) MSGTYPE(*STATUS) /*šWait specified number of days €*/ DLYJOB DLY(&DELAY) /*šTime to go.... €*/ ENDPGM: RETURN ENDPGM