/*--+------------------------------------------------------------+--*/ /*--+ PROGRAM ID : $RSTOUTQ +--*/ /*--+ PROGRAM NAME : CL OF RESTORE OUTPUT QUEUE. +--*/ /*--+------------------------------------------------------------+--*/ /*--+ VERSION : 1.1 (1999/07/26) ERROR CODE PARM +--*/ /*--+ 1.0 (1999/07/13) +--*/ /*--+------------------------------------------------------------+--*/ PGM PARM(&FILEANDLIB &OUTQANDLIB &MBR) /*--+------------------------------------------------------------+--*/ /* + DECLARATION + */ /*--+------------------------------------------------------------+--*/ /*- COMMAND PARAMETERS FOR THIS PROGRAM ----------------------------*/ DCL VAR(&FILEANDLIB) TYPE(*CHAR) LEN( 20 ) /* FILE & LIBRARY */ DCL VAR(&FILE ) TYPE(*CHAR) LEN( 10 ) /* FILE */ DCL VAR(&FILELIB ) TYPE(*CHAR) LEN( 10 ) /* LIBRARY */ DCL VAR(&OUTQANDLIB) TYPE(*CHAR) LEN( 20 ) /* OUTQ & LIBRARY */ DCL VAR(&OUTQ ) TYPE(*CHAR) LEN( 10 ) /* OUTQ */ DCL VAR(&OUTQLIB ) TYPE(*CHAR) LEN( 10 ) /* LIBRARY */ DCL VAR(&MBR ) TYPE(*CHAR) LEN( 10 ) /* MEMBER */ /*- SHARED VARIABLES FOR THIS PROGRAM ------------------------------*/ DCL VAR(&SH_USRSPC ) TYPE(*CHAR) LEN( 20 ) /* USER SPACE */+ VALUE('RSTOUTQ QTEMP ') DCL VAR(&SH_MSG ) TYPE(*CHAR) LEN( 80 ) /* MESSAGE */ DCL VAR(&SH_MSGDTA ) TYPE(*CHAR) LEN( 256 ) /* MESSAGE DATA */ DCL VAR(&SH_MSGID ) TYPE(*CHAR) LEN( 7 ) /* MESSAGE ID */ DCL VAR(&SH_MSGKEY ) TYPE(*CHAR) LEN( 4 ) /* MESSAGE KEY */ DCL VAR(&SH_STRPOS ) TYPE(*DEC ) LEN( 9 0) /* START POSITION */ DCL VAR(&SH_OFFSET ) TYPE(*DEC ) LEN( 9 0) /* OFFSET */ DCL VAR(&SH_OFFSETB) TYPE(*CHAR) LEN( 4 ) /* BIN OF &SH_OFFSET */ DCL VAR(&SH_LSTCNT ) TYPE(*DEC ) LEN( 9 0) /* NUMBER OF LIST DATA */ DCL VAR(&SH_LSTCNTB) TYPE(*CHAR) LEN( 4 ) /* BIN OF &SH_LSTCNT */ DCL VAR(&SH_LSTSIZ ) TYPE(*DEC ) LEN( 9 0) /* SIZE OF LIST DATA */ DCL VAR(&SH_LSTSIZB) TYPE(*CHAR) LEN( 4 ) /* BIN OF &SH_LSTSIZ */ DCL VAR(&SH_COUNT ) TYPE(*DEC ) LEN( 7 0) /* COUNTER */ DCL VAR(&SH_MBR ) TYPE(*CHAR) LEN( 10 ) /* MEMBER NAME */ /*- PARAMETERS FOR API ---------------------------------------------*/ /* QUSCRTUS */ /* &SH_USRSPC */ DCL VAR(&QCR_EXTDAT) TYPE(*CHAR) LEN( 10 ) /* EXTENDED ATTRIBUTE */ DCL VAR(&QCR_INTSIZ) TYPE(*CHAR) LEN( 4 ) /* INITIAL SIZE(B) */ DCL VAR(&QCR_INTVAL) TYPE(*CHAR) LEN( 1 ) /* INITIAL VALUE */ DCL VAR(&QCR_PUBAUT) TYPE(*CHAR) LEN( 10 ) /* PUBLIC AUTHORITY */ DCL VAR(&QCR_TEXT ) TYPE(*CHAR) LEN( 50 ) /* TEXT DESCRIPTION */ /* QUSRTVUS */ /* &SH_USRSPC */ DCL VAR(&QRT_STRPOS) TYPE(*CHAR) LEN( 4 ) /* START POSITION(B) */ DCL VAR(&QRT_DTALEN) TYPE(*CHAR) LEN( 4 ) /* LENGTH OF DATA(B) */ DCL VAR(&QRT_RCVDTA) TYPE(*CHAR) LEN( 256 ) /* RECEIVER VARIABLE */ /* QUSLMBR */ /* &SH_USRSPC */ DCL VAR(&QLM_FORMAT) TYPE(*CHAR) LEN( 8 ) /* FORMAT NAME */ DCL VAR(&QLM_FILE ) TYPE(*CHAR) LEN( 20 ) /* FILE AND LIBRARY */ DCL VAR(&QLM_MBR ) TYPE(*CHAR) LEN( 10 ) /* MEMBER NAME */ DCL VAR(&QLM_OVRIDE) TYPE(*CHAR) LEN( 1 ) /* OVERRIDE PROCESSING */ DCL VAR(&QLM_ERRCD ) TYPE(*CHAR) LEN( ) /* ERROR CODE */ /*--+------------------------------------------------------------+--*/ /* + START OF PROGRAM + */ /*--+------------------------------------------------------------+--*/ /*--+------------------------------------------------------------+--*/ /* + INITIALIZE + */ /*--+------------------------------------------------------------+--*/ /*- PREPARATION FOR COMMAND PARAMETER ------------------------------*/ IF (%SST(&OUTQANDLIB 1 10) *EQ '*JOB') DO RTVJOBA OUTQ(&OUTQ ) OUTQLIB(&OUTQLIB ) CHGVAR VAR(%SST(&OUTQANDLIB 1 10)) VALUE(&OUTQ ) CHGVAR VAR(%SST(&OUTQANDLIB 11 10)) VALUE(&OUTQLIB ) ENDDO /*- DIVISION OF COMMAND PARAMETER ----------------------------------*/ CHGVAR VAR(&OUTQ ) VALUE(%SST(&OUTQANDLIB 1 10)) CHGVAR VAR(&OUTQLIB ) VALUE(%SST(&OUTQANDLIB 11 10)) CHGVAR VAR(&FILE ) VALUE(%SST(&FILEANDLIB 1 10)) CHGVAR VAR(&FILELIB ) VALUE(%SST(&FILEANDLIB 11 10)) /*- PARAMETER SETTING ----------------------------------------------*/ /* FOR QUSCRTUS */ CHGVAR VAR(&QCR_EXTDAT) VALUE(' ') CHGVAR VAR(%BIN(&QCR_INTSIZ)) VALUE(1024) CHGVAR VAR(&QCR_INTVAL) VALUE(' ') CHGVAR VAR(&QCR_PUBAUT) VALUE('*ALL') CHGVAR VAR(&QCR_TEXT ) VALUE('CREATED BY RSTOUTQ') /* FOR QUSLMBR */ CHGVAR VAR(&QLM_FORMAT) VALUE('MBRL0100') CHGVAR VAR(&QLM_FILE ) VALUE(&FILEANDLIB) CHGVAR VAR(&QLM_MBR ) VALUE(&MBR) CHGVAR VAR(&QLM_OVRIDE) VALUE('0') CHGVAR VAR(%BIN(&QLM_ERRCD 1 4)) VALUE(15) /*- CHECK OF COMMAND PARAMETER -------------------------------------*/ /* FOR FILE */ IF ((&FILELIB *NE '*LIBL') *AND (&FILELIB *NE '*CURLIB')) DO CHKOBJ OBJ(&FILELIB) OBJTYPE(*LIB) MONMSG MSGID(CPF9801) EXEC(DO) RCVMSG MSGQ(*PGMQ) RMV(*YES) /* MSG: LIBRARY NOT FOUND */ SNDPGMMSG MSGID(CPF9810) MSGF(QCPFMSG) + MSGDTA(&FILELIB) + MSGTYPE(*ESCAPE) ENDDO ENDDO CHKOBJ OBJ(&FILELIB/&FILE) OBJTYPE(*FILE) MONMSG MSGID(CPF9801) EXEC(DO) RCVMSG MSGQ(*PGMQ) RMV(*YES) /* MSG: FILE IN LIBRARY NOT FOUND */ SNDPGMMSG MSGID(CPF9812) MSGF(QCPFMSG) + MSGDTA(&FILEANDLIB) + MSGTYPE(*ESCAPE) ENDDO IF (&MBR *NE '*ALL') DO CHKOBJ OBJ(&FILELIB/&FILE) OBJTYPE(*FILE) MBR(&MBR) MONMSG MSGID(CPF9815) EXEC(DO) RCVMSG MSGQ(*PGMQ) RMV(*YES) MSGDTA(&SH_MSGDTA) /* MSG: MEMBER FILE IN LIBRARY NOT FOUND */ SNDPGMMSG MSGID(CPF9815) MSGF(QCPFMSG) + MSGDTA(&SH_MSGDTA ) + MSGTYPE(*ESCAPE) ENDDO ENDDO /* OUTQ */ IF ((&OUTQLIB *NE '*LIBL') *AND (&OUTQLIB *NE '*CURLIB')) DO CHKOBJ OBJ(&OUTQLIB) OBJTYPE(*LIB) MONMSG MSGID(CPF9801) EXEC(DO) RCVMSG MSGQ(*PGMQ) RMV(*YES) /* MSG: LIBRARY NOT FOUND */ SNDPGMMSG MSGID(CPF9810) MSGF(QCPFMSG) + MSGDTA(&OUTQLIB) + MSGTYPE(*ESCAPE) ENDDO ENDDO CHKOBJ OBJ(&OUTQLIB/&OUTQ) OBJTYPE(*OUTQ) MONMSG MSGID(CPF9801) EXEC(DO) RCVMSG MSGQ(*PGMQ) RMV(*YES) /* MSG: OUTPUT QUEUE IN LIBRARY NOT FOUND */ SNDPGMMSG MSGID(CPF3357) MSGF(QCPFMSG) + MSGDTA(&OUTQANDLIB) + MSGTYPE(*ESCAPE) ENDDO /*- CREATION OF USER SPACE -----------------------------------------*/ CHKOBJ OBJ(%SST(&SH_USRSPC 11 10)/%SST(&SH_USRSPC 1 10)) + OBJTYPE(*USRSPC) MONMSG MSGID(CPF9801) EXEC(DO) RCVMSG MSGQ(*PGMQ) RMV(*YES) CALL PGM(QUSCRTUS) PARM(&SH_USRSPC + &QCR_EXTDAT + &QCR_INTSIZ + &QCR_INTVAL + &QCR_PUBAUT + &QCR_TEXT ) ENDDO /*- SET OF LIST INTO THE USER SPACE --------------------------------*/ CALL PGM(QUSLMBR) PARM(&SH_USRSPC + &QLM_FORMAT + &QLM_FILE + &QLM_MBR + &QLM_OVRIDE + &QLM_ERRCD ) IF (%SST(&QLM_ERRCD 9 7) *EQ 'CPF9812') DO /* MSG: FILE IN LIBRARY NOT FOUND */ SNDPGMMSG MSGID(CPF9812) MSGF(QCPFMSG) + MSGDTA(&FILEANDLIB) + MSGTYPE(*ESCAPE) ENDDO /*- RETRIEVE HEADER INFORMATION OF LIST FROM USER SPACE ------------*/ CHGVAR VAR(%BIN(&QRT_STRPOS)) VALUE(125) CHGVAR VAR(%BIN(&QRT_DTALEN)) VALUE( 16) CALL PGM(QUSRTVUS) PARM(&SH_USRSPC + &QRT_STRPOS + &QRT_DTALEN + &QRT_RCVDTA ) CHGVAR VAR(&SH_LSTCNTB) VALUE(%SST(&QRT_RCVDTA 9 4)) CHGVAR VAR(&SH_LSTCNT ) VALUE(%BIN(&SH_LSTCNTB)) IF (&SH_LSTCNT = 0) DO /* NO DATA */ CHGVAR VAR(&SH_MSG ) VALUE('NO SPOOLED OUTPUT FILES ' *BCAT + 'IN SAVED OUTPUT QUEUE ' *BCAT + 'FILE ' *BCAT + &FILE *BCAT + 'IN LIBRARY ' *BCAT + &FILELIB ) SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) + MSGDTA(&SH_MSG) + MSGTYPE(*ESCAPE) ENDDO CHGVAR VAR(&SH_OFFSETB) VALUE(%SST(&QRT_RCVDTA 1 4)) CHGVAR VAR(&SH_OFFSET ) VALUE(%BIN(&SH_OFFSETB)) CHGVAR VAR(&SH_LSTSIZB) VALUE(%SST(&QRT_RCVDTA 13 4)) CHGVAR VAR(&SH_LSTSIZ ) VALUE(%BIN(&SH_LSTSIZB)) CHGVAR VAR(&SH_STRPOS ) VALUE(&SH_OFFSET + 1) CHGVAR VAR(%BIN(&QRT_STRPOS)) VALUE(&SH_STRPOS) CHGVAR VAR(%BIN(&QRT_DTALEN)) VALUE(&SH_LSTSIZ) CHGVAR VAR(&SH_COUNT) VALUE(0) /*--+------------------------------------------------------------+--*/ /* + M A I N + */ /*--+------------------------------------------------------------+--*/ #_READ_: /*- RETRIEVE LIST DATA FROM USER SPACE -----------------------------*/ CHGVAR VAR(&SH_COUNT) VALUE(&SH_COUNT + 1) /* COUNT UP */ CALL PGM(QUSRTVUS) PARM(&SH_USRSPC + &QRT_STRPOS + &QRT_DTALEN + &QRT_RCVDTA ) /*- SET OF MAIN API PARAMETER --------------------------------------*/ CHGVAR VAR(&SH_MBR ) VALUE(%SST(&QRT_RCVDTA 1 10)) /*- EXECUTION OF MAIN API ------------------------------------------*/ CALL PGM(QSPPUTF) PARM(&FILEANDLIB + &OUTQANDLIB + &SH_MBR ) MONMSG MSGID(CPF4102) EXEC(DO) RCVMSG MSGQ(*PGMQ) RMV(*YES) MSGDTA(&SH_MSGDTA) /* MSG: FILE IN LIBRARY WITH MEMBER NOT FOUND */ SNDPGMMSG MSGID(CPF4102) MSGF(QCPFMSG) + MSGDTA(&SH_MSGDTA) + MSGTYPE(*DIAG) GOTO #_NEXT_ ENDDO MONMSG MSGID(CPF2105) EXEC(DO) RCVMSG MSGQ(*PGMQ) RMV(*YES) MSGDTA(&SH_MSGDTA) /* MSG: OBJECT IN TYPE * NOT FOUND */ SNDPGMMSG MSGID(CPF2105) MSGF(QCPFMSG) + MSGDTA(&SH_MSGDTA) + MSGTYPE(*DIAG) GOTO #_NEXT_ ENDDO RCVMSG MSGQ(*PGMQ) RMV(*NO) MSGDTA(&SH_MSGDTA) MSGID(&SH_MSGID) IF (&SH_MSGID *EQ 'CPC2957') DO CHGVAR VAR(&SH_MSG ) VALUE('FILE ' *BCAT + &FILE *BCAT + 'IN LIBRARY ' *BCAT + &FILELIB *BCAT + 'WAS INCORRECT' ) /* MSG: FILE IN LIBRARY WAS INCORRECT */ SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) + MSGDTA(&SH_MSG) + MSGTYPE(*ESCAPE) ENDDO /*RCVMSG MSGQ(*PGMQ) RMV(*YES) MSGDTA(&SH_MSGDTA) */ /* MSG: SPOOLED FILE RECEIVED AND PLACED ON OUTPUT QUEUE IN LIBRARY */ SNDPGMMSG MSGID(CPI8052) MSGF(QCPFMSG) + MSGDTA(&SH_MSGDTA) + MSGTYPE(*COMP ) #_NEXT_: /*- SET OF NEXT POSITION FOR USER SPACE ----------------------------*/ CHGVAR VAR(&SH_STRPOS) VALUE(&SH_STRPOS + &SH_LSTSIZ) CHGVAR VAR(%BIN(&QRT_STRPOS)) VALUE(&SH_STRPOS) IF (&SH_LSTCNT = &SH_COUNT) GOTO #_EXIT_ /* AT END */ GOTO #_READ_ /*--+------------------------------------------------------------+--*/ /* + END OF PROGRAM + */ /*--+------------------------------------------------------------+--*/ #_EXIT_: ENDPGM