BLDMBRLST: PGM PARM(&QFILE &QFILEATR &QLSTF &ELSTOPT) DCL VAR(&QFILE) TYPE(*CHAR) LEN(20) DCL VAR(&QFILEATR) TYPE(*CHAR) LEN(4) DCL VAR(&QLSTF) TYPE(*CHAR) LEN(20) DCL VAR(&ELSTOPT) TYPE(*CHAR) LEN(20) DCL VAR(&FILE) TYPE(*CHAR) LEN(10) DCL VAR(&FLIB) TYPE(*CHAR) LEN(10) DCL VAR(&LSTF) TYPE(*CHAR) LEN(10) DCL VAR(&LSTFLIB) TYPE(*CHAR) LEN(10) DCL VAR(&LSTNAM) TYPE(*CHAR) LEN(10) DCL VAR(&LSTOPT) TYPE(*CHAR) LEN(8) DCL VAR(&WRKLEN) TYPE(*DEC) LEN(5) MONMSG MSGID(CPF0000 CPF9999) EXEC(GOTO + CMDLBL(STDERR)) CHGVAR VAR(&FILE) VALUE(%SST(&QFILE 1 10)) CHGVAR VAR(&FLIB) VALUE(%SST(&QFILE 11 10)) CHGVAR VAR(&LSTF) VALUE(%SST(&QLSTF 1 10)) CHGVAR VAR(&LSTFLIB) VALUE(%SST(&QLSTF 11 10)) IF COND(&LSTF *EQ '*DFT') THEN(DO) RTVDTAARA DTAARA(SYLSTMBR) RTNVAR(&LSTF) ENDDO CHGVAR VAR(&LSTNAM) VALUE(%SST(&ELSTOPT 3 10)) CHGVAR VAR(&LSTOPT) VALUE(%SST(&ELSTOPT 13 8)) IF COND(&LSTNAM *EQ '*FILE') THEN(DO) IF COND(&FILE *EQ '*ALL') THEN(CHGVAR + VAR(&LSTNAM) VALUE(#ALL)) ELSE CMD(DO) RTNLEN VALUE(&FILE) LEN(&WRKLEN) IF COND(%SST(&FILE &WRKLEN 1) *EQ '*') THEN(DO) CHGVAR VAR(&WRKLEN) VALUE(&WRKLEN - 1) CHGVAR VAR(&LSTNAM) VALUE(%SST(&FILE 1 &WRKLEN)) ENDDO ELSE CMD(CHGVAR VAR(&LSTNAM) VALUE(&FILE)) ENDDO ENDDO DSPFD FILE(&FLIB/&FILE) TYPE(*MBR) + OUTPUT(*OUTFILE) FILEATR(&QFILEATR) + OUTFILE(&LSTFLIB/&LSTF) OUTMBR(&LSTNAM + &LSTOPT) RETURN STDERR: MOVDIAGMSG MONMSG MSGID(CPF0000 MCH0000) RSNESCMSG MONMSG MSGID(CPF0000 MCH0000) ENDPGM