Bonjour,
Comme dans la plupart des parcs informatiques, j'ai souvent des imprimantes en erreur (plus de papier, plus d'encre, câble déconnecté, éteinte...).
Lorsqu'on essaye d'imprimer depuis l'IBM i, et que l'imprimante ne répond pas correctement, le système passe l'imprimante en MSGW.
J'utilise donc la commande WRKWTRpour gérer tous les Writers et voir ceux qui sont en MSGW. Mais cela m'oblige à faire défiler la liste en vérifiant la colonne "Etat".
Il me semble qu'il n'existe pas de commande pour n'afficher que les Writers dans l'état MSGW et pas ceux en STR. On peut aussi passer par la commande WRKACTJOB SBS(QSPL) avec F16 sur la colonne "Etat" mais cela affiche un état TIMW tout en fin de liste (il faut donc tout faire défiler). Ce n’est donc pas l’idéal..
Est-ce que vous auriez un CL (ou une idée de CL) qui permettrait par une simple commande de n'afficher que les WTR dans l'état MSGW ?
[RESOLU] Afficher imprimante en erreur (Writer en MSGW)
[RESOLU] Afficher imprimante en erreur (Writer en MSGW)
Modifié en dernier par Diggi le mar. 10 mars 2015, 16:33:02, modifié 1 fois.
Diggi
Administrator Sistema e Ret
Occitania
Administrator Sistema e Ret
Occitania
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
API
Bonjour,
hélas pas d'idée géniale, même System i Navigator en permet pas de filtrer sur l'état de l'éditeur. Reste la programmation par API (QUSLJOB) qui permet de filtrer sur le type de job (W The job is a spooled writer job.).
http://www-01.ibm.com/support/knowledge ... usljob.htm
Mais c'est cher payé
hélas pas d'idée géniale, même System i Navigator en permet pas de filtrer sur l'état de l'éditeur. Reste la programmation par API (QUSLJOB) qui permet de filtrer sur le type de job (W The job is a spooled writer job.).
http://www-01.ibm.com/support/knowledge ... usljob.htm
Mais c'est cher payé
Christian Massé (Volubis.fr)
(sujet non précisé)
Bonjour,
J'ai finalement trouvé la solution en utilisant l'API QSPRWTRI dans un CL.
J'ai finalement trouvé la solution en utilisant l'API QSPRWTRI dans un CL.
Code : Tout sélectionner
PGM
/* ----------------------------------*/
/* */
/* AFFICHER LES WRITERS EN ERREUR */
/* (UTILISATION API QSPRWTRI) */
/* */
/* ----------------------------------*/
DCLF FILE(QADSPOBJ)
DCL VAR(&RCVR) TYPE(*CHAR) LEN(320)
DCL VAR(&RCVRLEN) TYPE(*CHAR) LEN(4)
DCL VAR(&ERRCDE) TYPE(*CHAR) LEN(8)
DCL VAR(&RCVRLENN) TYPE(*DEC) LEN(4 0)
DCL VAR(&RCVRLENC) TYPE(*CHAR) LEN(4)
DCL VAR(&STATUS) TYPE(*CHAR) LEN(1)
CHGVAR VAR(&RCVRLENN) VALUE(320)
CHGVAR VAR(&RCVRLENC) VALUE(&RCVRLENN)
CHGVAR VAR(&ERRCDE) VALUE(X'0000000000000000')
DSPOBJD OBJ(*ALL) OBJTYPE(*DEVD) OUTPUT(*OUTFILE) +
OUTFILE(QTEMP/QADSPOBJ)
OVRDBF FILE(QADSPOBJ) TOFILE(QTEMP/QADSPOBJ)
SNDUSRMSG MSG('**************** AFFICHAGE DES IMPRIMANTES EN +
*MSGW ***************************') MSGTYPE(*INFO)
LECTURE: RCVF
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(FIN)) /* EOF */
IF COND(&ODOBAT *EQ 'PRTLAN') THEN(DO)
CALL PGM(QSPRWTRI) PARM(&RCVR &RCVRLEN 'WTRI0100' +
&ODOBNM &ERRCDE)
MONMSG MSGID(CPF33C8 CPF9801) EXEC(GOTO +
CMDLBL(LECTURE)) /* NOT FOUND OR NOT STARTED*/
CHGVAR VAR(&STATUS) VALUE(%SST(&RCVR 20 1))
IF COND(&STATUS = 'Y') THEN(DO)
/* SNDPGMMSG MSG(&ODOBNM *BCAT 'EST EN *MSGW') */
SNDUSRMSG MSG(&ODOBNM *BCAT 'EST EN *MSGW') MSGTYPE(*INFO)
ENDDO
ENDDO
GOTO CMDLBL(LECTURE)
FIN:
DLTOVR FILE(QADSPOBJ)
SNDUSRMSG MSG('**************** FIN DE LA LISTE DES IMPRIMANTES +
***************************') MSGTYPE(*INFO)
WRKWTR
ENDPGM
Diggi
Administrator Sistema e Ret
Occitania
Administrator Sistema e Ret
Occitania