Verwendungszweck abgeschnitten ":" Zeichenproblem?

Verwendungszweck abgeschnitten

teesee

Betreff:

Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 19.01.2009 - 19:10 Uhr  ·  #54714
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.

hibiscus

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 19.01.2009 - 19:22 Uhr  ·  #54715
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

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 19.01.2009 - 22:58 Uhr  ·  #54724
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.

hibiscus

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 19.01.2009 - 23:50 Uhr  ·  #54725
Zitat geschrieben von teesee
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.

Zitat geschrieben von teesee

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

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 20.01.2009 - 08:40 Uhr  ·  #54731
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.

teesee

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 20.01.2009 - 10:36 Uhr  ·  #54735
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?

hibiscus

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 20.01.2009 - 10:58 Uhr  ·  #54736
Zitat geschrieben von Captain FRAG
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

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 20.01.2009 - 11:07 Uhr  ·  #54737
Zitat geschrieben von teesee
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?

hibiscus

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 20.01.2009 - 11:53 Uhr  ·  #54739
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.

hibiscus

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 20.01.2009 - 15:47 Uhr  ·  #54741
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

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 20.01.2009 - 16:54 Uhr  ·  #54742
Das von der Bank erzeugte Swift dürfte kaputt sein:

Zitat geschrieben von FinTS.org
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...]

hibiscus

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 20.01.2009 - 17:08 Uhr  ·  #54743
Zitat geschrieben von Captain FRAG
Das von der Bank erzeugte Swift dürfte kaputt sein:


Da muss ich mir ja jetzt echt ein hämisches Grinsen verkneifen ;)

kleiner77

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 21.01.2009 - 19:15 Uhr  ·  #54790
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-

kleiner77

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 21.01.2009 - 19:22 Uhr  ·  #54791
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-

Captain FRAG

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 21.01.2009 - 21:44 Uhr  ·  #54807
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...

kleiner77

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 21.01.2009 - 22:59 Uhr  ·  #54810
Zitat geschrieben von Captain FRAG
Ja, Doppelpunkte sind in SWIFT prinzipiell erlaubt, jedoch innerhalb eines Feldes (hier das Mehrzweckfeldes :86:) nicht zu Beginn eines Zeile bzw. nach CR+LF.

Ah ja, dieses Detail habe ich in dem gezeigten "kaputten" SWIFT-Datenstrom übersehen. Daran wird es wohl in der Tat liegen - Doppelpunkt am Zeilenanfang ist tödlich :-)
Also schieben wir es doch erst mal wieder auf die (lange) Bank, bis wir ein Dementi haben :-)

-stefan-

Nemax

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 13.06.2010 - 13:47 Uhr  ·  #67731
Hallo,

ich habe aktuell das Problem, das, glaube ich, zu diesem Thread passt. Deshalb wollte ich fragen, ob es noch gelöst wird oder wie es hier weitergeht, oder ob ich damit leben werden muss.

In Jameica/Hibiscus wird der Verwendungszweck einer Buchung wie folgt angezeigt (Jameica 1.9.0, Hibiscus 1.11.0, Bank: Comdirect Bank):

Zitat
KUPON
ERTRAEGNISGUTSCHRIFT VOM 09
.06.10
DEPOTBESTAND


In dem Original-Comdirect-Webinterface wie folgt:

Zitat
ERTRAEGNISGUTSCHRIFT VOM 09.06.10
DEPOTBESTAND: 40,000
SALZGITTER AG AKTIEN O.N.
620200 EUR 0,25
Ref. xxxxxxxxxxxxxxxx/x


Anscheinend ist tatsächlich alles ab dem ersten Doppelpunkt abgeschnitten, obwohl dieser nicht an einem Zeilenanfang steht.

Eine weitere Frage wäre, wo der Zeilenumbruch mitten im Datum herkommt.

Habe schon das Loglevel auf DEBUG gestellt, aber erst, nachdem ich die Transaktion runtergeladen habe. Muss wohl bis zur nächsten Gutschrift (die hoffentlich bald kommt!) warten.

Grüße,
Nemax

kleiner77

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 14.06.2010 - 09:14 Uhr  ·  #67743
Der Zeilenwechsel kommt wohl daher, dass eine Verwendungszweckzeile nur 27 Zeilen lang sein darf. In den abgeholten Kontoauszügen steht der Verwendungszweck darum auf ZWEI Zeilen verteilt. Hibiscus kann nun nicht "wissen", dass diese zwei technischen Zeilen eigentlich eine logische Zeile sein sollten.

Warum die "DEPOTBESTAND"-Zeile nach dem Doppelpunkt abgeschnitten ist, kann nur geklärt werden, wenn wir im Logfile (DEBUG) sehen, wie eine solche Buchung von der Bank abgeholt wird (am besten per Mail oder PN).

-stefan-

kleiner77

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 15.07.2010 - 09:52 Uhr  ·  #68285
HBCI4Java enthält nun einen Workaround für die fehlerhaften ":" am Zeilenanfang. Wird voraussichtlich demnächst auch in Hibiscus verfügbar sein.

Danke für die Logfiles!

-stefan-

hibiscus

Betreff:

Re: Verwendungszweck abgeschnitten ":" Zeichenproblem?

 ·  Gepostet: 15.07.2010 - 11:22 Uhr  ·  #68289
Ist eingecheckt und morgen im Nightly-Build.