BoS Plugin bug mit Fix

 
emperor
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Deutschland
Beiträge: 3
Dabei seit: 09 / 2012
Betreff:

BoS Plugin bug mit Fix

 · 
Gepostet: 22.09.2012 - 17:53 Uhr  ·  #1
Hi, nachdem die BoS synchronisation nicht mehr ging hab ich mal in den Log geschaut und folgenden Fehler gesehen:
[Sat Sep 22 16:36:11 GMT+01:00 2012][ERROR][sun.reflect.NativeMethodAccessorImpl.invoke0] JavaException: de.willuhn.util.ApplicationException: Der Text "Zahlungseingang:UEBERTRAG TAGESGELD:" ist zu lang. Bitte geben Sie maximal 35 Zeichen ein

Na toll! Hab ich nun mal ein UE statt einem Ü verwendet und schon passt nichts mehr :D
Bin einfach ins Skript und den Fehler verhindert:
umsatz.setZweck(purp) dann einfach
umsatz.setZweck("Blubb") gemacht. Ja kann man schöner fixen indem man nur die ersten Buchstaben nimmt aber who cares.

Nun eine Frage von mir an den Jameica/Hibiscus-Author: Muss die assertion wirklich sein? Für 'manuell' angelegte Umsätze muss man diese Restriktion doch nicht unbedingt durchsetzen, würde da ein warning nicht völlig reichen?

Sonst aber top Programm, hat sich gut entwickelt!
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10838
Dabei seit: 03 / 2005
Betreff:

Re: BoS Plugin bug mit Fix

 · 
Gepostet: 23.09.2012 - 12:52 Uhr  ·  #2
Die Restriktion existiert, weil Hibiscus urspruenglich als reine HBCI-Software konzipiert war. Dass man mittels Scripting auch andere Konten anbinden kann, war da noch nicht vorgesehen. Koennte man in der Tat mal aendern.
emperor
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Deutschland
Beiträge: 3
Dabei seit: 09 / 2012
Betreff:

Re: BoS Plugin bug mit Fix

 · 
Gepostet: 24.09.2012 - 01:51 Uhr  ·  #3
Super, das ist wohl der beste Ort den Fehler zu verhindern. Dem BoS-Skript Author werde ich dann den Bug nicht melden, da er ja eh in Zukunft irgendwann verschwinden wird.
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10838
Dabei seit: 03 / 2005
Betreff:

Re: BoS Plugin bug mit Fix

 · 
Gepostet: 24.09.2012 - 08:22 Uhr  ·  #4
Zitat geschrieben von emperor
Dem BoS-Skript Author werde ich dann den Bug nicht melden, da er ja eh in Zukunft irgendwann verschwinden wird.


Der haette da ohnehin nichts machen koennen, weil das Script ja auch nur Hibiscus-Funktionen aufruft. ;)
UnHombre
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 11
Dabei seit: 03 / 2012
Betreff:

Re: BoS Plugin bug mit Fix

 · 
Gepostet: 24.09.2012 - 20:58 Uhr  ·  #5
Hallo,

habe auch mal einen Blick ins Log geworfen. Bei mir ist der Eintrag sogar 60 Zeichen lang, da er noch um das Datum ergänzt wird:

[Mon Sep 24 20:47:07 CEST 2012][ERROR][sun.reflect.NativeMethodAccessorImpl.invoke0] JavaException: de.willuhn.util.ApplicationException: Der Text "Zahlungseingang:TRANSFER ZUM BOSTAGESGELD:DATUM 05.04.2012 17.00 UHR" ist zu lang. Bitte geben Sie maximal 35 Zeichen ein

Wie ist der Lösungsansatz zu verstehen, was bewirkt er? Muss ich den Eintrag einfach austauschen? Selber kenne ich mich nur mit Fortran ;o) aus.
emperor
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Deutschland
Beiträge: 3
Dabei seit: 09 / 2012
Betreff:

Re: BoS Plugin bug mit Fix

 · 
Gepostet: 27.09.2012 - 16:14 Uhr  ·  #6
@hibiscus Er hätte einen Workaround machen können: Wenn zu lang, dann einfach abschneiden ;)

@UnHombre
Er bewirkt, dass Hibiscus einfach 'Blubb' als 'Verwendungszweck' speichert, weil Hibiscus denkt, dass zu lange Einträge fehlerhaft sind.

Dafür muss nur die Zeile
umsatz.setZweck(purp)
im Skript durch
umsatz.setZweck("Blubb")
ersetzt werden, kannst es natürlich auch gerne schlauer machen und einen substring bilden ;) - mir reicht es da mir der Verwendungszweck schnuppe ist.
UnHombre
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 11
Dabei seit: 03 / 2012
Betreff:

Re: BoS Plugin bug mit Fix

 · 
Gepostet: 06.10.2012 - 13:49 Uhr  ·  #7
Hallo,

ich habe mal versucht ein wenig "schöner" ;-) zu fixen. Habe vor der kritischen Zeile folgendes eingefügt:

if (purp.length() > 35){
purp = purp.substring(0,34)
}

Das Ganze funktioniert auch, es werden aber nicht alle Einträge ausgelesen. Es wird ja vermutlich das CVS-File, das man auch manuell herunterladen kann ausgewertet. Ich werde mal ab und an versuchen, draus klug zu werden.

Bei meinen Tests ist mir auch folgendes aufgefallen:

- Das BOS-Script benötigt ja die HTML-UNIT-LIB. Mit V2.10 geht überhaupt nichts, V2.8 und V2.9 scheinen OK zu sein.

- Neben einigen Warnungen gibt es zwei Fehler, dass zwei BOS-Java-Skripte nicht geladen werden können.

Kann hier ein Java-Versions-Konflikt vorliegen? Ich scheue mich ja noch davor Java 7 zu verwenden (6.35).

Grüße...
Hibiscus-Scripter
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: hibiscus-mashup.de…
Beiträge: 385
Dabei seit: 06 / 2012
Betreff:

danke

 · 
Gepostet: 08.04.2013 - 11:00 Uhr  ·  #8
danke

hab das ganze nun noch ein bisschen ausgebaut um den Verwendungszweck auch in seine einzelnen Bestandteile richtig aufzuteilen (z. B. "Art der Buchung")


hier der Code:

Code
  // ANFANG der Haupt-Modifikation für den "Verwendungszweck" und "Art der Buchung"
        /* geändert um Verwendungszweck zu teilen und automatisch zu kürzen */
        var purpvalues = purp.split(":"); //eg.: Zahlungseingang:Verwendungszweck 1:Verwendungszweck 2: usw ...
  // Definieren von "Art der Buchung": purpvalues[0]
  var purp0 = purpvalues[0];
  // setzen der Buchungsart mit String-Teil 0 von purpvalues
  if (purp0 != undefined){
    umsatz.setArt(purp0);
  }
        // Definieren von "Verwendungszweck 1": purpvalues[1]
        var purp1 = purpvalues[1];
        // Definieren von "Verwendungszweck 2": purpvalues[2]
        var purp2 = purpvalues[2];
  // Definieren von "Verwendungszweck 3": purpvalues[3]
        var purp3 = purpvalues[3];
        // Kürzen von "Verwenungszweck 1" auf 35 Zeichen und anschließendes setzen
        if (purp1 != undefined){
            if (purp1.length() > 35){ 
                purp1 = purp1.substring(0,34) 
            }
      umsatz.setZweck(purp1);
        }
  // Kürzen von "Verwenungszweck 2" auf 35 Zeichen und anschließendes setzen
        if (purp2 != undefined){
            if (purp2.length() > 35){ 
                purp2 = purp2.substring(0,34) 
            }
      umsatz.setZweck2(purp2);
        }
  // Kürzen von "Verwenungszweck 3" auf 35 Zeichen und anschließendes setzen
        if (purp3 != undefined){
            if (purp3.length() > 35){ 
                purp3 = purp3.substring(0,34) 
            }
      umsatz.setZweck3(purp3);
        }
        // ENDE der Haupt-Modifikation



oder einfach in dem neuen Thread meine neue Version runter laden da diese auch mit Umlauten umgehen kann ...

http://www.onlinebanking-forum…hp?t=15404


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

Re: BoS Plugin bug mit Fix

 · 
Gepostet: 08.04.2013 - 23:00 Uhr  ·  #9
"umsatz.setZweck3(purp3)" wird nicht funktionieren. Diese Funktion gibt es nicht. Nummeriert sind nur die ersten beiden Zeilen. Die fuer alle folgenden heisst:

Code
umsatz.setWeitereVerwendungszwecke(String[] lines)


Dort kann man also ein Array mit einer Liste von weiteren Verwendungszweck-Zeilen uebergeben. Allerdings weiss ich nicht, ob man direkt ein Javascript-Array uebergeben kann. Also etwa so:

Code

var lines = new Array("line3","line4","line5");
umsatz.setWeitereVerwendungszwecke(lines);


Unter Umstaenden muss man erst ein Java-Array erzeugen. Das koennte so funktionieren (ungetestet):

Code

// Das Package wird fuer "VerwendungszweckUtil" benoetigt
importPackage(Packages.de.willuhn.jameica.hbci.server);
umsatz.setWeitereVerwendungszwecke(VerwendungszweckUtil.parse(purp3));


Die "parse"-Funktion zerschneidet "purp3" in jeweils 27 Zeichen lange Haeppchen und liefert es als Java-Array zurueck.

In dem Zusammenhang: Hibiscus akzeptiert zwar 34 Zeichen bei den Verwendungszwecken. Erlaubt sind - zumindest in DTAUS - aber eigentlich nur 27. Die 7 Zeichen extra sind quasi sowas wie Toleranz-Bereich. Nach Moeglichkeit sollte man sich aber besser an die 27 Zeichen halten statt an 34.
Hibiscus-Scripter
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: hibiscus-mashup.de…
Beiträge: 385
Dabei seit: 06 / 2012
Betreff:

Re: BoS Plugin bug mit Fix

 · 
Gepostet: 08.04.2013 - 23:26 Uhr  ·  #10
na dann schonmal danke für die Info ;)

Werd ich dann in der nächsten Version umsetzen und gleich mal den Text anpassen.

Da hätte ich sowieso interessanterweise ein zwei Fragen an dich zu der ScriptingPlugin-Möglichkeit, da ich diese gerne logischerweise nutzen wollen würde um diese Bastelei bei der Installation von diesen Scripten entgegen zu wirken.

Wo kann ich dir diese am besten stellen (da ich denke hier im Forum eher fehl am Platz?) per E-Mail?
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10838
Dabei seit: 03 / 2005
Betreff:

Re: BoS Plugin bug mit Fix

 · 
Gepostet: 08.04.2013 - 23:28 Uhr  ·  #11
Doch, doch. Ich denke, das passt schon hier im Forum. Das interessiert ja vielleicht auch andere User, die an eigenen Scripts schreiben. Die wichtigen sich daraus ergebenden Infos kann man ja dann ins Wiki uebertragen.
Gewählte Zitate für Mehrfachzitierung:   0