Anmelden

View Full Version : Werte aus XML-Dateien mit RPG rauslesen (Verständnisfrage)



Seiten : 1 [2]

alex61
02-10-18, 15:11
So, jetzt kann ich mich wieder um das Drama hier kümmern.
Tägliche Arbeit erledigt.
Erstmal wieder Danke für die Antwort. Warum der Zugriff nicht
klappt, keine Ahung. Ja, XML steht im Root.
Joblog brint einen auch nicht weiter. Irgendwie werde ich das
ja wohl noch schaffen, daß der Zugriff klappt. Aber nochmal zu der einen Frage von gestern:
??
Was ich auch noch nicht verstanden habe, muss dann am Ende des Programms noch was wegen der Tabelle (Orderline) codiert werden, oder macht das auch der XML-INTO
gleich mit.
 
Gruss A.

Fuerchau
02-10-18, 17:45
Der XML-INTO liest die gesamte XML-Datei entsprechend der DS-Struktur passend zur XML-Struktur ein.
Wichtig zu wissen ist einfach folgendes:
XML-Tages (Knoten und Attribute) sind case sensitive!
Die RPG-Variablen werden vom Compiler grundsätzlich in Großbuchstaben erstellt und deshalb ist es egal, welche Schreibweise du wählst, zusätzlich sind Zeichen wie "-", ":" usw. erlaubt, was bei RPG-Namen nicht erlaubt ist, also "case=convert"!
Bei Arrays macht es schon Sinn, die Anzahl der gelesenen Zeilen zu haben, deshalb die "cnt"-Variablen.

Welche CCSID hat dein Job zur Laufzeit?
Ggf. kommt dein Job mit dem Umlaut im Dateinamen nicht zurecht.
Denn dein konstantes "Ä" könnte falsch übersetzt werden.
Ändere den Namen erst mal auf einfache Zeichen.

alex61
05-10-18, 09:13
vielen Dank für Deine Hilfe. Bin leider bei uns in der Firma Einzelkämpfer und muss mich in Zukunft mit XML rumschlagen. Da ich bei uns keinen fragen kann, frage ich halt hier bei den Profis nach :-)
Deshalb habe ich im Vorfeld schon mal recherchiert. Wie sieht das eigentlich mit dem Schreiben in XML Dateien aus ? Könnte auch noch ein Thema werden. Aber da mache ich ein extra Thema auf. Also vielen Dank nochmal. Gruß A. und schönes WE.

Fuerchau
05-10-18, 11:55
Das Schreiben ist eher unkomfortabel, da es nicht native unterstützt wird.
Man kann das mühsam in SQL oder in RPGLE-Funktionen stricken.
Besser ist es allerdings dann direkt in Java bzw. Sprachen, die XML native unterstützen, zu machen.

Aber dein letzter Post besagt nun nicht, ob es denn nun klappt.

alex61
05-10-18, 12:10
Nee, klappt leider immer noch nicht. Meldung siehe unten:
Am SCHÄFER liegt's nicht.
Und im Netz findet man zum Ursachencode folgendes:


5
The start and end tag names of an element did not match.



Nachrichten-ID . . . . : RNX0351 Bewertung . . . . . . : 50
Nachrichtenart . . . . : Diagnose
Sendedatum . . . . . . : 05.10.18 Sendezeit . . . . . . : 13:05:54

Nachricht . . . : Der XML-Parser hat den Fehlercode 5 festgestellt.
Ursache . . . . : Beim Parsing eines XML-Dokuments für eine RPG-Prozedur hat
der Parser einen Fehler bei der relativen Position 252 mit Ursachencode 5
festgestellt. Das verwendete Dokument ist /SCHÄFER.xml; *N gibt an, dass das
XML-Dokument keine externe Datei war.
Fehlerbeseitigung: Mit Hilfe des Benutzers, der für die Programmpflege
verantwortlich ist, die Fehlerursache bestimmen.

Fuerchau
05-10-18, 12:46
Wo er recht hat, hat er recht!
Versuchs mal damit:

<?xml version="1.0" encoding="UTF-8"?>
<SHARK-ERP>
<Order>
<OrderNumber>12345678</OrderNumber>
<OrderTypeID>KA</OrderTypeID>
<OrderLine>
<LineNumber>1</LineNumber>
<ArticleNumber>4712</ArticleNumber>
<Qty>12</Qty>
</OrderLine>
<OrderLine>
<LineNumber>2</LineNumber>
<ArticleNumber>4713</ArticleNumber>
<Qty>5</Qty>
</OrderLine>
</Order>
</SHARK-ERP>

Bei deiner 2. Order-Line sind Start- und Ende-Tag vertauscht, also ein Fehler der XML-Erstellung!
Da frage ich mich, wo das denn herkommt....

Übrigens ist da das Notepad++ ganz hilfreich, da es matching tags markiert.

alex61
05-10-18, 13:00
YYEEESSSS !! Jetzt geht's !!!
Keine Ahnung wie der Schrott ins XML kam. War wahrscheinlich ich. ;-)
Vielen, vielen Dank für Deine Hilfe und schönes WE !
Bis zum nächsten Einsatz.
Gruß A.