/* ‚*_> CNLLSTSPLF SRCFILE(@2/@1) SRCMBR(@3) */ /*‚ *_> DLTMOD MODULE(@5/@4) */ /*‚ *_> CRTCLMOD MODULE(@5/@4) SRCFILE(@2/@1) SRCMBR(@3) + */ /*‚ *_> DBGVIEW(@9) OPTIMIZE(@8) OPTION(*EVENTF) */ /*‚ *----------------------------------------------------------------------*/ /*‚ * Module.: XV0001_M01 Project.....: */ /*‚ * Author.: A. Campin Date written: 10/14/2004 */ /*‚ * Purpose: Build physical file with job log records, call an */ /*‚ * RPGILE module to extract records and run QM to */ /*‚ * produce the report. */ /*‚ *--------------------------------------------------------------------- */ /*‚ * Called by: XTREXPMSG */ /*‚ *--------------------------------------------------------------------- */ /*‚ * Revision history: */ /*‚ * Proj# Pgmr Date Desc */ /*‚ * */ /*‚ * End Revision History */ /*‚ *--------------------------------------------------------------------- */ PGM PARM(&JOB &SEVERITY &SAVE &HOLD &OUTPUT) DCL VAR(&JOB) TYPE(*CHAR) LEN(26) /* Qualified + Job Name or * for current job. */ DCL VAR(&SEVERITY) TYPE(*DEC) LEN(2 0) /* + Message Severity equal to or above + extract. */ DCL VAR(&SAVE) TYPE(*CHAR) LEN(1) /* Save Spool + File *YES(Y) or *NO(N). */ DCL VAR(&HOLD) TYPE(*CHAR) LEN(1) /* Hold Spool + File *YES(Y) or *NO(N) */ DCL VAR(&OUTPUT) TYPE(*CHAR) LEN(20) /* + Qualified Output Queue Name. *JOB, *DEV + Single Value. */ DCL VAR("E) TYPE(*CHAR) LEN(1) VALUE('''') DCL VAR(&JOBNAME) TYPE(*CHAR) LEN(10) DCL VAR(&USERNAME) TYPE(*CHAR) LEN(10) DCL VAR(&JOBNUMBER) TYPE(*CHAR) LEN(6) DCL VAR(&QNAME) TYPE(*CHAR) LEN(10) DCL VAR(&QLIB) TYPE(*CHAR) LEN(10) DCL VAR(&RTNLIB) TYPE(*CHAR) LEN(10) DCL VAR(&JOBACTIVE) TYPE(*CHAR) LEN(1) DCL VAR(&HOLD_CHR) TYPE(*CHAR) LEN(4) VALUE('*NO ') DCL VAR(&SAVE_CHR) TYPE(*CHAR) LEN(4) VALUE('*NO ') DCL VAR(&SEV_CHR) TYPE(*CHAR) LEN(2) DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) DCL VAR(&MSGF) TYPE(*CHAR) LEN(10) DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10) DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(256) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(HANDLE_ERR)) IF COND(&JOB *EQ '*') THEN(DO) RTVJOBA JOB(&JOBNAME) USER(&USERNAME) NBR(&JOBNUMBER) ENDDO ELSE CMD(DO) CHGVAR VAR(&JOBNAME) VALUE(%SST(&JOB 1 10)) CHGVAR VAR(&USERNAME) VALUE(%SST(&JOB 11 10)) CHGVAR VAR(&JOBNUMBER) VALUE(%SST(&JOB 21 6)) ENDDO DLTF FILE(QTEMP/JLTEMP) MONMSG MSGID(CPF0000) CRTPF FILE(QTEMP/JLTEMP) RCDLEN(133) TEXT('Temp to + hold spool records') SIZE(10000 1000 499) + AUT(*ALL) OVRPRTF FILE(QPJOBLOG) HOLD(*YES) CHGVAR VAR(&JOBACTIVE) VALUE('Y') DSPJOBLOG JOB(&JOBNUMBER/&USERNAME/&JOBNAME) + OUTPUT(*PRINT) MONMSG MSGID(CPF2443 CPF2441) EXEC(DO) CHGVAR VAR(&JOBACTIVE) VALUE('N') ENDDO IF COND(&JOBACTIVE *EQ 'N') THEN(DO) CPYSPLF FILE(QPJOBLOG) TOFILE(QTEMP/JLTEMP) + JOB(&JOBNUMBER/&USERNAME/&JOBNAME) + SPLNBR(*LAST) CTLCHAR(*FCFC) ENDDO ELSE CMD(DO) CPYSPLF FILE(QPJOBLOG) TOFILE(QTEMP/JLTEMP) JOB(*) + SPLNBR(*LAST) CTLCHAR(*FCFC) DLTSPLF FILE(QPJOBLOG) JOB(*) SPLNBR(*LAST) ENDDO DLTOVR FILE(*ALL) DLTF FILE(QTEMP/XV0001_T01) MONMSG MSGID(CPF0000) RTVOBJD OBJ(XV0001_T01) OBJTYPE(*FILE) RTNLIB(&RTNLIB) CRTDUPOBJ OBJ(XV0001_T01) FROMLIB(&RTNLIB) + OBJTYPE(*FILE) TOLIB(QTEMP) + NEWOBJ(XV0001_T01) GRTOBJAUT OBJ(QTEMP/XV0001_T01) OBJTYPE(*FILE) + USER(*PUBLIC) AUT(*ALL) OVRDBF FILE(JLTEMP) TOFILE(QTEMP/JLTEMP) + SHARE(*YES) SEQONLY(*YES 100) OVRDBF FILE(XV0001_T01) TOFILE(QTEMP/XV0001_T01) + SHARE(*YES) SEQONLY(*YES 100) CALLPRC PRC('ExtractRecords') PARM(&SEVERITY) IF COND(&SAVE *EQ 'Y') THEN(CHGVAR + VAR(&SAVE_CHR) VALUE('*YES')) IF COND(&HOLD *EQ 'Y') THEN(CHGVAR + VAR(&HOLD_CHR) VALUE('*YES')) CHGVAR VAR(&SEV_CHR) VALUE(&SEVERITY) CHGVAR VAR(&QNAME) VALUE(%SST(&OUTPUT 1 10)) CHGVAR VAR(&QLIB) VALUE(%SST(&OUTPUT 11 10)) IF COND((&QNAME *EQ '*JOB') *OR (&QNAME *EQ + '*DEV')) THEN(DO) OVRPRTF FILE(QPQXPRTF) PAGESIZE(46 165) LPI(6) + CPI(15) OVRFLW(42) PAGRTT(90) SPOOL(*YES) + OUTQ(&QNAME) FORMTYPE(*STD) + HOLD(&HOLD_CHR) SAVE(&SAVE_CHR) + USRDTA('Exp_List') SPLFNAME(XV0001_P01) + OVRSCOPE(*JOB) SHARE(*YES) OPNSCOPE(*JOB) ENDDO ELSE CMD(DO) OVRPRTF FILE(QPQXPRTF) PAGESIZE(46 165) LPI(6) + CPI(15) OVRFLW(42) PAGRTT(90) SPOOL(*YES) + OUTQ(&QLIB/&QNAME) FORMTYPE(*STD) + HOLD(&HOLD_CHR) SAVE(&SAVE_CHR) + USRDTA('Exp_List') SPLFNAME(XV0001_P01) + OVRSCOPE(*JOB) SHARE(*YES) OPNSCOPE(*JOB) ENDDO STRQMQRY QMQRY(XV0001_Q01) OUTPUT(*PRINT) + QMFORM(XV0001_Q01) DATETIME(*NO) + PAGNBR(*NO) SETVAR((JOBNAM ("E || + &JOBNAME || "E)) (USRNAM ("E || + &USERNAME || "E)) (JOBNUM ("E || + &JOBNUMBER || "E)) (SEVERITY ("E + || &SEV_CHR || "E))) DLTOVR FILE(*ALL) DLTF FILE(QTEMP/JLTEMP) MONMSG MSGID(CPF0000) DLTF FILE(QTEMP/XV0001_T01) MONMSG MSGID(CPF0000) RETURN /*------------------------------------------------------------------*/ /* Handle unmonitored errors. */ HANDLE_ERR: RCVMSG MSGTYPE(*EXCP) MSGDTA(&MSGDTA) MSGID(&MSGID) + MSGF(&MSGF) MSGFLIB(&MSGFLIB) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(END_ABNORM)) IF COND(&MSGID *EQ ' ') THEN(GOTO + CMDLBL(END_ABNORM)) SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) + MSGDTA(&MSGDTA) MSGTYPE(*DIAG) END_ABNORM: SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Command + XTREXPMSG ended abnormally! See previous + messages for reason!') MSGTYPE(*ESCAPE) ENDPGM