-
Klar wurde rumgeschraubt ;)
Hallo,
natürlich wurde "rumgeschraubt". Irgendwo muss dem System ja gesagt werden, wo User XY hindrucken soll. Das weiß das arme System ja nicht von alleine .
Und genau da liegt das Problem - da gibt es zig Möglichkeiten. Drucken die aus nur einer Anwendung, aus mehreren, auch Hardcopies und und und?
Wenn aus Anwendungen, dann werden irgendwo Überschreibungstabellen pro User oder evtl. Bildschirm hinterlegt sein, wo das ganze abgebildet ist. Kann aber auch sein, dass Usern oder Bildschirmen Drucker oder Printerfiles fest zugeordnet sind. Wenn Du nicht weißt wie die Drucksteuerung aufgebaut ist, hast Du für eine Automatik keine Chance.
Da bleibt nur die "Hand am Arm Methode" - d.h. die Spools von Hand in die andere OUTQ schieben, oder sporadisch den Drucker mal an die eine, mal an die andere OUTQ anzuhängen.
Gruß
A.R.
-
Oder so:
Erstellen einer DTAQ mit
CRTDTAQ DTAQ(QGPL/MYPRT) MAXLEN(128)
Ändern der OUTQ mit
CHGOUTQ OUTQ(MYLIB/MYOUTQ) DTAQ(QGPL/MYPRT)
Ab nun erscheint in der DTAQ immer ein Eintrag, wenn eine Spoolfile RDY wird (also gedruckt werden soll).
Nun noch ein kleines CLP fürs Batch (z.B. als Prestartjob oder Autostartjob):
PGM
/* FELDER FÜR DTAQ */
DCL VAR(&DNAME) TYPE(*CHAR) LEN(10) +
VALUE('MYPRT')
DCL VAR(&DLIB) TYPE(*CHAR) LEN(10) +
VALUE('QGPL')
DCL VAR(&DLEN) TYPE(*DEC) LEN(5)
DCL VAR(&DATA) TYPE(*CHAR) LEN(128)
DCL VAR(&WAIT) TYPE(*DEC) LEN(5) VALUE(-1)
LOOPDTAQ:
CHGVAR VAR(&DLEN) VALUE(128)
CHGVAR VAR(&DATA) VALUE(' ')
CALL PGM(QRCVDTAQ) PARM(&DNAME &DLIB &DLEN &DATA +
&WAIT)
MONMSG MSGID(CPF0000) EXEC(DO)
DLYJOB DLY(5)
GOTO CMDLBL(LOOPDTAQ)
/* DATEN VORHANDEN ? */
IF COND(&DLEN > 0) THEN(DO)
CHGSPLFA FILE(%SST(&DATA 39 10))
JOB(%SST(&DATA 33 6)/%SST(&DATA 23 10)/%SST(&DATA 13 0)) SPLNBR(%BIN(&DATA 49 4))
OUTQ(QGPL/MYNEWOUTQ)
ENDDO
GOTO CMDLBL(LOOPDTAQ)
ENDPGM
Zum Aufbau des DTAQ-Eintrages siehe:
http://www.rlpforen.de/showthread.ph...ight=dtaq+outq
-
dtaq outq
 Zitat von Fuerchau
Oder so:
Erstellen einer DTAQ mit
CRTDTAQ DTAQ(QGPL/MYPRT) MAXLEN(128)
Ändern der OUTQ mit
CHGOUTQ OUTQ(MYLIB/MYOUTQ) DTAQ(QGPL/MYPRT)
Ab nun erscheint in der DTAQ immer ein Eintrag, wenn eine Spoolfile RDY wird (also gedruckt werden soll).
Nun noch ein kleines CLP fürs Batch (z.B. als Prestartjob oder Autostartjob):
Zum Aufbau des DTAQ-Eintrages siehe:
http://www.rlpforen.de/showthread.ph...ight=dtaq+outq
ich stehe staunend davor und frage mich, warum ich das nicht wusste...
boh ej...
und das gibts schon seit jahren?
ich fass es nicht...
kuempi
der sich freiwillig in die ecke stellt...
-
 Zitat von kuempi von stein
kuempi
der sich freiwillig in die ecke stellt...
Hallo,
stelle mich mal dazu .
-
Naja, das gibts schon ca. seit V2. Ich habe sowas schon verwendet um Remote-OUTQ's in V2 zu realisieren, SNDNETSPLF über SNADS gabs schon damals und nix war billiger als auf diesem Weg Spools an andere User auch auf anderen Systemen zu versenden.
Viele Spool-Archiviertools arbeiten auch so (Archiv on demand).
-
Spool vor Druck kopieren
[QUOTE=Fuerchau]Oder so:
Erstellen einer DTAQ mit
CRTDTAQ DTAQ(QGPL/MYPRT) MAXLEN(128)
Ändern der OUTQ mit
CHGOUTQ OUTQ(MYLIB/MYOUTQ) DTAQ(QGPL/MYPRT)
Ab nun erscheint in der DTAQ immer ein Eintrag, wenn eine Spoolfile RDY wird (also gedruckt werden soll).
Nun noch ein kleines CLP fürs Batch (z.B. als Prestartjob oder Autostartjob):
Code:
PGM
/* FELDER FÜR DTAQ */
DCL VAR(&DNAME) TYPE(*CHAR) LEN(10) +
VALUE('MYPRT')
DCL VAR(&DLIB) TYPE(*CHAR) LEN(10) +
VALUE('QGPL')
DCL VAR(&DLEN) TYPE(*DEC) LEN(5)
DCL VAR(&DATA) TYPE(*CHAR) LEN(128)
DCL VAR(&WAIT) TYPE(*DEC) LEN(5) VALUE(-1)
LOOPDTAQ:
CHGVAR VAR(&DLEN) VALUE(128)
CHGVAR VAR(&DATA) VALUE(' ')
CALL PGM(QRCVDTAQ) PARM(&DNAME &DLIB &DLEN &DATA +
&WAIT)
MONMSG MSGID(CPF0000) EXEC(DO)
DLYJOB DLY(5)
GOTO CMDLBL(LOOPDTAQ)
/* DATEN VORHANDEN ? */
IF COND(&DLEN > 0) THEN(DO)
CHGSPLFA FILE(%SST(&DATA 39 10))
JOB(%SST(&DATA 33 6)/%SST(&DATA 23 10)/%SST(&DATA 13 0)) SPLNBR(%BIN(&DATA 49 4))
OUTQ(QGPL/MYNEWOUTQ)
ENDDO
GOTO CMDLBL(LOOPDTAQ)
ENDPGM
Zum Aufbau des DTAQ-Eintrages siehe:
http://www.rlpforen.de/showthread.php?t=833&highlight=dtaq+outq[/QUOTE]
Hallo,
der Beitrag ist schon etwas her, aber immer wieder aktuell...
Jetzt nehmen wir mal an, es geht um eine OUTQ, aus der ganz normal gedruckt wird, die Spools ohne SAVE(*YES) also nach dem Druck verschwinden.
Kann man irgendwie sicherstellen, dass ein Spool zwecks Archivierung noch kopiert werden kann, bevor er weg ist?
Mir schwirren verschiedene Ideen im Kopf rum: Dummy-Outq, Exit-Programme, vielleicht gehts ja aber auch viel einfacher.
Gruß,
Christian
-
Nein, da gibt es keine Sicherheit.
Der Spool sollte auf SAVE(*YES) stehen, damit er garantiert verarbeitet wird.
Wenn man Sicherheit haben möchte, geht das nur über ein eigenes Programm:
a) Spool 2x ausgeben
b) Spool auf HOLD(*YES) setzen, nach Druck z.B. SNDSPLF an den Archiv-User und per RLSSPLF zum Drucken freigeben. Dann kann SAVE(*YES) entfallen.
-
schade, habe ich schon befürchtet.
Spool mit HOLD in die OUTQ stellen, reicht das? Gibt es dann schon einen Eintrag in die DTAQ oder erst bei RDY-Status?
Aber sonst könnte ich den Spool
1. mit SAVE(*YES) in die OUTQ stellen,
2. archivieren,
3. SAVE(*NO) einstellen
4. Status prüfen: Wenn er im Status SAV ist, löschen (könnte ja noch ungedruckt sein)
Das müsste gehen - danke für die Idee!
Gruß,
Christian
-
Einen DTAQ-Eintrag gibt es nur bei RDY. Mit HOLD(*YES) gibt es erst mal keinen Eintrag. Status SAV kommt erst, wenn auch tatsächlich gedruckt ist.
Das Ändern auf SAVE(*NO) löscht den Spool erst, wenn er wieder auf RDY gesetzt wird (per RLSSPLF) und erneut gedruckt wurde.
Die DTAQ ist insoweit unsicher, da das Verarbeitungsprogramm ggf. nicht schnell genug die Spools vor ihrem Verschwinden abarbeitet.
Man kann das nur insofern verbessern, in dem man mehrere Empfängerprogramme gleichzeitig auf die DTAQ legt, aber wenn das Programm aus irgendwelchen Gründen nicht aktiv ist, gehen die Spools verloren auch wenn DTAQ-Einträge erzeugt wurden.
Zu beachten ist ggf., dass Spools mehrfach archiviert werden, da ein RDY-Status auch schon mal öfters auftaucht. Z.B. nach Druckerstörung wird der Spool in Hold gesetzt, nach erneuter Freigabe gibts einen neuen RDY-Eintrag in der DTAQ.
-
danke, vor allem für den Tip mit der Mehrfacharchivierung - an was man alles denken muss...
Gruß,
Christian
-
Hier noch 2 einfache Möglichkeiten für die Druckerumleitung von defekten Druckern:
Bespiel:
Drucker EDV096D defekt
umzleiten auf: Drucker EDV099D
1. wenn SNA konfiguriert ist
CHGOUTQ OUTQ(EDV096D)
RMTSYS('MEINEAS400')
RMTPRTQ('EDV099D')
AUTOSTRWTR (1)
DESTTYPE(*OS400)
CNNTYPE(*SNA)
Leitet alle Ausdrucke in die andere Outq um.
2. mittels TCP/IP und LPR
CHGOUTQ OUTQ(EDV096D) RMTSYS(*INTNETADR)
RMTPRTQ('EDV099D')
AUTOSTRWTR (1)
DESTTYPE(*OS400)
CNNTYPE(*IP)
INTNETADR('192.168.x.x')
Für 2. muss der LPR-Dienst laufen. Also entweder mit STRTCPSVR SERVER(*LPD) einmalig starten
oder mit CHGLPDA permanent starten lassen.
In beiden Fällen habe ich keine Probleme mit Kopien oder anderen Attributen.
Rücknahme:
Wenn es sich um einen Drucker mit DEVD handelt, reicht ein:
CHGOUTQ OUTQ(EDV096D) RMTSYS(*NONE)
Wenn es vorher eine RMTOUTQ war, müssen die ursprünglichen Werte wiedergestellt werden.
Robert P.
PS: Mit 2. lassen sich die AS/400-Drucker auch leicht von Linux und Windows (nicht ganz so leicht) ansprechen.
Similar Threads
-
By SL in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 07-12-06, 10:46
-
By TARASIK in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 22-08-06, 09:52
-
By cbe in forum NEWSboard Drucker
Antworten: 6
Letzter Beitrag: 29-06-06, 15:32
-
By phil.sebastian in forum NEWSboard Drucker
Antworten: 1
Letzter Beitrag: 23-05-06, 12:08
-
By linguin in forum IBM i Hauptforum
Antworten: 13
Letzter Beitrag: 17-05-06, 13:42
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks