View Full Version : XML aktueller Stand
Hallo Zusammen,
in meinem letzten Projekt (SEPA) mit XML und AS/400 bin ich den Weg gegangen die XML Datei über ein PC Programm zu erzeugen. Datei auf der AS/400 erzeugt und per C# Programm das XML erzeugt.
Nun möchte aber ein Kunde, dass wir das komplett auf der AS/400 lösen sollen. Der Kunde hat V7R1. Ich weiß noch von damals, dass dies ziemlich eine Katastrophe war auf der AS/400.
Wie ist jetzt der aktuelle Stand?
Es gibt die Toolbox und ein bisschen was von Scott.
Zu was würdet Ihr tendieren?
Danke.
... das geht schon lange - ohne jede masochistische Ader - auf AS/400: Java! Auch wenn die workarounds besser geworden sind, würde ich immer noch die Finger von RPG und cruden SQL Functions lassen.
D*B
Dachte ich mir schon.
Der Kunde hat schon ein bisschen was mit DB2Extender gemacht. Ws haltet Ihr davon?
Danke.
Ist diesbezüglich nicht mehr nötig.
Wenn der Kunde unbedingt auf die komfortable Lösung mit Java auf AS/400 verzichten will, gibt es bereits einige Hinweise auch hier im Forum, wie man dieses unkomfortabel mit SQL und ILERPG löst.
Zuerst einmal:
Mit ILERPG gibt es nur die Möglichkeit, XML's per XMLINTO zu lesen. Dabei werden auch hierarchische XML's bis max. 16 MB (Speichergrenze bei *snglvl-Storage) bzw. 2TB (bei *teraspace) unterstützt.
SQL kann ebenso XML's lesen, man muss aber daran denken, dass SQL ein Resultset gleichartiger Daten zurückgibt. Eine hierarchische Verarbeitung von XML-Daten gibt es nicht.
Um XML auszugeben kann man ebenso SQL bemühen.
Allerdings kann man hier auch nur simple, nicht hierarchische XML's erstellen, was bei komplexeren Anforderungen kaum ausreicht.
Möchte man sich nicht die Finger brechen, sollte mal sicherlich auf Java ausweichen.
Du könntest natürlich Service-Routinen entwickeln, die analog zu .NET's XML-Writer entsprechende Funktionen bereitstellt um sequentiell hierarchische XML's direkt ins IFS zu schreiben:
StartNode('XXX');
StartAttribute('AAA');
WriteContent('Inhalt 1');
EndAttribute('AAA');
StartAttribute('BBB');
WriteContent('Inhalt 2');
EndAttribute('BBB');
EndNode('XXX');
DB2Extender ist abgekündigt und sollte durch den XML Support in der DB2 bzw. SQL ersetzt werden.
Im Gegensatz zu anderen Postern habe ich mit dem XML Support in der DB2 bislang keine Probleme gehabt!
Der (vollständige) XML-Support in SQL ist seit Release 7.1 vorhanden.
Birgitta
andigoering
23-05-17, 08:26
Hallo!
Wenn professionelle und supportete Lösungen in Frage kommen...
Wir haben ein Produkt "i4XML", welches komplett native läuft.
Mehr unter http://www.goering.de/de/xml.html
Viele Grüße
Andi Göring
Das mit dem Tool von Herrn Göring muss ich klären.
Für JAVA auf der AS/400 benötige ich Websphere, oder?
Gibt es ein gutes Tutorial für den XML Support für DB2?
Aktuell geht es darum Bankdaten über XML und Daten für KBA zu verifizieren. Wir müssen sowohl XML erzeugen und versenden als auch XML empfangen und auf der AS/400 weiterverarbeiten.
Danke.
Klaus
Nun, da wende dich einfach am besten an Birgitta.
Denn ich habe da noch keine hierarchischen XML's erstellen können sondern nur flache.
Für Java ist kein Websphere erforderlich.
Ich entwickle Java ganz normal mit Eclipse, binde die AS/400-Java-Toolbox für JDBC u.a. ein.
Wenn ich fertig bin und auch getestet habe, schiebe ich die .jar ins IFS und starte das per JAVA-Kommando.
Dschainers
23-05-17, 12:21
Also auch auf die Gefahr hin, dass über mich gelacht wird:
Ich erzeuge unsere XML Dateien alle über RPGLE.
- SRC-PF erzeugen
- Mit RPGle das ganze XML Zeugs reinschreiben
- hinterher aus der SRC-PF eine xxx.xml erzeugen
Das mache ich bei SEPA Überweisungen, SEPA Lastschriften, E-Bilanzen, Offenlegung beim Bundesanzeiger etc.
funktioniert auch ohne das Ganze XML Support etc. oder Java.
Viele Grüße
Nun, das ist ja von meinem Vorschlag oben mit den ServiceRoutinen nicht so weit entfernt.
Klar kann ich das mit Stringfunktionen auch direkt im ILERPG zusammenschustern.
Ich hatte so was (für eine flache Ausgabe) auch schon mal mit SQL und Concats zusammengebaut und das dann mit Union-Selects auch schon aufgeteilt.
Die Ausgabe war eigentlich nie ein Problem. Wie gesagt, die Eingabe ist mit XML-INTO und geschachtelten qualified DS nebst Arrays schon sehr komfortabel und auch schnell geworden.