View Full Version : Drucker beenden und erneut starten.
Hallo,
durch Papierstau, Tonerwechsel…, steht der Drucker auf MSGW und die spools auf RDY.
nach der Behebung vom Fahleren (Papierstau, Toner,), muss man der Drucker beenden, erneut starten und nachschauen, ob durch den Stopp irgendein Spool auf Hld geblieben ist.
kann ich diese 3 Schritte in einem CL Programm packen?
1-Drucker beenden (ENDWTR WTR(writer-name) OPTION(*IMMED))
2-Drucker starten (STRPRTWTR DEV(printer-device-name))
3-falls ein Spool auf HLD geblieben ist, soll freigegeben werden.
danach in einem CL-Menü-Punkt integrieren, wo der User(nach Fehlerbehebung) den Menü-Punkt auswählt und Writer-name eingebt.
Danke im Voraus.
Kurze Frage, kurze Antwort: Ja
List spooled files:
https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/apis/QUSLSPL.htm
USRSPC-API's
https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/apis/obj5.htm
(https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/apis/obj5.htm)
Danke.
für die 1 und 2, habe ich das überlegt:
PGM
ENDWTR WTR(prtprod1) OPTION(*IMMED)
STRPRTWTR DEV(prtprod1)
ENDPGM
Spooldaten mit hld status zum auflisten :
WRKSPLF select (*all prtprod1 *all '*hld*').
bleibt die Frage, wie kann ich die 3 in einem CL Befehl packen:)?
Wenn du kein CLP-Programm schreiben kannst, hast du ein Problem.
Das Forum macht i.d.R. keine Programmierschulungen.
Auf welche Nachricht wartet der MSGW?
Könnte man da nicht die passende Antwort geben?
Warum gehen die Spools auf HLD und nicht auf RDY?
durch Papierstau, Tonerwechsel…, steht der Drucker auf MSGW und die spools auf RDY.
nach der Behebung vom Fahleren (Papierstau, Toner,), muss man der Drucker beenden, erneut starten und nachschauen, ob durch den Stopp irgendein Spool auf Hld geblieben ist.
Einen Befehl erstellt man ähnlich wie ein CL-Programm.
- Quellentyp CMD statt CLP
- Befehl CMD statt PGM/ENDPGM
- Befehl PARM (oder QUAL, ELEM, ...) bei Parametern
- Wandeln mit CRTCMD oder Auswahl 14 im PDM.
- Welches CL-Programm (o.ä.) aufgerufen wird, gibt man beim CRTCMD an.
Example: Creating abbreviated change job CL command (https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/rbam6/excrtabb.htm)
bleibt die Frage, wie kann ich die 3 in einem CL Befehl packen:)?
Danke für den Hinweis.
Status Hld, kommt nicht immer(nur beim Toner-Wechsel, Beleuchtungseinheit oder Fixiereinheit Wechsel, also länger Einsatz), sonst ist immer RDY.
nach Recherchen habe ich folgendes gefunden und kombiniert.
/* STRPRTWTR (Start a Printer Writer) CL Program */
STRSEU SRCFILE(QGPL/QCLSRC) SRCMBR(STRPRTWTR) TYPE(CLP)
OPTION(2) TEXT('Drucker starten')
/* kann ich diese CL source code in STRPRTWTR source member ?*/
/* Beispiel für Drucker starten */
BEGIN: PGM
DCL VAR(&MSGID) TYPE(*CHAR) LEN(7)
DCL VAR(&MSGF) TYPE(*CHAR) LEN(10)
DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10)
DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(2000)
/*??DEV(*N) Druckername wird abgefragt */
STRPRTWTR ??DEV(*N)
MONMSG MSGID(CPC0000 CPD0000 CPF0000) EXEC(DO)
RCVMSG RMV(*YES) MSGDTA(&MSGDTA) MSGID(&MSGID) +
MSGF(&MSGF) MSGFLIB(&MSGFLIB)
SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
MSGDTA(&MSGDTA)
ENDDO
END: ENDPGM
/*F3 um die Änderung zu speichern */
/* Create CL Program (CRTCLPGM) */
STRSEU SRCFILE(QGPL/QCLSRC) SRCMBR(ENDWTR) TYPE(CLP) OPTION(2)
TEXT('Drucker beenden')
/* kann ich diese CL source code in ENDWTR source member ?*/
/*das gleiche gilt für ENDWTR (mit Option *immed)*/
BEGIN: PGM
DCL VAR(&MSGID) TYPE(*CHAR) LEN(7)
DCL VAR(&MSGF) TYPE(*CHAR) LEN(10)
DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10)
DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(2000)
/* geht diese OPTION(*immed)*?/
ENDWTR ??WTR(*N) OPTION(*immed)
MONMSG MSGID(CPC0000 CPD0000 CPF0000) EXEC(DO)
RCVMSG RMV(*YES) MSGDTA(&MSGDTA) MSGID(&MSGID) +
MSGF(&MSGF) MSGFLIB(&MSGFLIB)
SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
MSGDTA(&MSGDTA)
ENDDO
END: ENDPGM
/* Create CL Program (CRTCLPGM) */
CRTCLPGM PGM(QGPL/ENDWTR) SRCFILE(QGPL/QCLSRC) TEXT(*SRCMBRTXT)
USRPRF(*OWNER) AUT(*USE)
kann ich die CL Codes direkt in STRPTRWTR bzw. ENDWTR Member einfügen oder soll ich jeweils code neue Member definieren?
ist die Option (*immed) bei ENDWTR richtig?