/*------------------------------------------------------------------*/ /* RTNJOBDILL: This program returns the initial library list from */ /* from a given job description... */ /*------------------------------------------------------------------*/ RTNJOBDILL: PGM PARM(&QJOBD &INLLIBL) /* Input parm... */ DCL VAR(&QJOBD) TYPE(*CHAR) LEN(20) /* Output parm... */ DCL VAR(&INLLIBL) TYPE(*CHAR) LEN(275) /********************************************************************/ /* Qualified jobd name breakout... */ DCL VAR(&JOBD) TYPE(*CHAR) LEN(10) DCL VAR(&JOBDLIB) TYPE(*CHAR) LEN(10) /********************************************************************/ /* RTVJOBD work buffer... */ DCL VAR(&JOBDDTA) TYPE(*CHAR) LEN(1000) DCL VAR(&ILLOFFSET) TYPE(*DEC) LEN(5) DCL VAR(&ILLCNT) TYPE(*DEC) LEN(5) DCL VAR(&ILLLEN) TYPE(*DEC) LEN(5) /********************************************************************/ MONMSG MSGID(CPF0000 MCH0000) EXEC(GOTO CMDLBL(STDERR)) /* Break down the qualified jobd name... */ CHGVAR VAR(&JOBD) VALUE(%SST(&QJOBD 1 10)) CHGVAR VAR(&JOBDLIB) VALUE(%SST(&QJOBD 11 10)) /* Check for existence... */ CHKOBJ OBJ(&JOBDLIB/&JOBD) OBJTYPE(*JOBD) MONMSG MSGID(CPF9800) EXEC(SNDPGMMSG MSGID(CPF9898) + MSGF(QCPFMSG) MSGDTA('Jobd(' *CAT + &JOBDLIB *TCAT '/' *CAT &JOBD *TCAT ') + not found') MSGTYPE(*ESCAPE)) /* Retrieve the *jobd data... */ RTVJOBD JOBD(&JOBDLIB/&JOBD) JOBDDTA(&JOBDDTA) CHGVAR VAR(&ILLOFFSET) VALUE(%BIN(&JOBDDTA 361 4) + 1) CHGVAR VAR(&ILLCNT) VALUE(%BIN(&JOBDDTA 365 4)) CHGVAR VAR(&ILLLEN) VALUE(&ILLCNT * 11) /* Extract JUST the initial library list and return it to caller...*/ CHGVAR VAR(&INLLIBL) VALUE(%SST(&JOBDDTA &ILLOFFSET + &ILLLEN)) RETURN STDERR: MOVDIAGMSG MONMSG MSGID(CPF0000 MCH0000) RSNESCMSG MONMSG MSGID(CPF0000 MCH0000) RETURN ENDPGM