/*================================================================================================*/ /* Source: reptdistcm - Report Distribution */ /* */ /* Desc: This module reads entries from specified data queue and distributes the reports */ /* as indicated in file xxxxxxxx. */ /* */ /* Input parms: */ /* Data Queue Name */ /* Data Queue Library */ /* */ /* Output parms: */ /* None */ /* */ /*================================================================================================*/ PGM PARM(&DQNAME &DQLIB) DCL VAR(&DQNAME) TYPE(*CHAR) LEN(10) DCL VAR(&DQLIB) TYPE(*CHAR) LEN(10) DCL VAR(&DTALEN) TYPE(*DEC) LEN(5 0) VALUE(222) DCL VAR(&DATA) TYPE(*CHAR) LEN(222) DCL VAR(&WAIT) TYPE(*DEC) LEN(5 0) VALUE(-1) DCL VAR(&JOBNAME) TYPE(*CHAR) LEN(26) DCL VAR(&SPLFNAME) TYPE(*CHAR) LEN(10) DCL VAR(&SPLFNBR) TYPE(*CHAR) LEN(4) DCL VAR(&SPLNBR) TYPE(*DEC) LEN(10 0) DCL VAR(&SPLFDISTDS) TYPE(*CHAR) LEN(38) DCL VAR(&OUTQ) TYPE(*CHAR) LEN(10) DCL VAR(&FORMTYPE) TYPE(*CHAR) LEN(10) DCL VAR(&COPIESA) TYPE(*CHAR) LEN(3) DCL VAR(&COPIES#) TYPE(*DEC) LEN(3 0) DCL VAR(&SAVE) TYPE(*CHAR) LEN(5) DCL VAR(&USRDTA) TYPE(*CHAR) LEN(10) DCL VAR(&JOBNAM) TYPE(*CHAR) LEN(10) DCL VAR(&JOBUSR) TYPE(*CHAR) LEN(10) DCL VAR(&JOBNBR) TYPE(*CHAR) LEN(6) /*================================================================================================*/ /* Process Next Spooled File From Data Queue Entry. */ /*================================================================================================*/ READNEXT: CALL PGM(QRCVDTAQ) PARM(&DQNAME &DQLIB &DTALEN + &DATA &WAIT) IF COND(%SST(&DATA 1 10) *NE '*SPOOL ') + THEN(GOTO CMDLBL(ENDPGM)) CHGVAR VAR(&JOBNAME) VALUE(%SST(&DATA 13 26)) CHGVAR VAR(&SPLFNAME) VALUE(%SST(&DATA 39 10)) CHGVAR VAR(&SPLFNBR) VALUE(%SST(&DATA 49 4)) CHGVAR VAR(&JOBNAM) VALUE(%SST(&JOBNAME 1 10)) CHGVAR VAR(&JOBUSR) VALUE(%SST(&JOBNAME 11 10)) CHGVAR VAR(&JOBNBR) VALUE(%SST(&JOBNAME 21 6)) CHGVAR VAR(&SPLNBR) VALUE(%BIN(&SPLFNBR)) /*================================================================================================*/ /* Determine Distribution. */ /*================================================================================================*/ CALLPRC PRC(#RTVSPLFDIST) PARM(&SPLFNAME) + RTNVAL(&SPLFDISTDS) CHGVAR VAR(&OUTQ) VALUE(%SST(&SPLFDISTDS 1 10)) CHGVAR VAR(&FORMTYPE) VALUE(%SST(&SPLFDISTDS 11 10)) CHGVAR VAR(&COPIESA) VALUE(%SST(&SPLFDISTDS 21 3)) CHGVAR VAR(&SAVE) VALUE(%SST(&SPLFDISTDS 24 5)) CHGVAR VAR(&USRDTA) VALUE(%SST(&SPLFDISTDS 29 10)) CHGVAR VAR(&COPIES#) VALUE(&COPIESA) /*================================================================================================*/ /* Move Spooled File to Specified OUTQ. */ /*================================================================================================*/ CHKOBJ OBJ(&OUTQ) OBJTYPE(*OUTQ) MONMSG MSGID(CPF0000) EXEC(DO) CHGSPLFA FILE(&SPLFNAME) JOB(&JOBNBR/&JOBUSR/&JOBNAM) + SPLNBR(&SPLNBR) OUTQ(UNKNOWN) SNDMSG MSG('Distribution for spooled file ' *CAT + &SPLFNAME *TCAT ' could not be + determined...spooled file sent to + OUTQ(UNKNOWN).') TOUSR(QSYSOPR) GOTO CMDLBL(READNEXT) ENDDO CHGSPLFA FILE(&SPLFNAME) JOB(&JOBNBR/&JOBUSR/&JOBNAM) + SPLNBR(&SPLNBR) FORMTYPE(&FORMTYPE) COPIES(&COPIES#) + OUTQ(&OUTQ) SAVE(&SAVE) USRDTA(&USRDTA) GOTO CMDLBL(READNEXT) ENDPGM: ENDPGM /* CRTCLMOD MODULE(LIBRARY/REPTDISTCM) */ /* SRCFILE(LIBRARY/QCLLESRC) */ /* SRCMBR(REPTDISTCM) */