PDA

View Full Version : XML -> Spool -> Fremdsystem



Seiten : 1 [2] 3 4 5

Fuerchau
27-06-13, 13:00
Das geht natürlich auch (in der PRTF), aber man muss dann selber tatsächlich ASCII-Daten schreiben.
Also korrekte Datenumsetzung per Programm mit iConv() oder ähnlichen API's.

Toschie
27-06-13, 14:33
@Fuerchau: Ich habe die erste Lösung soweit es geht vorbereitet und werden diese mit dem Kunden testen, da dieser die Einheit hinter der OUTQ aushängen muss, damit ich diese verändern kann.
Ich werde das Ergebniss dann berichten =)
Vielen Dank schonmal für die Unterstützung =)

Fuerchau
27-06-13, 15:50
Solange deine OUTQ leer ist, also nichts gesendet wird, kannst du den Remotewriter beenden, die OUTQ ändern und den Remotewriter wieder starten, das Zielsystem merkt davon nichts.

Toschie
28-06-13, 13:06
Hallo @all.

Also vielen Dank für die SUPER Unterstützung.
Der Kunde testet das XML aber es sieht schon sehr gut aus =)

Also vielen Dank und allen ein schönes Wochenende =)

Toschie
02-07-13, 12:11
Ich muss das Thema nochmal aufgreifen.
Gibt es die Möglichkeit, das ich auch Codes anfüge?
Es muss am Anfang der Datei noch Steuercodes für den Dokumententypen mitgegeben werden.
Wenn ich das richtig verstanden habe, muss (Hexadezimal) EF BB BF angefügt werden, damit das Fremdsystem weiß, das die Daten in UTF8 zu unterpretieren sind.
Ist sowas möglich?

Fuerchau
02-07-13, 12:50
Ich denke das müsste gehen.
In der PRTF definierst du einen Satz mit einem TRNSPY-Feld.
Dieses fülltst du dann mit den Hexwerten und gibst das Format aus.
Durch das TRNSPY unterbleibt die Umwandlung in ASCII.
Ohne TRNSPY müsstest du die EBCDIC-Codes ermitteln, damit sie korrekt übersetzt werden.

Bist du sicher, dass du UTF-8 ausgibst?
In diesem Fall müsstest du ja im RPG die Zeichen in UTF-8 in die PRTF schreiben und (wie oben schon mal hingewiesen) die PRTF auf *USRASCII erstellen.

Wenn du z.B. Umlaute nativ ausgibst, dann ist das kein UTF-8 was auf dem Zielsystem wieder zum Problem wird.

Anton Gombkötö
03-07-13, 07:57
und ist bei UTF-8 eigentlich überflüssig. (Da sich eben die Byte-Order nicht ändern kann.)
Aber manche Leute werden anscheinend nicht müde, es zu senden bzw. zu verlangen.
siehe UTF-8 (http://de.wikipedia.org/wiki/Utf-8#Byte_Order_Mark)
(Und ohne iconv wirst Du meiner Meinung nach kein korrektes UTF-8 ausgeben können.)

Fuerchau
03-07-13, 08:46
Wer es nicht so mit C-API's hat, hier gibts noch eine OPM-Version:
Convert a Graphic Character String (CDRCVRT, QTQCVRT) API (http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/apis/CDRCVRT.htm)

Toschie
05-07-13, 09:43
Also das mit der PRTF habe ich getestet.
Allerdings stehe ich da vor dem Problem, das in der PRTF jede Zeile deklariert sein muss die ich ausgeben will.
Da der Inhalt dynamisch ist und ich den vorher nicht kennen, bringt mir das glaube ich nichts.
Oder kann ich dabei irgendwie für einen Zeilenumbruch sorgen?
Dann würde ich zwei Zeilen deklarieren.
1. Zeile das Feld mit dem TRNSPY-Feld
2. Zeile mit meine XML-Strream den i immer wieder ausgebe (mit verschiedenen Inhalten).
Geht sowas?

Fuerchau
05-07-13, 10:56
Natürlich, nur ohne SPACEA/B.

In der XML dürfen ruhig außerhalb der Tags CRLF (SPACEA) vorkommen und dienen der Leserlichkeit.
Leerzeichen zwischen den Tags sind manchmal erlaubt, manchmal leider nicht.
Wenn du also ein Format ausgibst, sind am Ende eben noch Leerzeichen vorhanden.
Allerdings sind zwischen den Attributen, also Werte in Anführungszeichen, beliebig viele Leerzeichen erlaubt.
Ich weiß ja nicht, wie das Format deiner XML im Endeffekt aussieht und was dein Gegenüber erlaubt.