Hallo,
nach einiger Beschäftigung mit diesem Thema stellt es sich für mich so dar:
Es gibt grundsätzlich zwei Wege, Umsatzdaten des eigenen Bankkontos vom Bankserver in die eigene EDV zu bekommen:
1. Über von der Bank offiziell zur Verfügung gestellte Schnittstellen (z.B. HBCI)
+ Rechtssicher
+ Technisch robust (wird nicht "heimlich" geändert)
+ Datensätze sind eindeutig
- Evtl. von der "eigenen" Bank nicht unterstüzt
- Umsetztung technisch aufwändig
2. Über einen "Bot" der das manuelle Abrufen der Daten nachahmt
+ rel. einfach umsetzbar
- Rechtlich zumindest im Graubereich
- Bei Änderung der "Bankoberfläche" ist eine Anpassung notwendig
- Diese Änderungen werden (beabsichtigt?) nicht angekündigt (im Gegensatz zu Änderungen der "offiziellen" Schnittstellen)
- Datensätze sind evtl. nicht eindeutig
Obwohl der erste Weg sicher der bessere ist, habe ich mich jetzt für eine Bot-Lösung entschieden. Das löst mein Problem erst einmal schneller, meine Ressourcen sind z.Z. einfach zu knapp.
Ich habe mir ein Autoit Script geschrieben. Das ging schnell und läßt sich bei Bedarf ebenso schnell an eine geänderte Oberfläche anpassen.
Das Script ruft die Banking Seite auf, gibt die Login Daten ein, hangelt sich bis zur Umsatzseite durch, liest dort den Quellcode aus und gibt ihn in einen Parser. Der extrahiert dann Datensätze aus: Datum, Buchungstext und Betrag und schreibt diese in eine MySQL DB.
Dabei bin ich auf eine anderes Problem gestoßen, welches wohl für alle diese Bott-Lösungen zutreffen wird (evtl. abhängig von der Bank):
1. Die Buchunsgsätze haben keine eindeitige ID
2. Man kann den Zeitraum der abgerufenen Buchungen nur ungenau spezifizieren (z.B. letzter Tag)
Bei meiner Bank werden die Buchungen mehrmals am Tag aktualisiert. Ich möchte die Daten auch mehrmals am Tag in meinem System aktualiesieren.
Nun könnte es an einem Tag zwei Buchungen mit dem gleichen Buchungstext und dem gleichen Betrag (z.B. versehntliche Doppelüberweisung eines Kunden, hatte ich schon) geben.
Es kann nun schwer unterschieden werden, ob der Bot diesen Datensatz zweimal abgeholt hat, oder ob er tatsächlich doppelt bei der Bank vorliegt.
Hier ist eine Lösung über einen offizielle Schnittstelle sicher vorteilhafter.
Danke an alle!
Gruß
Steffen