PDA

View Full Version : XML -> Spool -> Fremdsystem



Seiten : [1] 2 3 4 5

Toschie
26-06-13, 10:30
Hallo zusammen,

hoffe ihr seit besser in den Tag gestartet als meiner einer =)

Folgender Sachverhalt.
Wir müssen über Spool ein XML aufbereiten und dieses über LPR an ein Fremdsystem übergeben.
Das klappt soweit auch!
Nun gibt es das Problem, dass das XML über die maximale Anzahl an Zeilen pro Seite drüber kommt und damit einen Seitenumbruch auslöst und hierfür das Steuerzeichen im XML bzw. im Datenstream mit aufnimmt.
Was auf der Gegenseite dafür sorgt, dass es kein "richtiges" XML mehr ist.
Gibt es da was, das ich in der OUTQ/PRTF einstellen kann, damit dieser Seitenumbruch nicht mehr ausgelöst wird?

Der Druck erfolgt über RPG in einen PRTF in die OUTQ XYZ und in der OUTQ XYZ ist der Remoteprinter des Fremdsystems zugewiesen.

Ich hoffe das Problem kommt einigermaßen verständlich rüber.

Schon jetzt Danke für eure Zeit!:)

Fuerchau
26-06-13, 11:19
Mach ein WSCST (ähnich *cont132) und leere die Sequenzen für CR, LF usw.

Toschie
26-06-13, 12:00
Mach ein WSCST (ähnich *cont132) und leere die Sequenzen für CR, LF usw.

eeeeeeehm :D
ok?
könntest du mir das ggf. bisschen erläutern?
Verstehe zwar viel aber in der Druckgeschichte bzw Spool bin ich nicht so tief drin um das zu verstehen.
Sorry und Danke =)

Fuerchau
26-06-13, 12:39
Da ihr eine OUTQ XYZ für das Remotesystem eingerichtet habt, muss dort auch ein "WorkstationCustomizationObject" = WSCST angehängt sein, um die Daten native und nicht als Druckdaten zu übertragen.
In diesem WSCST stehen die ESC-Sequenzen für die Drucksteuerung, auch für LF und CR.
Dieses WSCST muss angepasst werden.
Frag mal am Besten den, der euch die OUTQ eingerichtet hat.

Toschie
26-06-13, 14:18
Und über RPG oder ähnlichem kann ich dem das nicht mitteilen, das der diese Zeichen unterdrücken soll?
Das muss quasi im Fremdsystem eingestellt werden.
Hab ich das richtig verstanden?

mk
26-06-13, 14:43
Hi,

druckt ihr im RPG Programm auf einen Printer , oder wird der Spool
als Liste gelesen und in Richtung XML aufbereitet ?

Wenn ihr im RPG die F-Bestimmung mit der Printeranweisung benutzt, dann kann man die Überlaufzeile definieren
und vorher einen Seitenvorschub per Programm erzeugen.

Gruß
Michael

Fuerchau
26-06-13, 14:51
Per RPG kann man das nicht unterdrücken sondern muss dieses (wie oben beschrieben) extern definiert werden.
Der Spooler fügt bei Seitenwechsel automatisch einen Formfeed ein.
Dieses Zeichen ist in XML nicht erlaubt.
CR/LF sind aber möglich.

Die OUTQ ist ja auf deiner AS/400 definiert. Dahinter liegt besagtes WSCST, dass die Druckersteuerzeichen enthält.
Der Code des Formfeed muss daraus entfernt werden.
Dies passiert nicht im Fremdsystem sondern bei dir lokal auf der AS/400.

Mittels WRKOUTQD schau dir die Definition an und ggf. poste diese mal hier.

Toschie
26-06-13, 15:10
Hier mal die Beschreibung:


Warteschlange: XYZQ Bibliothek: QGPL

Status:
Aktives Ausgabeprogramm . . . . . . : J
Name(n) des/der Ausgabeprogramme(s),
falls aktiv . . . . . . . . . . . : XYZQ
Ausgabewarteschlange angehalten . . : J
Maximale Größe der SPOOL-Datei:
Zahl der Seiten . . . . . . . . . . : *NONE
Startzeit . . . . . . . . . . . . . :
Endzeit . . . . . . . . . . . . . . :
Ausgabeprogramme automatisch starten . : 1
Jede Datei anzeigen . . . . . . . . . : *NO
Jobtrennungen . . . . . . . . . . . . : 0
Vom Bediener gesteuert . . . . . . . . : *YES
Reihenfolge der Dateien in der
Warteschlange . . . . . . . . . . . : *FIFO
Datenwarteschlange . . . . . . . . . . : *NONE
Bibliothek . . . . . . . . . . . . . :
Zu prüfende Berechtigung . . . . . . . : *OWNER
Fernes System . . . . . . . . . . . . : *INTNETADR



Ferne Druckwarteschlange . . . . . . . : PRODSYS



Warteschlange für Nachrichten des
Ausgabeprogramms . . . . . . . . . . : QSYSOPR
Bibliothek . . . . . . . . . . . . . : QSYS
Verbindungsart . . . . . . . . . . . . : *IP
Internet-Adresse . . . . . . . . . . . : 10.225.113.16
Zielart . . . . . . . . . . . . . . . : *OTHER
Druckerdatenstromumsetzung im Host . . : *YES
Hersteller, Typ und Modell . . . . . . : *WSCST
Datenstationsanpassungsobjekt . . . . : QWPDEFAULT
Bibliothek . . . . . . . . . . . . . : QSYS
Abbildkonfiguration . . . . . . . . . : *NONE
Zielangaben . . . . . . . . . . . . . : *NONE


Trennseite drucken . . . . . . . . . . : *NO
Benutzerdefinierte Auswahl . . . . . . : *NONE
Benutzerdefiniertes Objekt:
Objekt . . . . . . . . . . . . . . . : *NONE
Bibliothek . . . . . . . . . . . . :
Objektart . . . . . . . . . . . . . :
Benutzerdefiniertes Treiberprogramm . : *NONE
Bibliothek . . . . . . . . . . . . . :
ASP der SPOOL-Datei . . . . . . . . . : *SYSTEM
Textbeschreibung . . . . . . . . . . . : Test Warteschlange

Fuerchau
26-06-13, 15:24
OK, das WSCST heißt hier QWPDEFAULT
Dies ist ein ziehmlich einfaches WSCST und kann folgendermassen abgefragt werden:

RTVWSCST DEVTYPE(*TRANSFORM)
MFRTYPMDL(*WSCSTNONE)
SRCMBR(MYWSCST)
SRCFILE(QTXTSRC)

Eine QTXTSRC steht in der QGPL zur verfügung.
In der Quelle MYWSCST findest du die Steuerzeichen.
Die Zeilen
: INITPRT
DATA ='00'X.
: FORMFEED
DATA ='0C'X.
entfernst du einfach und erstellst per CRTWSCST dein eigenes, als Name z.B. MYXMLWSCST.

CRTWSCST WSCST(QGPL/MYXMLWSCST)
SRCMBR(MYWSCST)
TEXT('WSCST für XML')

Dieses neue MYXMLWSCST hängst du dann per
CHGOUTQ OUTQ(XYZ)
WSCST(MYXMLWSCST)
an die OUTQ dran.
Von nun an werden keine Formfeeds mehr erzeugt.

Anton Gombkötö
27-06-13, 11:46
Oder ist das dann nicht mehr Zweckentfremdung genug? ;-)