
|
PGM PARM(&JOBDQ) DCL VAR(&JOBDQ) TYPE(*CHAR) LEN(20) DCL VAR(&APIRETOUR) TYPE(*CHAR) LEN(5000) DCL VAR(&DEB) TYPE(*DEC) LEN(4 0) DCL VAR(&JDLG) TYPE(*DEC) LEN(5 0)   DCL VAR(&USRLIBLS) TYPE(*CHAR) LEN(2750) DCL VAR(&USRLIBL2) TYPE(*CHAR) LEN(250) DCL VAR(&CMD) TYPE(*CHAR) LEN(300) DCL VAR(&LG) TYPE(*DEC) LEN(15 5) VALUE(300)   DCL &OUTPTY *CHAR 1 DCL &OUTQ *CHAR 10 DCL &OUTQL *CHAR 10 DCL &DEV *CHAR 10 DCL &LOG *CHAR 1 DCL &SEV *DEC (2 0) DCL &LOGTXT *CHAR 10 DCL &INQMSG *CHAR 10 /* VARIABLES UTILISEES PAR LA GESTION DE MESSAGES */ DCL &ERRORSW *LGL /* SWITCH */ DCL &MSGID *CHAR LEN(7) /* ID MSG */ DCL &MSGDTA *CHAR LEN(100) /* DATA */ DCL &MSGF *CHAR LEN(10) /* FICHIER */ DCL &MSGFLIB *CHAR LEN(10) /* BIBLI */ /* GESTION DES ERREURS */ MONMSG MSGID(CPF0000) EXEC(GOTO ERREUR)   CALL QWDRJOBD PARM(&APIRETOUR X'000007D0' 'JOBD0100' &JOBDQ + X'00000000') /* VAR EN RETOUR 2000 FORMAT JOBD QUALIF */ /* CODE RETOUR */ /* DÉBUT DE LA LISTE */ CHGVAR &DEB %BIN(&APIRETOUR 361 4) /* = DÉPLACEMENT */ CHGVAR &DEB (&DEB + 1) /* POS DE DÉBUT */ /* NBR DE POSTES */ CHGVAR &JDLG %BIN(&APIRETOUR 365 4) /* CALCUL DE LA LONGEUR */ CHGVAR &JDLG (&JDLG * 11)   CHGVAR &USRLIBLS %SST(&APIRETOUR &DEB &JDLG)   IF (&USRLIBLS *EQ '*SYSVAL') THEN(DO) RTVSYSVAL SYSVAL(QUSRLIBL) RTNVAR(&USRLIBL2) |
/* AU CAS OU UN NOM DE BIBLIOTHÈQUE FAIT 10C. */
CHGVAR VAR(&USRLIBLS) VALUE( +
%sst(&usrlibl2 1 10) *CAT ' ' *CAT +
%sst(&usrlibl2 11 10) *CAT ' ' *CAT +
%sst(&usrlibl2 21 10) *CAT ' ' *CAT +
%sst(&usrlibl2 31 10) *CAT ' ' *CAT +
%sst(&usrlibl2 41 10) *CAT ' ' *CAT +
%sst(&usrlibl2 51 10) *CAT ' ' *CAT +
%sst(&usrlibl2 61 10) *CAT ' ' *CAT +
%sst(&usrlibl2 71 10) *CAT ' ' *CAT +
%sst(&usrlibl2 81 10) *CAT ' ' *CAT +
%sst(&usrlibl2 91 10) *CAT ' ' *CAT +
%sst(&usrlibl2 101 10) *CAT ' ' *CAT +
%sst(&usrlibl2 111 10) *CAT ' ' *CAT +
%sst(&usrlibl2 121 10) *CAT ' ' *CAT +
%sst(&usrlibl2 131 10) *CAT ' ' *CAT +
%sst(&usrlibl2 141 10) *CAT ' ' *CAT +
%sst(&usrlibl2 151 10) *CAT ' ' *CAT +
%sst(&usrlibl2 161 10) *CAT ' ' *CAT +
%sst(&usrlibl2 171 10) *CAT ' ' *CAT +
%sst(&usrlibl2 181 10) *CAT ' ' *CAT +
%sst(&usrlibl2 191 10) *CAT ' ' *CAT +
%sst(&usrlibl2 201 10) *CAT ' ' *CAT +
%sst(&usrlibl2 211 10) *CAT ' ' *CAT +
%sst(&usrlibl2 221 10) *CAT ' ' *CAT +
%sst(&usrlibl2 231 10) *CAT ' ' *CAT +
%sst(&usrlibl2 241 10) )
ENDDO
 
CHGVAR &CMD ('CHGLIBL LIBL(' *TCAT &USRLIBLS *TCAT ')')
CALL QCMDEXC PARM(&CMD &LG)
 
CHGVAR &OUTQ %SST(&APIRETOUR 87 10)
IF (&OUTQ *EQ '*USRPRF') +
RTVUSRPRF OUTQ(&OUTQ) OUTQLIB(&OUTQL)
ELSE +
CHGVAR &OUTQL %SST(&APIRETOUR 97 10)
 
IF COND(&OUTQ *NE '*DEV') THEN(DO)
IF COND(&OUTQ *EQ '*WRKSTN') THEN(CHGJOB +
OUTQ(*WRKSTN))
ELSE CHGJOB OUTQ(&OUTQL/&OUTQ)
ENDDO
 
|
CHGVAR &OUTPTY %SST(&APIRETOUR 108 1) CHGVAR &DEV %SST(&APIRETOUR 109 10) IF (&DEV *EQ '*USRPRF') + RTVUSRPRF PRTDEV(&DEV) CHGVAR &SEV %BIN(&APIRETOUR 157 4) CHGVAR &LOG %SST(&APIRETOUR 161 1) CHGVAR &LOGTXT %SST(&APIRETOUR 162 10) CHGVAR &INQMSG %SST(&APIRETOUR 182 10)   CHGJOB OUTPTY(&OUTPTY) PRTDEV(&DEV) LOG(&LOG &SEV + &LOGTXT) INQMSGRPY(&INQMSG) RETURN   /*----------------------------------------*/ ERREUR: /* GESTION DES ERREURS */ /*----------------------------------------*/ IF &ERRORSW SNDPGMMSG MSGID(CPF9999) + MSGF(QCPFMSG) MSGTYPE(*ESCAPE) /* 2EME FOIS*/ /* ARRET PGM*/ CHGVAR &ERRORSW '1' /* MISE EN PLACE DU SWTICH */   /* RENVOI DES MESSAGES DE TYPE *DIAG SI FIN ANORMALE */ DIAGMSG: RCVMSG MSGTYPE(*DIAG) MSGDTA(&MSGDTA) MSGID(&MSGID) + MSGF(&MSGF) MSGFLIB(&MSGFLIB) IF (&MSGID *EQ ' ') GOTO EXCPMSG SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) + MSGDTA(&MSGDTA) MSGTYPE(*DIAG) GOTO DIAGMSG /* BOUCLE SUR MESSAGES *DIAG */   /* RENVOI DU MESSAGE D'ERREUR */ EXCPMSG: RCVMSG MSGTYPE(*EXCP) MSGDTA(&MSGDTA) MSGID(&MSGID) + MSGF(&MSGF) MSGFLIB(&MSGFLIB) SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) + MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE) ENDPGM |