Eindeutige ID von Kontoumsätzen

 
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Bad Kohlgrub
Homepage: fm-software.net
Beiträge: 13
Dabei seit: 05 / 2006
Betreff:

Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 25.05.2006 - 07:08 Uhr  ·  #1
Ich habe mit HBCI4Java ein kleines Modul entwickelt, das Kontoauszüge abholt und in eine SQL-Datenbank speichert (PostgreSQL oder MSSQL).

Mein Problem ist folgendes: Umsätze die ich einmal abgeholt habe, möchte ich nicht mehr löschen, da an den IDs der Umsätze weitere Aktionen hängen (Buchungen in der Finanzbuchhaltung).

Da ich in den Umsatzzeilen (GVRKUms.UmsLine) keine eindeutige ID des einzelnen Umsatzes finden konnte, erzeugte ich beim Speichern des Umsatz eine eigene ID.

Beim nächsten Abholen der Umsätze wiederholt das System die Umsatzabfrage für den aktuellsten gespeicherten Umsatztag bis zum heutigen Tag.

Leider ist es jetzt so, dass beim erneuten Abholen der Umsätze diese u.U. nicht mehr in der gleichen Reihenfolge vorliegen (und sich damit auch der Saldo der einzelnen Zeile ändert), in der sie zuvor vorlagen und somit eine eindeutige Identifzierung nicht möglich ist.

Gibt es eine Möglichkeit einen Umsatz eindeutig zu identifzieren?

Danke
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 8170
Dabei seit: 08 / 2002
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 25.05.2006 - 10:04 Uhr  ·  #2
Keine Ahnung, ob die Banken sowas liefern. Du könntest aber eventuell eine Quersumme über die gelieferten Werte bilden, eine Art Hash und das als Kriterium nehmen.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10513
Dabei seit: 03 / 2005
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 25.05.2006 - 14:43 Uhr  ·  #3
Jepp, ueber die Checksumme loese ich das in Hibiscus auch:

Ich bilde sie aus Text, Betrag,Konto,Gegenkonto,Customerref, Primanota,Saldo, Zweck und Datum.

Strings wandle ich vorher noch mit toUpperCase() in Grossbuchstaben.

Gruss
Olaf
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Bad Kohlgrub
Homepage: fm-software.net
Beiträge: 13
Dabei seit: 05 / 2006
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 25.05.2006 - 18:33 Uhr  ·  #4
Erstmal Danke für die schnelle Antwort. An einen HashCode hatte ich auch schon gedacht.

2 Fragen an Olaf:
a) verwendest Du als Checksumme den HashCode des Strings aus den genannten Feldern.
b) gibt es kein Problem, wenn der Saldo mit enthalten ist. Ich hatte gestern konkret das Problem, dass beim zweiten Abholen der Umsätze (Umsätze des selben Tages), sich ein einzelner Umsatz vor bereits abgeholte Umsätze schob. Buchungsdatum, Valuta und Betrag blieben zwar gleich, der Saldo hat sich für dieBuchungen der ersten Abholung jedoch damit verändert.

Das Verwenden einer Quersumme könnte zu Problemen führen, falls an einem Tag identische Bewegungen auf einem Konto sind. Ich habe mal versucht zwei identische Überweisungen am gleichen Tag per HBCI zu tätigen. Dies war nicht möglich. Ich bin mir aber nicht sicher, ob es nicht doch eine Möglichkeit gibt zwei identische Bewegungen zu produzieren (z.B. versehentlich zwei Lastschriften doppelt ausführen).

Weiß jemand, ob die Banken so etwas zulassen, oder aus Gründen der Validierung (scheint zumindest bei Überweisungen so zu sein (Sparkasse)) ablehnen?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Bad Kohlgrub
Homepage: fm-software.net
Beiträge: 13
Dabei seit: 05 / 2006
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 25.05.2006 - 18:36 Uhr  ·  #5
Noch eine Frage:

Wieviele Tage rückwirkend können sich die Umsätze denn verändern?
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 8170
Dabei seit: 08 / 2002
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 25.05.2006 - 18:51 Uhr  ·  #6
rückwirkend eigentlich gar nicht. Wenn ein Buchungstag abgeschlossen ist, dann kommt nix mehr. Sollte etwas storniert werden müssen, dann wird über die Valuta gearbeitet, damit kein Zinsverlust/-gewinn entsteht.

Aber Vorsicht: Wenn das Systemdatum nicht stimmt, was häufiger vorkommt als man glauben würde, dann kann alles durcheinandergeraten, wenn man sich darauf zusehr verlässt. Hier würde ich eine Sicherheitsabfrage einbauen.

Gruß
Raimund
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Bad Kohlgrub
Homepage: fm-software.net
Beiträge: 13
Dabei seit: 05 / 2006
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 25.05.2006 - 19:05 Uhr  ·  #7
Aber innerhalb des gleichen Buchungstages kann es vorkommen, habt Ihr das auch schon mal erlebt? D.h. wenn ich Mittags die Auszüge abhole, kann es sein, dass Abends die Reihenfolge der Bewegungen nicht mehr mit der Mittags übereinstimmt.
Benutzer
Avatar
Geschlecht:
Herkunft: Korschenbroich
Alter: 53
Beiträge: 6161
Dabei seit: 02 / 2003
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 25.05.2006 - 19:07 Uhr  ·  #8
Hallo Reimund,

deine Aussage ist definitiv falsch! Mir würde spontan da noch ein Rechenzentrum einfallen, bei demd as bis vor kurzem für einen Rag später noch der Fall war! Die abgholten Umsätze haben daher ja auch nur informativen Charakter! (Man holt sich Konto/ bzw. Umsatzinformationen und keine Kontoauszüge ab!)

Gruß

Holger
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 8170
Dabei seit: 08 / 2002
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 25.05.2006 - 19:08 Uhr  ·  #9
Ich könnte mir vorstellen, dass bei einigen Banken die Umsätze bei der Abfrage "on demand" erzeugt werden, so dass sich das durchaus ändern kann im Laufe des Tages. Genaues weiss ich allerdings nicht, sorry.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Hamburg
Homepage: aqbanking.de/
Beiträge: 642
Dabei seit: 03 / 2005
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 25.05.2006 - 22:50 Uhr  ·  #10
Zitat geschrieben von Anton Fend
Aber innerhalb des gleichen Buchungstages kann es vorkommen, habt Ihr das auch schon mal erlebt? D.h. wenn ich Mittags die Auszüge abhole, kann es sein, dass Abends die Reihenfolge der Bewegungen
nicht mehr mit der Mittags übereinstimmt.


Also ich habe schon oefter erlebt, dass sich Buchungen des gleichen Tages noch aendern (d.h. das jeweils neue hinzukommen). Auf die Reihenfolge habe ich allerdings nicht geachtet...

Fuer bereits vergangene Tage allerdings habe ich bisher noch keine rueckwirkenden Aenderungen bekommen (ich dachte auch, ich haette in den HBCI-Specs gelesen, das das nicht erlaubt waere, dass der Bank aber freigestellt ist, ob sie fuer den laufenden Tag vorlaeufige Infos herausgibt?).


Gruss
Martin
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10513
Dabei seit: 03 / 2005
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 26.05.2006 - 11:04 Uhr  ·  #11
Zitat geschrieben von Anton Fend
a) verwendest Du als Checksumme den HashCode des Strings aus den genannten Feldern.

Ja, im Prinzip schon. Allerdings verwende ich nicht String#hashCode() sondern CRC32. Frag mich nicht, warum ;)

Zitat geschrieben von Anton Fend
b) gibt es kein Problem, wenn der Saldo mit enthalten ist.


Also ich hatte bisher keine Probleme damit. Und wenn User Probleme damit haetten, haette sich bestimmt mal einer gemeldet.

Zitat geschrieben von Anton Fend
Das Verwenden einer Quersumme könnte zu Problemen führen, falls an einem Tag identische Bewegungen auf einem Konto sind.


Ich glaube, genau aus dem Grund hab ich den Saldo in die Quersumme mit reingenommen. Denn selbst wenn die Buchungen ansonsten absolut identisch sind - zusammen mit dem Saldo sind sie es nicht mehr ;)

Gruss
Olaf
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: München
Homepage: subsembly.com/
Beiträge: 4494
Dabei seit: 11 / 2004
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 26.05.2006 - 12:17 Uhr  ·  #12
Hallo,

bei sehr vielen Banken wird untertägig gebucht und somit können laufend neue Buchungen hinzukommen. Bei der StSpk München (wo ich auch Kunde bin) werden dabei neue Buchungen immer am Anfang des Buchungstages eingefügt.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Bad Kohlgrub
Homepage: fm-software.net
Beiträge: 13
Dabei seit: 05 / 2006
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 26.05.2006 - 12:56 Uhr  ·  #13
Ich bin auch Kunde der StSpk MÜnchen und habe genau dies auch festgestellt. D.h. der Saldo einer Kontobewegung am Vormittag kann ein anderer sein als der Saldo der genau gleichen Buchung am Abend. Somit kann per HashCode diese Buchung nicht mehr identifziert werden (gespeichert ist ja der Hashcode der Vormittagsbuchung).
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: München
Homepage: subsembly.com/
Beiträge: 4494
Dabei seit: 11 / 2004
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 26.05.2006 - 13:02 Uhr  ·  #14
Hallo,

nun ich denke, der jeweilige Saldo nach einer Buchung ist auch völlig unerheblich und wird von mir weder gespeichert noch überhaupt angezeigt. Ich zeige dem Kunden nur den Tagesendsaldo an, und der ist völlig unabhängig von der Buchungsreihenfolge an diesem Tag.

Frage an die Banker: Für Zinsberechnungen, etc. ist sowieso nur der Valuta-Saldo (nicht der Buchungssaldo) am Tagesende von interesse, oder?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Bayerisch Venedig
Homepage: sparkasse-passau.d…
Beiträge: 765
Dabei seit: 11 / 2004
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 26.05.2006 - 13:22 Uhr  ·  #15
Moin,

@subsembly
Genau so ist es. Es können also Sollzinsen anfallen, obwphl das Konto scheinabr im Haben ist - gilt natürlich umgekehrt auch für Habenzinsen 😉

@Anton Fend
Genau wegen dieser Problematik verarbeiten alle mir bisher bekannten FiBu Programme auch nur komplett abgeschlossene Tage - sprich bis einschlich Gestern. Tagesaktuelle Umsätze können hier mit "Kundenmitteln" kaum vernünftig verarbeitet werden. Elegant wäre es, wenn die Bank pro Umsatz ein Kennzeichen hat "Umsatz bereits übermittelt" - Das gibt es aber nur bei den juristischen Auszügen; und nicht jede Bank stellt diese zur Verfügung - wenn dann meistens als pdf und für Geschäftskunden nur mit "Haftungsfreistellung der Bank" wg. evtl. verlorener Vorsteuerabzüge gegenüber dem Finanzamt.

Die Erfahrung hat einfach gezeigt: Tagesaktuelle Verbuchung nur aufwendig auf Kundenseite realisierbar und sehr fehleranfällig.
Wobei jede Bank (Inst-Gruppe) einzeln angepasst werden muß.
Automatische Verbuchung "bis Gestern" geht ohne Probleme.

Ich frage mich halt nur, wie groß das Rad sein soll, an dem hier gedreht wird...

Aber laßt Euch nicht entmutigen

Od
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: München
Homepage: subsembly.com/
Beiträge: 4494
Dabei seit: 11 / 2004
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 26.05.2006 - 13:56 Uhr  ·  #16
Wg. Verbuchung "bis Gestern":

Ich bin mir nicht sicher, dass ich, wenn ich "Heute" früh um 7:00 Uhr die Umsätze über HBCI abrufe wirklich auch alle gebuchten Umsätze von Gestern bekomme, oder?

Auf der sicheren Seite ist man wohl nur mit einer abschließenden Verbuchung bis zum vorletzten Bankarbeitstag.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Bad Kohlgrub
Homepage: fm-software.net
Beiträge: 13
Dabei seit: 05 / 2006
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 26.05.2006 - 14:30 Uhr  ·  #17
Hallo Odin,

weisst Du ob es möglich ist am gleichen Tag eine identische Buchung (gleicher Betrag, gleicher Empfänger, gleicher Verwendungszweck etc.) aufzugeben. Z.B. eine Lastschrift versehentlich zweimal einziehen (Überweisung doppelt geht bei der Sparkasse nicht).
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10513
Dabei seit: 03 / 2005
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 26.05.2006 - 14:33 Uhr  ·  #18
Zitat geschrieben von subsembly
nun ich denke, der jeweilige Saldo nach einer Buchung ist auch völlig unerheblich und wird von mir weder gespeichert noch überhaupt angezeigt. Ich zeige dem Kunden nur den Tagesendsaldo an, und der ist völlig unabhängig von der Buchungsreihenfolge an diesem Tag.


Ich zeige den pro Buchung uebertragenen Saldo an, weil es ein User-Wunsch war ;)

Wenn sich dieser Saldo im Verlaufe des Tages bei einer Buchung nochmal aendert, wuerde das in meiner Umsatzliste (aufgrund der Einbeziehung dieses Saldos in die Pruefsummen-Berechnung) zu einer doppelt angezeigten Buchung fuehren. Bisher konnte ich das (zumindest bei meinen Konten) aber noch nie beobachten. Dennoch werd ich das im Hinterkopf behalten. Falls mal ein User von diesem Symptom berichtet, weiss ich gleich, was die wahrscheinlichste Ursache ist ;)
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: München
Homepage: subsembly.com/
Beiträge: 4494
Dabei seit: 11 / 2004
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 26.05.2006 - 14:38 Uhr  ·  #19
Zitat geschrieben von Anton Fend
Hallo Odin,

weisst Du ob es möglich ist am gleichen Tag eine identische Buchung (gleicher Betrag, gleicher Empfänger, gleicher Verwendungszweck etc.) aufzugeben. Z.B. eine Lastschrift versehentlich zweimal einziehen (Überweisung doppelt geht bei der Sparkasse nicht).


Ich hab das konkret mit der NetBank schon mal erfolgreich so provoziert. Einfach zwei genau identische Überweisungen mit ein paar Stunden Abstand durchgeführt. Bei einem sehr kurzen Abstand kann es sein, dass der Server das als versehentliche "Doppeleinreichung" wertet und ablehnt, bei längerem Abstand geht es normalerweise.

Ergebnis: Zwei absolut identische Posten in den Umsatzdaten. Viel Spaß damit :-)
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Bad Kohlgrub
Homepage: fm-software.net
Beiträge: 13
Dabei seit: 05 / 2006
Betreff:

Re: Eindeutige ID von Kontoumsätzen

 · 
Gepostet: 26.05.2006 - 15:07 Uhr  ·  #20
Ich werde das jetzt wie folgt implementieren:
a) ich wiederhole das Abholen der Kontoauszüge immer für das letzte Abholdatum
b) bilde einen HashCode wie in Hibiscus (jedoch ohne Saldo)
c) prüfe wie oft dieser HashCode beim HBCI-Download vorkommt und gleiche diese Vorkommnisse mit den bereits gespeicherten Umsätzen ab
--> Ergo: in der Datenbank muss zum Schluß die gleiche Anzahl der Vorkommnisse drin sein wie beim Download.

Das sollte dann funktionieren, unter der Prämisse, dass sich bei den Umsätzen an den Vortagen nichts verändert. Sieht jemand noch ein Schwachstelle?

Danke
Gewählte Zitate für Mehrfachzitierung:   0