Eindeutige identifizierung von Umsätzen

 
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 3
Dabei seit: 09 / 2014
Betreff:

Eindeutige identifizierung von Umsätzen

 · 
Gepostet: 24.09.2014 - 14:37 Uhr  ·  #1
Hallo ans Forum,

ich habe eigentlich überhaupt keine Ahnung von Onlinebanking... was wohl das Hauptproblem sein wird.
Ich rufe mit der FinCMD.exe meine Kontodaten ab. Das funktioniert soweit auch wunderbar.

Was mir zu schaffen macht und da bin ich mir nicht sicher wo das Problem liegt ist:

Wenn ich im Anschluss an das Abrufen der Umsätze diese weiter verarbeiten möchte, wie stelle ich fest/sicher das der Umsatz nicht schon ein mal abgerufen wurde und schon gespeichert ist.
Als Leihe bin ich davon ausgegangen das jede Buchung eine eindeutige Nummer haben wird. Leider ist das anscheinen nicht der Fall. Zumindest nicht bei mir.

Die Daten kommen ja als MT940 und wenn ich unter http://www.kontopruef.de/mt940s.shtml nachschaue hätte ich gedacht das da in den Feldern 20: oder 21: was sein müsste aber leider ist da nichts...

Liegt das jetzt an mir, an der Bank oder am Datenformat?

Ich kann mir eigentlich nicht vorstellen das die Banken ohne einen eindeutige Nummer klarkommen.
Wie machen die das?

Mfg
Jabberwock
msa
Benutzer
Avatar
Geschlecht:
Herkunft: München
Alter: 61
Beiträge: 7129
Dabei seit: 03 / 2007
Betreff:

Re: Eindeutige identifizierung von Umsätzen

 · 
Gepostet: 24.09.2014 - 17:48 Uhr  ·  #2
Das ist eine alte Geburtskrankheit von MT940. Es ist hier schlicht und einfach kein Feld für eine eindeutige Nummer, einen Stempel oder irgendwas vorgesehen. Du kannst also nichts finden. Man muß sich da mit trickreichen Lösungen behelfen, indem man selbst die Umsätze des letzten Abrufes gegen die Umsätze des vorhergehenden Abrufes abgleicht und die aussortiert, die man schon hatte. Es klingt anachronistisch, ist aber leider wirklich so.

Zum Verständnis muß man anführen, dass das Format MT940 für EDV-Verhältnisse schon steinalt ist. Es wurde Ende der 80er Jahre definiert, damals war noch der Abruf von Umsätzen über das Auslesen von Dialogmasken in BTX üblich. Da war die "reine Datenübertragung" via MT940-Dialog revolutionär. Außerdem haben damals noch alle Banken Batch-Booking in der Nacht gemacht, man konnte immer nur am Folgetag die Umsätze des Vortages abrufen. Und damit war ein Abruf eindeutig. Wenn man Umsätze des xx.xx.xxxx abgerufen hat, bekam man immer das Gleiche übermittelt. Insofern war eine eindeutige Kennzeichnung nicht nötig.

Im neuen CAMT-Format hat jeder Umsatz jetzt so einen eindeutigen Zeitstempel, der sich bei mehreren Abrufen nicht verändert und der für die Identifizierung herangezogen werden kann. Allerdings muß erst mal die entsprechende Bank den Abruf über CAMT einführen (die Sparkassen beiten CAMT schon an) und die verwendete Software muß CAMT nutzen. FinCMD tut das leider derzeit noch nicht.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 3
Dabei seit: 09 / 2014
Betreff:

Re: Eindeutige identifizierung von Umsätzen

 · 
Gepostet: 26.09.2014 - 08:42 Uhr  ·  #3
Hm ok,
hatte gehofft was anderes zu erfahren aber gut.
Das habe ich auch so gemacht nur dachte ich das es einen ordentlichen Weg dafür gibt.

Also wenn ich zwei mal an einem Tag an der gleichen Tank für 20 Euro Tanke hab ich ein Problem.
Dann muss ich hoffen das die Tankstelle im Buchungstext irgendwas zum unterscheiden drin hat, Zeitstempel oder so.
Aber an sich ist das ein Glücksspiel, oder nicht?

Wenn ich jetzt an Onlinebanking Software denke wie Wiso oder so da kann ich mir eigentlich nicht vorstellen das die das so machen...

Aber gut für mich privat sollte es so reichen.

Vielen dank für die Antwort
mfg
Jabberwock
Benutzer
Avatar
Geschlecht:
Beiträge: 3338
Dabei seit: 05 / 2013
Betreff:

Re: Eindeutige identifizierung von Umsätzen

 · 
Gepostet: 26.09.2014 - 09:38 Uhr  ·  #4
Du kannst doch matchen. Wenn alle Felder gleich sind inkl. Buchungstag (beim Vergleich der gesaugten Daten mit dem Bestand) dann verwirf es. Was übrig bleibt ist das, was im Bestand fehlt. Dann passt es doch. Es gibt nur ganz wenige Buchungen die völlig identisch aussehen, wie z.B. eine Bareinzahlung an einer Kasse, wenn der Verwendungszweck keine Uhrzeit enthält. Und solche kannst du doch über den aktuellen Saldo abgleichen. Nimm die Summe aller nicht eindeutig passenden und schauen, ob die Differenz zwischen dem Saldo im Bestand und dem abgerufenen Saldo passt. Wenn ja, verwerfen, wenn nein, weiter prüfen bzw. manuell den User entscheiden lassen.
msa
Benutzer
Avatar
Geschlecht:
Herkunft: München
Alter: 61
Beiträge: 7129
Dabei seit: 03 / 2007
Betreff:

Re: Eindeutige identifizierung von Umsätzen

 · 
Gepostet: 26.09.2014 - 10:40 Uhr  ·  #5
Zitat geschrieben von Jabberwock
Aber an sich ist das ein Glücksspiel, oder nicht?

Wenn ich jetzt an Onlinebanking Software denke wie Wiso oder so da kann ich mir eigentlich nicht vorstellen das die das so machen...

Wenn Du es anständig machst, dann ist das keinesfalls ein Glücksspiel! Und ja, Bankingprogramme machen es genau so, denn was anderes gibt's nicht!

Von wegen anständig: Du kannst natürlich nicht Alles gegen Alles matchen, dann kommt genau das Problem heraus, das Du mit Deinen Tankbuchungen ansprichst. Der Abgleich muß folgendermaßen laufen: Sagen wir Du hast 5 Buchungen schon verarbeitet und bekommst beim nächsten Abruf 8 Buchungen. Nun gehst Du her und suchst zu der ersten alten Datenbankbuchung im Neuabruf eine identische. Wenn Du die gefunden hast, dann löschst Du sie im Neuabruf UND daktivierst sie im Altbestand für weiteren Abgleich. Dann nimmst Du die zweite Datenbankbuchung und suchst in den verbliebenen 7 Buchungen eine identische. Und so weiter. Am Ende sind alle Datenbankbuchungen abgearbeitet, und exakt dazu passende neue Buchungen gelöscht. Übrig bleibt der Rest, der zu keiner alten gepaßt hat. Die zweite Tankbuchung bleibt nun auch als NEU bestehen, denn es gab im Datenbankbestand keine zweite, mit der sie abgeglichen werden konnte. Und gegen die Erste wurde ja schon die andere abgeglichen. Damit hast Du dann exakt nur die neuen Buchungen, da ist keinerlei Glück dabei.

Außerdem empfielt es sich natürlich, die bereits vorhandenen Buchungen zu behalten und die dazu passenden neuen zu löschen, denn evtl. hat man bei den vorhandenen schon eigene Ergänzungen gemacht (Kontierung, Notizen ect.), dass bleibt dann erhalten.

Eine weitere Möglichkeit (wenn man nicht eigene Ergänzungen erhalten muß) bietet sich noch dadurch, dass man in der eigenen Datenbank immer die Buchungen rückwärts bis zu dem Zeitpunkt löscht, zu dem sich noch was ändern kann. Sprich, bis zum letzten Abruf + 1 Tag und die dann komplett durch die neuen Buchungen ersetzt. Beispiel: Ich habe vorgestern das letzte Mal abgerufen, also lösche ich alle Buchungen bis vor-vorgestern und schreibe dann den Neuabruf in die Datenbank.

Das mit dem Abgleich muß man natürlich auch nicht immer wieder für den gesamten Bestand machen, sondern nur für den "offenen" Tag, als den Tag, AN dem man das letzte Mal abgerufen hat.
Benutzer
Avatar
Geschlecht:
Beiträge: 3338
Dabei seit: 05 / 2013
Betreff:

Re: Eindeutige identifizierung von Umsätzen

 · 
Gepostet: 26.09.2014 - 11:53 Uhr  ·  #6
Jo, msa hat meinen Vorschlag nochmal mit anderen Worten beschrieben. Buchungstag ist immer der Aufhänger beim Vergleich, damit man nicht jedes mit jedem vergleicht. Denn der Buchungstag kann niemals rückwirkend sein. Das gibt es nur beim Feld Wertstellung oder Valuta.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 3
Dabei seit: 09 / 2014
Betreff:

Re: Eindeutige identifizierung von Umsätzen

 · 
Gepostet: 30.09.2014 - 10:51 Uhr  ·  #7
Vielen Dank für Einführung ins Onlinebanking.
Hab da wie gesagt noch nichts mit zu tun gehabt und mache das auch nur Privat für mich...
Aber so oder so ähnlich hätte ich es auch gemacht, bin halt nur davon ausgegangen das es nicht der "richtige" Weg ist.

Sorry das ich nicht geantwortet habe.
Anscheinend kommen die Mails nicht durch bei mir.
Gewählte Zitate für Mehrfachzitierung:   0