Sign in

docs Examples

dspzipclp

dspzipclp

             PGM        PARM(&ZIPFILE)
             DCL        VAR(&ZIPFILE) TYPE(*CHAR) LEN(128)
 
             DCL        VAR(&CMDSTR) TYPE(*CHAR) LEN(3000) +
                          VALUE('CALL PGM(MINIUNZ400) PARM(''-v''')
             DCL        VAR(&Q) TYPE(*CHAR) LEN(1) VALUE('''')
             DCL        VAR(&ERR) TYPE(*CHAR) LEN(7)
             DCL        VAR(&ERR_DEC) TYPE(*DEC) LEN(10)
 
             /* QtmhGetEnv parameters */
             DCL        VAR(&RCVVAR) TYPE(*CHAR) LEN(100)   /* output */
             DCL        VAR(&RCVLEN_B) TYPE(*CHAR) LEN(4) +
                          VALUE(X'00000064') /* input  */
             DCL        VAR(&RSPLEN_B) TYPE(*CHAR) LEN(4)   /* output */
             DCL        VAR(&RSPLEN) TYPE(*DEC) LEN(3)
             DCL        VAR(&REQVAR) TYPE(*CHAR) LEN(20) +
                          VALUE(MINIUNZ_RTNCDE) /* input  */
             DCL        VAR(&REQLEN_B) TYPE(*CHAR) LEN(4) +
                          VALUE(X'0000000E') /* input  */
             DCL        VAR(&QUSEC) TYPE(*CHAR) LEN(16) +
                          VALUE(X'00100000000000000000000000000000') +
                          /* input/output  */
             /* QUSEC structure */
             DCL        VAR(&QUSBAVL_B) TYPE(*CHAR) LEN(4)  /* output */
             DCL        VAR(&QUSBAVL) TYPE(*DEC) LEN(3)
 
             CHGVAR     VAR(&CMDSTR) VALUE(&CMDSTR |> &Q |< &ZIPFILE +
                          |< &Q || ')')
 
             /* Call miniunz via QCMDEXC */
/*           SNDPGMMSG  MSG(&CMDSTR)            */
             CALL       PGM(QCMDEXC) PARM(&CMDSTR 300)
             MONMSG     MSGID(CPF0000) EXEC(DO)
             SNDPGMMSG  MSGID(CPF9897) MSGF(QCPFMSG) MSGDTA('Command +
                          failed. QCMDEXC returned unexpected +
                          error.') MSGTYPE(*ESCAPE)
             GOTO       CMDLBL(EXIT)
             ENDDO
 
             /* Get environment variable */
             CALLPRC    PRC('QtmhGetEnv') PARM(&RCVVAR &RCVLEN_B +
                          &RSPLEN_B &REQVAR &REQLEN_B &QUSEC)
 
             CHGVAR     VAR(&QUSBAVL_B) VALUE(%SST(&QUSEC 5 4))
             CHGVAR     VAR(&QUSBAVL) VALUE(%BIN(&QUSBAVL_B))
             IF         COND(&QUSBAVL > 0) THEN(DO)
             SNDPGMMSG  MSGID(CPF9897) MSGF(QCPFMSG) +
                          MSGDTA('QtmhGetEnv returned ' || +
                          %SST(&QUSEC 9 7) |< '.') MSGTYPE(*ESCAPE)
             GOTO       CMDLBL(EXIT)
             ENDDO
 
             CHGVAR     VAR(&RSPLEN) VALUE(%BIN(&RSPLEN_B))
             IF         COND(&RSPLEN < 1) THEN(DO)
             SNDPGMMSG  MSGID(CPF9897) MSGF(QCPFMSG) +
                          MSGDTA('QtmhGetEnv returned invalid +
                          length (smaller than 1).') MSGTYPE(*ESCAPE)
             GOTO       CMDLBL(EXIT)
             ENDDO
 
             /* Examine environment variable (exit status of mnizip) */
             CHGVAR     VAR(&ERR) VALUE(%SST(&RCVVAR 1 &RSPLEN))
             CHGVAR     VAR(&ERR_DEC) VALUE(&ERR)
             IF         COND(&ERR_DEC = 0) THEN(SNDPGMMSG +
                          MSGID(CPF9898) MSGF(QCPFMSG) +
                          MSGDTA('Command completed'))
             ELSE       CMD(SNDPGMMSG MSGID(CPF9897) MSGF(QCPFMSG) +
                          MSGDTA('Command failed. See low-level +
                          message for detail.') MSGTYPE(*ESCAPE))
 
 EXIT:       ENDPGM