Einlesen einer camt.54 XML Datei [ERLEDIGT]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Einlesen einer camt.54 XML Datei [ERLEDIGT]

Beitrag von ramses »

Guten Morgen

seit Jahren auf die lange Bank geschoben kommt nun einige Panik auf, die Finanzinstitute wollen nun die guten alten (schon lange tot gelaubten und weiterbenutzten) DTA Dateiformate doch noch wirklich beerdigen und erzwingen verbindliche Vereinbarungen "Day of last use" ....

Hat schon jemand Erfahrungen mit dem Einlesen von sog. "Bank-to-Customer Credit Notification (camt.054)" Dateien gesammelt?

Gibt es einen Parser der mit den je nach Finanzinstituten unterschiedem Aufbau dieser XML-Dateien umgehen kann?

Oder bleibt nur "Jugend-Forscht" bezw. mit den Funktionen der asxml10.dll die Unterschiede zu erforschen und einen Parser zu bauen?

Gruss Carlo
Zuletzt geändert von ramses am Mi, 15. Mär 2017 17:20, insgesamt 2-mal geändert.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Einlesen einer camt.54 XML Datei

Beitrag von Rudolf »

Hallo Carlo,
ich mache viel mit XML Dateien, als Werkzeuge kann ich MS XML Notepad und Chilkat ActiveX (alles kostenlos) sehr empfehlen. Vor allem Chilkat hat großen Funktionsumfang, guten Support und viele Beispiele, die anderen XML Tools für xBase decken nur die Basis ab.
Grüße
Rudolf
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Einlesen einer camt.54 XML Datei

Beitrag von ramses »

Hallo Rudolf

da stimme ich mit dir überein "MS XML Notepad" ist ein gutes Tool als "Editor".
Ich muss zur weiterverarbeitung aus den XML bestimmte Daten extrahieren da hilft das Notepad nicht viel weiter.
Erstaundlicherweise finden sich gar nicht viele Tools zum zerlegen von XML Dateien.....

Chilkat in Active-X Variante ist ein "NO GO" und kommt gar nicht in Frage. Für Delpi gäbe es eine DLL Variante ob sich diese für xbase umbiegen lässt habe ich mich noch nicht mit befasst.

Ich weiss auch nicht für wie viele Leute das lesen von camt Dateien überhaupt ein Thema ist.

Gruss

Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Einlesen einer camt.54 XML Datei

Beitrag von Rudolf »

Hallo Carlo,
hast eine Beispieldatei ? Ich habe mir ein paar eigene Funktionen für einfache XML Dateien gemacht, vielleicht passt etwas.
Grüße
Rudolf
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Einlesen einer camt.54 XML Datei

Beitrag von Koverhage »

Hallo Carlo
Für Delpi gäbe es eine DLL Variante ob sich diese für xbase umbiegen lässt habe ich mich noch nicht mit befasst.
Normal kann man fast jede DLL (delphi oder c++) mit Xbase++ benutzen. Lediglich ein Wrapper muss erstellt werden, wie
z.B. HBPRINTPDF für debenu Quickpdf
Gruß
Klaus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Einlesen einer camt.54 XML Datei

Beitrag von brandelh »

Mit ot4xb ist es egal ob eine Delphi, C/C++ oder System API angesprochen wird, ot4xb kümmert sich selbst automatisch um die Aufrufkonventionen.
Gruß
Hubert
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Einlesen einer camt.54 XML Datei

Beitrag von Rudolf »

Hallo, also wäre ein Wrapper für Chilkat DLL mit OT4XB möglich ? hab zwar selbst kein Problem mit der ActiveX Version, aber gibt anscheinend viele die es nicht akzeptieren.
Grüße
Rudolf
DelUser01

Re: Einlesen einer camt.54 XML Datei

Beitrag von DelUser01 »

Hallo Carlo

camt.54 ist ja eigentlich das SEPA-Format.
Schau' mal über die Forensuche nach SEPA, da gibt es einiges.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Einlesen einer camt.54 XML Datei

Beitrag von ramses »

Hallo zusammen

Danke für eure Antworten.

ja, camt.54 gehört zum Verfahren ISO-20022 Cash-Management oder eben SEPA es sind dies die Meldungen Bank --> Kunde über Zahlungseingänge.

Das Problem daran ist dass ich die Datei nicht Schreiben sondern LESEN muss. Nach heutiger Besprechnung muss Sie jedoch nicht zwingend formell geprüft werden, was die Sache vereinfacht, sondern nur die benötigten Felder extrahiert und sofern diese plausibel erscheinen verarbeitet oder andernfalls verworfen werden.

Eine zusätliche fremd dll wie Chilcat kann ich momentan nicht verwenden.

Gäbe es den dazu einen Wrapper bezw. Funktionsliste auf die DLL zum Aufruf über die ot4xb?

Der "Dependency Walker" den ich auf die Delpi Variante angewandt habe meldet fehlende Elemente, ich vermute wegen der fehlenden Delpi Runtime ....


Mangels besserer Ideen, versuche ich jetzt mal mit xbase Bordmitteln, sprich den Funktionen aus asxml.dll etwas aufzubauen um die XML zu parsen. Denn die Zeit drängt schon......

@Rudolf es sind relativ komplexe Dateien, bis 8 Ebenen tief. Wenn du ein Muster möchtest kann ich dir gerne eins per PM senden. Hättest du den Funktionen welche die camt.54 bereits verarbeiten kann?


Gruss Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
Beiträge: 1418
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich
Kontaktdaten:

Re: Einlesen einer camt.54 XML Datei

Beitrag von Rudolf »

Hallo Carlo,
hab leider damit noch nichts gemacht.
Grüße
Rudolf
DelUser01

Re: Einlesen einer camt.54 XML Datei

Beitrag von DelUser01 »

Hallo Carlo

für die Ausgabe von Zahlungen habe ich das vor einiger Zeit selber geschrieben - nur mit Xbase++.
Bestimmt gibt es inzwischen schon einen einfacheren Weg alles selber machen...
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Einlesen einer camt.54 XML Datei

Beitrag von Jan »

Es gibt doch in Xbase++ auch XML-Funktionen. Fast schon zu viele. Geht das nicht darüber?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Einlesen einer camt.54 XML Datei

Beitrag von ramses »

@Rudolf, trotzdem Danke für dein Angebot.

@Jan, ja mit den bin ich momentan daran. Du meinst doch die aus der asxml10.dll z.B. XMLDocOpenFile() oder hab ich da was nicht gesehen?

@Roland, die Ausgabe von Zahlungen Kunde-->Bank (pain.001 Dateien) das läuft schon einige Zeit, das ist viel einfacher weil ja erstellen der Datei, da bestimme ich was und wo hin kommt.

Gruss Karl
Valar Morghulis

Gruss Carlo
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Einlesen einer camt.54 XML Datei

Beitrag von ramses »

Ich konnte das Problem mit einer Funktion lösen.
Die Funktion kann mir die im ISO-20022 Cash-Management benutzen XML-Dateien in DBF Datenbanken einlesen so dass ein Transfer einen Record mit allen Angaben ergibt.
Mit den Testdaten eines Finanzinstitut funktioniert dies bereits einwandfrei und auch relativ schnell.

Gruss Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
Beiträge: 623
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

Re: Einlesen einer camt.54 XML Datei

Beitrag von Muecke »

Hallo Carlo

Wie sieht das aus?

Gruss Thomas
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Einlesen einer camt.54 XML Datei

Beitrag von ramses »

Hallo Thomas
Wie sieht das aus?
Was genau meinst du?

Gruss Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
Muecke
1000 working lines a day
1000 working lines a day
Beiträge: 623
Registriert: Di, 24. Okt 2006 7:19
Wohnort: Samstagern CH
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal
Kontaktdaten:

Re: Einlesen einer camt.54 XML Datei

Beitrag von Muecke »

Den Ansatz deiner Funktion !!

Gruss Thomas
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Einlesen einer camt.54 XML Datei

Beitrag von ramses »

Hallo Thomas

ich gehe davon aus dass du den Aufbau der ISO Zahlungs Files kennst.
Am Beispiel der camt.54 Datei. Dieser Dateityp hat 4 Levels, genau einen A-Level. Der A-Level muss 1 oder mehrere B-Level (Gutschriftskonto)enthalten. Dieser wiederum ein oder mehrere C-Levels(Valutadatum). Und der C-Level enthält wiederum ein oder mehrere D-Level(Transaktion) Einträge.

Die Aufgabe der Funktion ist: Erstelle pro D-Level Eintrag der XML Datei einen Record in der DBF Datei der die Angaben aller Levels enthält.
Also die MsgId des A-Levels, die Kontoangaben aus dem B-Level, das Valutadatum aus dem C-Level und die Details aus dem D-Level.

Ist die DBF erstellt kann diese geprüft und wie die Daten des "alten" Standards verarbeitet werden.

Gruss Carlo
Valar Morghulis

Gruss Carlo
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Einlesen einer camt.54 XML Datei [ERLEDIGT]

Beitrag von ramses »

Hallo

ich konnte die Aufgabe mit den Bord-Mitteln von XBase lösen und mit allen zur Verfügung stehenden Testdaten der Finanzinstitute erfolgreich Testen.

Cu Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
adrian
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Mo, 08. Mai 2006 8:58
Wohnort: Aadorf TG
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Einlesen einer camt.54 XML Datei [ERLEDIGT]

Beitrag von adrian »

Hallo zusammen

Ich bin im Netz auf die Firma SepaTools (http://www.sepa-tool.de/) gestossen, welche all die notwendigen Funktionen als DLL bietet.

Klar, nicht ganz kostenlos, doch wenn ich mir da einige Stunden Programmier-Arbeit und Aktenstudium sparen kann, lässt es sich rechnen.

Ich bin da gerade am "spielen" und mit nur einer Zeile können die Funktionen eingebunden werden.
es Grüessli

Adrian
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Einlesen einer camt.54 XML Datei [ERLEDIGT]

Beitrag von ramses »

Hallo Adrian

die Idee der sepa-tools.dll scheint auf den ersten Blick gut. Ob die Idee für dich auch gut ist musst du entscheiden. Aber bedenke:

- Programmierarbeit hast du dennoch
- Akten musst du auch studieren
- Testen musst du das ganze auch
- Eine DTAAUS im XML Format schreiben ist mit Xbase nicht schwer, irgendwo in einem Beitrag habe ich mal den Code meiner ersten Testversion eingefüllt-

Einige Stunden in die Entwicklung einer LESENDEN XML-Klasse zu investieren finde ich nicht schlecht. Zudem diese auch für andere Dateien verwendet werden kann.

Ich habe es mit 3 Klassen gelöst, eine um die Pain001 zu schreiben, eine zum XML Parsen und eine um mit der XML-Parser Klasse die camt054-ESR und Pain001 in eine DBF einzulesen und auch Anzeige Bildschirm oder Ausdruck.

Zudem ist es in jedemfall zwingend das Pro/Contra einer Fremd-Komponente bezw. des Einbaus dieser, abzuwägen mit welcher du dann doch längere Zeit arbeiten tust. Ggf. ist auch noch die Erlaubnis "Fremdkomponente" deines Auftraggebers erforderlich.........

Anmerken muss ich dazu auch noch: Wir benötigen keine IBAN Umrechnung oder BLZ Prüfungen / Datenbanken usw. welche die DLL auch bietet.

Ich habe sehr viel Zeit in meine Lösung gesteckt, ~3000 Zeilen Code, dafür ist die Macht mit mir, (auf die Funktionen bezogen) und die oben erwähnte Erlaubnis "Fremdkomponente" hätte ich nie erhalten.
Das gute daran, XML-Dateien haben für mich den Schrecken verloren ..... Sie sind eigentlich ganz einfach ....


Gruss Carlo
Valar Morghulis

Gruss Carlo
Antworten