Bonjour,
Je souhaiterais dans une procédure, récupérer la liste de bibliothèque définie dans une jobd . Avez vous une idée de mise en œuvre ?
Exemple d'utilisation : je suis sur un menu en choisissant une option ,ce qui me fait passer sur un menu d'une application qui est utilisable qu'avec une certaine liste de bibliothèques . Cette liste de bibliothèques est connu dans la jobd associé à l'application.
Merci de vos réponses
Cordialement Mme Lohezic
Recuperer une liste de bibliothèque d'une Jobd dans un CL
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
Liste de bibliothèque de la JOBD
Il faut utiliser l'API QWDRJOBD.
J'ai écrit il y a qq temps une commande REINZJOB :
le programme de traitement
J'ai écrit il y a qq temps une commande REINZJOB :
Code : Tout sélectionner
CMD PROMPT('Réinitialise un job avec JOBD')
PARM KWD(JOBD) TYPE(Q1) MIN(1) PROMPT(JOBD)
Q1: QUAL TYPE(*NAME) MIN(1)
QUAL TYPE(*NAME) DFT(*LIBL) SPCVAL((*LIBL)) +
PROMPT('Bibliothèque')
Code : Tout sélectionner
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)
/* API QWDRJOBD */
/* VAR EN RETOUR */
/* x'000007D0' = 2000 */
/* FORMAT */
/* JOBD QUALIFiÉE */
/* CODE RETOUR */
CALL QWDRJOBD PARM(&APIRETOUR X'000007D0' 'JOBD0100' &JOBDQ +
X'00000000')
/* 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)
CHGVAR VAR(&USRLIBLS) VALUE(&USRLIBL2)
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
Christian Massé (Volubis.fr)