-
XML Beschreibung
Hallo
wir sollen demnächst CAMT-Kontoauszüge einlesen. (bisher MT940)
Unsere Entwickler haben noch nie mit XML-Into gearbeitet.
Gibt es irgendwo ein kleines HOW-To zu dem Thema.
- Was muß (wie) definiert werden
- Wie werden 'Pflicht'-Elemente gekennzeichnet bzw.
- wie werden die Elemente gekennzeichnet die ggf nicht kommen.
- Wie werden 'sich möglicherweise wiederholende' Elemente gekennzeichnet
- Was geschied, wenn Elemente kommen die im PGM nicht definiert sind (Das ist da der
wesentliche Vorteil von XML, das ich nur definieren brauch, was ich brauche-oder?)
- Meldet XML-INTO Fehler oder müssen Elemente separat geprüft werden,
...
Danke
DiBe
-
Versuch's mal hiermit:
w3Schools - XML Tutorial
Birgitta
-
Danke, aber nein, das meine ich nicht.
XML ist, in groben Zügen bekannt.
Meine Fragen bezogen sich auf die Definitionen / Kennzeichungen, ...im RPGLE
Woran erkennt der xml-lese Befehl, wie weit er einlesen muß, wie oft sich eine definition wiederholt, ...
-
Hallo,
im ILE RPG Rref. Handbuch findest du eigentlich sehr viele Beispiele von der IBM dazu.
Ihr solltet euch auch XML-SAX anschauen.
Damit kannst du eine Handler-Prozedur definieren. Beim durchlesen des XMLs wird für jedes Element/Attribut/Wert/... dieser Handler aufgerufen und du kannst sehr dynamisch auf die Daten eines XML Files zugreifen ohne die Struktur vorher genau kennen zu müssen.
Auch dafür gibt es einige Beispiele im Handbuch.
lg Andreas
-
Zitat von dibe
Hallo
wir sollen demnächst CAMT-Kontoauszüge einlesen. (bisher MT940)
Unsere Entwickler haben noch nie mit XML-Into gearbeitet.
Gibt es irgendwo ein kleines HOW-To zu dem Thema.
- Was muß (wie) definiert werden
- Wie werden 'Pflicht'-Elemente gekennzeichnet bzw.
- wie werden die Elemente gekennzeichnet die ggf nicht kommen.
- Wie werden 'sich möglicherweise wiederholende' Elemente gekennzeichnet
- Was geschied, wenn Elemente kommen die im PGM nicht definiert sind (Das ist da der
wesentliche Vorteil von XML, das ich nur definieren brauch, was ich brauche-oder?)
- Meldet XML-INTO Fehler oder müssen Elemente separat geprüft werden,
...
Danke
DiBe
... normalerweise gibt es da eine formale Beschreibung des XML als DTD oder als Schema, die ein richtiger Parser (nicht dieser crippled RPG XML-INTO) dann auch prüfen könnte.
D*B.
der sowas mit einer ordentlichen Programmiersprache machen würde...
-
Das ist kein Wunder-Ding, ganz im Gegenteil.
Es ist simpler, als Du denkst. Und scheitert öfter, als Du denkst.
Wenn nicht alles 100%ig passt, bist Du, schon allein aus Fehler-Such-Gründen, möglicherweise mit XML-SAX besser bedient.
Auf alle Fälle ist "XML-Wissen in groben Zügen" zu wenig.
Wenn Du ins Krankenhaus gehst und Dir den Blinddarm rausnehmen lassen möchtest, wirst auch froh sein, wenn Du einen Chirurgen bekommst, dem Anatomie mehr als in groben Zügen bekannt ist.
-
Hallo DiBe,
Hier gibt's auch noch Info's über XML parsing von Scott Klement. Vielleicht hilft's. Auf jeden Fall findest Du am Ende noch einige weiterführende Links.
Siehe hier:
http://www.scottklement.com/presenta...ee%20Tools.pdf
kf
-
Danke für die Infos, ich werde mit unseren Entwicklern sprechen.
@BenderD
der sowas mit einer ordentlichen Programmiersprache machen würde...
Das find ich nett von Ihnen. Unsere Entwicklungsabteilung würde das auch gerne. Aber es kann niemand was anderes als RPG. Und das soll ja auch gehen.
Dietlinde Beck
-
Zitat von dibe
Danke für die Infos, ich werde mit unseren Entwicklern sprechen.
Das find ich nett von Ihnen. Unsere Entwicklungsabteilung würde das auch gerne. Aber es kann niemand was anderes als RPG. Und das soll ja auch gehen.
Dietlinde Beck
... da kann ich doch nix dafür! Wer halt kein vernünftiges Werkzeug hat, der hat halt mehr Arbeit und das Resultat könnte auch schlechter sein, aber wenn man halt nicht lernen darf, will oder kann, aber auch dazu kann ich nix...
D*B
-
Zitat von BenderD
D*B.
der sowas mit einer ordentlichen Programmiersprache machen würde...
CL? ;-)
Ich würde ja Pascal bevorzugen, da war sowas vor 30 Jahren schon ein Spass...
-
Zitat von holgerscherer
CL? ;-)
... bei REXX hätte ich ja noch "eher als mit RPG" geantwortet. Mal ohne Fez: von den CAMT Formaten gibt es wohl eine XSD, da würde ich mal über Java und XOM aufsetzen und das dann halt in meine RPG Anwendung integrieren, falls ich es da brauche...
D*B
-
Zuerst mal: Lassen Sie sich nicht von diesen "ordentliche Programmiersprache" und dämlichen Vergleichen verwirren. Die Umstellung von den DTAUS/MTxxx-Dateien auf SEPA-,CAMT-XML-Dateien machen derzeit alle, und wer weder zu viel Zeit noch Spieltrieb hat, macht es in seiner Programmierwelt. Es mag Gründe geben, diese irgendwann zu wechseln / zu erweitern, aber diese Kleinigkeit ist keiner. Sie programmieren mit RPG wie ein sehr großer Teil IBMi-Anwender, damit kann man das problemlos machen, und es werden keine Ihrer komplexen Programme werden, sondern einfache.
Unser Zeitaufwand war 1 Woche für alles: Überweisungsdateien, Abbuchungsdateien erstellen, Kontoauszüge importieren.
Wie importiert man Kontoauszüge?
XML ist nichts weiter als eine Datei mit 1 Zeile, die riesig breit ist. Damit ist klar: die Datei kommt ins IFS und wird zeichenweise gelesen. Bordmittel, isi RPG-Programming.
Drin ist, was immer drin war (evtl. sind mehrere dieser Kapitel erlaubt):
- Kopfsatz
- 1...x Transaktionen
- Endesatz
Weil wir auf der IBMi so eine nützliche Datenbank haben, machen wir uns eine Datei mit einer String-Spalte in Breite eines XML-Transaktionsteiles und ein paar Key- und Statusfelder, z.B. Timestamp oder lfd. Vorgangsnummer. Da hinein zerhacken wir den XML-String aus der IFS-Datei: 1 Satz für den Kopfsatz, je einer pro Transaktion und einer für den Endesatz. Das Zerhacken geschieht durch Finden der entsprechenden XML-Tags, isi RPG-Programming.
Der eigentliche Import ins Zielsystem geschieht in einem getrenntem Programm. Gründe:
1) Getrennte Entwicklung und Tests möglich.
2) Die Datei aus Schritt 1 kommt ins an die IBMi angeschlossene revisionssichere Archivsystem, damit ist die gesetzliche Archivierungspflicht für Geschäfts-/Zahlungsverkehrsdaten erfüllt.
Der Import ist einfach: Schleife in der Datei über einen Vorgang, benötigte Felder aus dem Kopfsatz merken, jeder Transaktionssatz löst einen Schreibvorgang im internen System aus, wenn Endesatz, dann Log schreiben und tschüss.
Das XML-Parsing (toller Name, banaler Vorgang), erledigt eine Tabellenvariable mit 2 Spalten: XMLTAG, XMLWERT, die für jeden Dateisatz neu gefüllt wird. Der Parser ist nur ein Zeichenleser und Stringbastler: von < bis > ist der XMLTAG, danach XMLWERT bis < / gefunden wird.
Pfeifen Sie auf XSDs und XML-interne Metadaten. Sie wissen, welche XMLTAGs sie erwarten, und was als Wert dahinter stehen muss, woraus sich der Vailidierer ergibt. Wenn XMLWERT nicht valide: Ab ins Fehlerlog.
Alles in allem ein denkbar einfacher Vorgang für jeden gestandenen RPG-Programmierer. Consultants und Tool-Hausierer blasen nur viel Dampf rein.
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