| Autor |
Nachricht |
teesee
0-10 Beiträge
Anmeldungsdatum: 19.01.2009
Beiträge: 5

|
|
Bin durch Zufall auf ein interessantes Problem gestoßen:
Lt. neuer Featurelist auf der Homepage
" Mehr als zwei Zeilen Verwendungszweck [#188] "
wird der vollständige Verwendunszweck dargestellt.
Ich habe in einem Verwendunszweck einen Doppelpunkt ":" mittendrin.
Will ich mir den Verwendungszweck anzeigen lassen, schneidet er den Rest incl. Doppelpunkt weg.
Bsp:
ERTRAEGNISGUTSCHRIFT VOM 10.01.09
DEPOTBESTAND: 90,000
XXXX. SHARES DL 3
8533445 USD 0,05
erscheint als:
ERTRAEGNISGUTSCHRIFT VOM 10.01.09
DEPOTBESTAND
Auf der Webpage der Bank wird alles korrekt angezeigt.
|
|
|
|
Zuletzt bearbeitet von teesee am 19/1/2009, 22:32, insgesamt einmal bearbeitet
|
|
| |
    |
 |
willow
über 1000 Beiträge

Anmeldungsdatum: 08.03.2005
Beiträge: 1466
Wohnort: Leipzig

|
|
| Werden in jameica.log irgendwelche Warnungen/Fehler dazu angezeigt? Mich wuerde interessieren, ob es sich ggf. nur um einen Anzeigefehler handelt oder die Daten tatsaechlich fehlen.
|
|
|
|
|
|
| |
     |
 |
teesee
0-10 Beiträge
Anmeldungsdatum: 19.01.2009
Beiträge: 5

|
|
Wenn ich die entspr. Transaktion bzw. Kontenbewegung auswähle erscheint (jameika debug level: info)
| Code:
|
|
[Mon Jan 19 21:45:26 CET 2009][ERROR][de.willuhn.jameica.hbci.gui.controller.UmsatzDetailControl.getAddressbookEntry] unable to check, if address in addressbook
|
(jameika debug level: debug)
| Code:
|
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.gui.GUI.startView] starting view: de.willuhn.jameica.hbci.gui.views.UmsatzDetail
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.messaging.NamedQueue.unRegisterMessageConsumer] unregistering message consumer de.willuhn.jameica.hbci.gui.controller.KontoControl$SaldoMessageConsumer
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.gui.GUI$2.run] disposing previous view
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.security.JameicaSecurityManager.checkFile] checking write permissions for file: "/home/tilo/.jameica/cfg/de.willuhn.jameica.gui.parts.AbstractTablePart.properties"
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.gui.parts.TablePart$1.widgetDisposed] saving table order: !datum_pseudo
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.security.JameicaSecurityManager.checkFile] checking write permissions for file: "/home/tilo/.jameica/cfg/de.willuhn.jameica.gui.parts.AbstractTablePart.properties"
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.security.JameicaSecurityManager.checkFile] checking write permissions for file: "/home/tilo/.jameica/cfg/de.willuhn.jameica.gui.parts.AbstractTablePart.properties"
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.security.JameicaSecurityManager.checkFile] checking write permissions for file: "/home/tilo/.jameica/cfg/de.willuhn.jameica.gui.parts.AbstractTablePart.properties"
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.security.JameicaSecurityManager.checkFile] checking write permissions for file: "/home/tilo/.jameica/cfg/de.willuhn.jameica.gui.parts.AbstractTablePart.properties"
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.security.JameicaSecurityManager.checkFile] checking write permissions for file: "/home/tilo/.jameica/cfg/de.willuhn.jameica.gui.parts.AbstractTablePart.properties"
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.security.JameicaSecurityManager.checkFile] checking write permissions for file: "/home/tilo/.jameica/cfg/de.willuhn.jameica.gui.parts.AbstractTablePart.properties"
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.security.JameicaSecurityManager.checkFile] checking write permissions for file: "/home/tilo/.jameica/cfg/de.willuhn.jameica.gui.parts.AbstractTablePart.properties"
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.security.JameicaSecurityManager.checkFile] checking write permissions for file: "/home/tilo/.jameica/cfg/de.willuhn.jameica.gui.parts.AbstractTablePart.properties"
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.messaging.NamedQueue.unRegisterMessageConsumer] unregistering message consumer de.willuhn.jameica.hbci.gui.parts.UmsatzList$UmsMessageConsumer
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.gui.GUI$2.run] dispose finished
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.gui.GUI$2.run] adding view de.willuhn.jameica.hbci.gui.views.KontoNew to history
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.datasource.db.AbstractDBObject.load] executing query: select * from KONTO where ID =1
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.datasource.db.DBIteratorImpl.init] executing sql query: prep91: select * from UMSATZTYP where umsatztyp = 1 or umsatztyp = 2 or umsatztyp is null ORDER BY nummer,name
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.system.ServiceFactory.lookup] searching for service addressbook for plugin de.willuhn.jameica.hbci.HBCI
[Mon Jan 19 21:46:23 CET 2009][DEBUG][de.willuhn.jameica.system.ServiceFactory.lookup] found in cache
[Mon Jan 19 21:46:23 CET 2009][ERROR][de.willuhn.jameica.hbci.gui.controller.UmsatzDetailControl.getAddressbookEntry] unable to check, if address in addressbook
|
Anscheinend interpretiert das Prog ":" nicht als "normalen" Text sondern als Anweisung/Befehl etc.
|
|
|
|
|
|
| |
    |
 |
willow
über 1000 Beiträge

Anmeldungsdatum: 08.03.2005
Beiträge: 1466
Wohnort: Leipzig

|
|
| teesee hat folgendes geschrieben:
|
Wenn ich die entspr. Transaktion bzw. Kontenbewegung auswähle erscheint (jameika debug level: info)
| Code:
|
|
[Mon Jan 19 21:45:26 CET 2009][ERROR][de.willuhn.jameica.hbci.gui.controller.UmsatzDetailControl.getAddressbookEntry] unable to check, if address in addressbook
|
|
Das kannst du ignorieren. Es bedeutet nur, dass Hibiscus im Adressbuch gesucht hat, ob dort eine Adresse mit der gleichen Bankverbindung wie die des Umsatzes existiert.
| teesee hat folgendes geschrieben:
|
Anscheinend interpretiert das Prog ":" nicht als "normalen" Text sondern als Anweisung/Befehl etc.
|
Nein. Einen Text "versehentlich" als Befehl zu interpretieren, ist in Java (im Gegensatz zu diversen Scriptsprachen) gar nicht moeglich. Wie kommst du auf diese Vermutung?
Kannst du zum Test mal einen Umsatz als CSV-Datei exportieren, diese anschliessend in einem Texteditor oeffnen, im Verwendungszweck manuell einen Doppelpunkt einfuegen und die Datei dann wieder importieren? Wird es da korrekt angezeigt? Ich vermute fast, dass der Text hinter dem Doppelpunkt schon vorher verlorengegangen ist.
|
|
|
|
|
|
| |
     |
 |
Captain FRAG
Bereich: Sparkassen

Anmeldungsdatum: 26.05.2003
Beiträge: 5096
Wohnort: Westfalen

|
|
Wir der Verwendungszweck im Programm inhaltlich auf Gültigkeit geprüft?
Nur so ne Idee, weil der Doppelpunkt in DTAUS nicht erlaubt ist, in SWIFT aber schon.
|
|
|
|
_________________ Dunkel, die andere Seite ist seeehr dunkel...
Yoda, halt die Fresse und iss deinen Toast!
|
|
|
    |
 |
teesee
0-10 Beiträge
Anmeldungsdatum: 19.01.2009
Beiträge: 5

|
|
Wie vorgeschlagen csv Export, Doppelpunkte in Verwendungszweck und "Weitere Verwendungszwecke" hinzugefügt, wieder csv Import (alles utf) der Doppelpunkt wurde angezeigt.
Also liegt es an der Bank. Die schneiden einfach die Zeichen nach dem ":" weg.
Ich habe die Probleme mit der comdirect Bank. Könnt Ihr evtl. mal mit einer Testüberweisung auch an andere Banken das verifizieren?
|
|
|
|
Zuletzt bearbeitet von teesee am 20/1/2009, 12:09, insgesamt einmal bearbeitet
|
|
| |
    |
 |
willow
über 1000 Beiträge

Anmeldungsdatum: 08.03.2005
Beiträge: 1466
Wohnort: Leipzig

|
|
| Captain FRAG hat folgendes geschrieben:
|
Wir der Verwendungszweck im Programm inhaltlich auf Gültigkeit geprüft?
Nur so ne Idee, weil der Doppelpunkt in DTAUS nicht erlaubt ist, in SWIFT aber schon.
|
Guter Tipp. Fuer einen Moment dachte ich: "Jepp, das koente es sein". Aber beim Abrufen der Umsaetze pruefe ich das nicht.
|
|
|
|
|
|
| |
     |
 |
Captain FRAG
Bereich: Sparkassen

Anmeldungsdatum: 26.05.2003
Beiträge: 5096
Wohnort: Westfalen

|
|
| teesee hat folgendes geschrieben:
|
Also liegt es an der Bank. Die schneiden eifach die Zeichen nach dem ":" weg.
|
Das müsste man in der "nackten" HBCI-Kommunikation sehen können. Ich weiss nicht, ob diese von der Software per Default aufgezeichnet und mitgeloggt wird. Ich schätze aber mal, das es dafür einen Parameter gibt.
Willow, was sagst du?
|
|
|
|
_________________ Dunkel, die andere Seite ist seeehr dunkel...
Yoda, halt die Fresse und iss deinen Toast!
|
|
|
    |
 |
willow
über 1000 Beiträge

Anmeldungsdatum: 08.03.2005
Beiträge: 1466
Wohnort: Leipzig

|
|
Einfach mal Log-Level in Datei->Einstellungen auf "DEBUG" stellen, dann Rechtsklick auf das betreffende Konto und "Kontoauszugsdatum zuruecksetzen..." klicken (das fuehrt dazu, dass bereits abgerufene Umsaetze nochmal geholt werden, insofern sie bei der Bank noch vorliegen.
Anschliessend in ~/.jameica/jameica.log schauen.
|
|
|
|
|
|
| |
     |
 |
willow
über 1000 Beiträge

Anmeldungsdatum: 08.03.2005
Beiträge: 1466
Wohnort: Leipzig

|
|
teesee hatte mir die Daten per PM zukommen lassen. Hier der relevante und IMHO fehlerverursachende Teil:
| Code:
|
:20:MT940-0901200102
:21:NONREF
:25:****************
:28C:0/38
:60M:**********
:61:*****************
:86:300?20KUPON?21ERTRAEGNISGUTSCHRIFT VOM 15?22.01.09?23DEPOTBESTAND
: 9?240,000?25MOTOROLA INC. SHARES DL 3?26853936
USD 0,05?32
:62F:***********
|
Entweder die Bank schickt kaputtes Swift oder Swift ist wirklich ein so derart kaputtes Format, dass sowas erlaubt ist. Zeile 8 beginn mit einem Doppelpunkt. Der laeutet aber nicht das naechste Tag ein sondern ist Bestandteil des Content (steht eigentlich hinter "DEPOTBESTAND"). Ich nehme an, der Fehler waere nicht aufgetreten, wenn der Doppelpunkt noch auf die vorherige Zeile gepasst haette.
@Stefan: Ich hab in org.kapott.hbci.swift.Swift#getTagValue(String, String, int) (Zeile 53) mal etwas mit folgendem Regex rumprobiert, um Zeilen mit einzuschliessen, wenn sie zwar mit Doppelpunkt beginnen, aber aber darauf kein Tag folgt:
^\r\n:[0-9]{2}\\w?:[\\s\\S]+
Bin mit den anschliessenden Offsets fuer startpos und endpos dann aber etwas durcheinandergekommen. Willst du es dir mal anschauen?
|
|
|
|
|
|
| |
     |
 |
Captain FRAG
Bereich: Sparkassen

Anmeldungsdatum: 26.05.2003
Beiträge: 5096
Wohnort: Westfalen

|
|
Das von der Bank erzeugte Swift dürfte kaputt sein:
| FinTS.org hat folgendes geschrieben:
|
B. S.W.I.F.T.-FORMATE
Da für Homebanking nicht die kompletten S.W.I.F.T.-Fomate erforderlich sind, handelt es sich bei den nachfolgenden Formaten nicht um die Originalbeschreibung von S.W.I.F.T., sondern um modifizierte Belegungsrichtlinien. Es werden nur die notwendigen Felder belegt. Nicht benötigte Felder werden entweder konstant belegt oder ausgelassen. Gleichwohl stellen alle anhand dieser Vorschriften erzeugten Datensätze gültige S.W.I.F.T-Formate dar.
-Allgemeine Syntaxvereinbarungen:
[...viel Text...]
• Der Inhalt eines Feldes darf am Anfang einer Zeile nicht mit einem Doppelpunkt oder einem Bindestrich beginnen.
[...viel Text...]
|
|
|
|
|
_________________ Dunkel, die andere Seite ist seeehr dunkel...
Yoda, halt die Fresse und iss deinen Toast!
|
|
|
    |
 |
willow
über 1000 Beiträge

Anmeldungsdatum: 08.03.2005
Beiträge: 1466
Wohnort: Leipzig

|
|
| Captain FRAG hat folgendes geschrieben:
|
|
Das von der Bank erzeugte Swift dürfte kaputt sein:
|
Da muss ich mir ja jetzt echt ein hämisches Grinsen verkneifen ;)
|
|
|
|
|
|
| |
     |
 |
kleiner77
über 500 Beiträge

Alter: 33
Anmeldungsdatum: 09.08.2004
Beiträge: 759
Wohnort: Leipzig

|
|
Der DTAUS-Parser von HBCI4Java geht davon aus, dass keine Doppelpunkte in "payload"-Texten vorkommen. Da hier doch ein Doppelpunkt auftaucht, kommt der Parser durcheinander...
Um das "sauber" zu lösen, müsste ich ein entsprechendes Rewriter-Modul für "kaputte DTAUS-Streams" schreiben und der betreffenden Bank die Rechnung dafür zukommen lassen...
Grüße
-stefan-
|
|
|
|
_________________ http://hbci4java.kapott.org
|
|
 |
     |
 |
kleiner77
über 500 Beiträge

Alter: 33
Anmeldungsdatum: 09.08.2004
Beiträge: 759
Wohnort: Leipzig

|
|
Sorry, mein letztes Posting ist nicht ganz korrekt.
Im MT940 (SWIFT-Format für "Kontoauszüge") sind theoretisch ":" in den Verwendungszweckzeilen erlaubt. Beim Erzeugen von Überweisungsaufträgen via HBCI sind in den Verwendungszweckzeilen jedoch KEINE ":" erlaubt, weil das Format als "DTAUS" spezifiziert, wobei ":" kein gültiges Zeichen ist.
Letzere Aussage gilt übrigens genomen erst ab HBCI-2.1 - in HBCI-2.01 war diese Einschränkung noch nicht da...
Streng genommen handelt es sich also um einen Bug im SWIFT-MT940-Parser von HBCI4Java - also ein TODO für mich...
-stefan-
|
|
|
|
_________________ http://hbci4java.kapott.org
|
|
 |
     |
 |
Captain FRAG
Bereich: Sparkassen

Anmeldungsdatum: 26.05.2003
Beiträge: 5096
Wohnort: Westfalen

|
|
Ja, Doppelpunkte sind in SWIFT prinzipiell erlaubt, jedoch innerhalb eines Feldes (hier das Mehrzweckfeldes :86:) nicht zu Beginn eines Zeile bzw. nach CR+LF.
Ich sehe das so, das die Bank fehlerhaft liefert. Es sei denn, ich habe in den Swift-Rules innerhalb FinTS3 etwas übersehen. Hab ja nicht alles gelesen...
|
|
|
|
_________________ Dunkel, die andere Seite ist seeehr dunkel...
Yoda, halt die Fresse und iss deinen Toast!
|
|
|
    |
 |
|
|