Hibiscus: Inkompatibilitäten mit der Commerzbank

Kontonummer >10 Stellen, Saldo nur mit HKKAZ

 
S_O
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 6
Dabei seit: 10 / 2006
Betreff:

Hibiscus: Inkompatibilitäten mit der Commerzbank

 · 
Gepostet: 09.11.2011 - 23:47 Uhr  ·  #1
Hallo,
ich benutze Hibiscus problemlos mit meinem Sparkassen-Konto, jetzt habe ich HBCI auch für meine Commerzbank-Konten und es gibt ein paar Probleme mit Hibiscus:

1) HKSAL geht nur wenn innerhalb der letzten 90 Tage ein Umsatz auf dem Konto war, sonst gibt HKSAL einen Fehler zurück (Kein Saldo verfügbar). Die HBCI-Hotline sagte, der Kontostand könnte in dem Fall einfach über HKKAZ ermittelt werden.

2.) Das wurde hier schon öfter angesprochen, Kreditkarten-Konten gehen nicht wegen der maximal 10-stelligen Kontonummer. Ich habe die HBCI-Hotline gefragt, das Kreditkarten-Konto nutzt die Standard-HBCI-GVs wie für alle anderen Konten (hier stand irgendwo das wären andere GVs). Ich habe mir Hibiscus eben selbst kompiliert und das SOFT_LIMIT auf 30 gesetzt (das ist die maximale Länge die HBCI kann wenn ich das richtig aus der Spezifikation gelesen habe) und im Code überall außer bei den Prüfsummen HARD_LIMIT durch SOFT_LIMIT ersetzt (kann es sein das die Benennung andersrum mehr Sinn machen würde?). Ergebis: ES GEHT (nur Umsätze mit HKKAZ, HKSAL kann das Kreditkartenkonto nicht)!

Deshalb meine Frage:
1.) Könnte in der nächsten Version die max. Länge der Kontonummer auf 30 oder mindestens 16 erhöht werden? Ich möchte nicht jedesmal hibiscus selbst kompilieren und außerdem musste ich auch die Datenbank-Struktur ändern (Kontonummern jetzt 30 und nicht mehr 15 Stellen), weiß aber nicht wie ich meine existierende Datenbank umstelle...
Mag sein das es nicht bei jeder Bank dann mit der Kreditkarte geht, aber für die Commerzbank reicht das
2.) Kann Hibiscus so erweitert werden, dass es den Kontostand zur Not nur mit HKKAZ ermitteln kann ohne HKSAL? (Dann sollte auch das Kreditkartenkonto der Commerzbank vollständig funktionieren)


Nachtrag: Ich hab das mal mit HKKAZ Saldo gemacht (in der Datei HBCIUmsatzJob.java):
Code
        // Umsatz neu anlegen
        try
        {
          umsatz.store(); // den Umsatz haben wir noch nicht, speichern!
          Application.getMessagingFactory().sendMessage(new ImportMessage(umsatz));
          konto.setSaldo(umsatz.getSaldo());
          created++;
        }
        catch (Exception e2)
        {
          Application.getMessagingFactory().sendMessage(new StatusBarMessage(i18n.tr("Nicht alle empfangenen Umsätze konnten gespeichert werden. Bitte prüfen Sie das System-Protokoll"),StatusBarMessage.TYPE_ERROR));
          Logger.error("error while adding umsatz, skipping this one",e2);
        }
      }
      Logger.info("done. new entries: " + created + ", skipped entries (already in database): " + skipped);
      if (created>0)
      {
        konto.store();
        Application.getMessagingFactory().sendMessage(new SaldoMessage(konto));
        Logger.info("saldo updated using HKKAZ");
      }

Probleme könnte es damit geben wenn die Umsätze in der falschen Reihenfolge kommen oder alte Umsätze geladen werden obwohl es bereits neuere gibt. Weiß nicht ob es diese Fälle gibt, da sollte man aber sicher noch was einbauen zur Überprüfung. Aber das ist das was ich meine, wäre toll wenn sowas in der nächsten Version drin wäre!
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11329
Dabei seit: 03 / 2005
Betreff:

Re: Hibiscus: Inkompatibilitäten mit der Commerzbank

 · 
Gepostet: 10.11.2011 - 23:20 Uhr  ·  #2
zu 1) Die Meldung krieg ich bei meiner Bank auch. Allerdings nicht als Fehler sondern nur als Warnung. Wenn die Bank hier tatsaechlich einen Error-Code verwendet (der 4-stellige Code, der bei dir dann vermutlich mit 9 beginnt), ist das wirklich unschoen. Allerdings wuesste ich jetzt nicht, wie Hibiscus das korrekt behandeln soll. Wenns die Bank als Fehler meldet, zeig ichs in Hibiscus auch als solchen an.

zu 2) So pauschal kann ich das Limit nicht erhoehen, weil es auch Stellen gibt, wo wirklich nur max. 10 Stellen erlaubt sind (die Checksummen-Pruefung fuer Bankverbindungen geht z.Bsp. nur bis 10 Stellen). Ich muesste also eigentlich alle Referenzen von SOFT_LIMIT und HARD_LIMIT in Hibiscus analysieren und dann von Fall zu Fall die HBCI-Spec. pruefen, um zu entscheiden, wie hoch das Limit im konkreten Fall sein kann. Das ist ein ziemlicher Aufwand. Wenn du willst, kannst du im Bugzilla unter www.willuhn.de/bugzilla ja mal einen Bug-Report dafuer anlegen.

Zu deiner Aenderung in HBCIUmsatzJob.java: Das ist mir ehrlichgesagt etwas zu heiss. Direkt im Konto (und damit in der Datenbank) wuerde ich das nicht speichern. Man koennte aber ueberlegen, zumindest in der Anzeige den Saldo-Wert des letzten Umsatzes zu verwenden, falls fuer das Konto kein Umsatz bekannt ist.
S_O
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 6
Dabei seit: 10 / 2006
Betreff:

Re: Hibiscus: Inkompatibilitäten mit der Commerzbank

 · 
Gepostet: 11.11.2011 - 00:07 Uhr  ·  #3
Zitat
Die Meldung krieg ich bei meiner Bank auch. Allerdings nicht als Fehler sondern nur als Warnung. Wenn die Bank hier tatsaechlich einen Error-Code verwendet (der 4-stellige Code, der bei dir dann vermutlich mit 9 beginnt), ist das wirklich unschoen. Allerdings wuesste ich jetzt nicht, wie Hibiscus das korrekt behandeln soll. Wenns die Bank als Fehler meldet, zeig ichs in Hibiscus auch als solchen an.

Die Bank sendet einen Fehlercode 9050/9210 bzw. 9050/9010. Genau kann ich das aus dem Log nicht herauslesen, wenns wichtig ist anonymisiere ich das und poste es hier. Das ist wie gesagt systembedingt bei der Commerzbank so. Natürlich soll der Fehler weitergegeben werden, was ich meinte ist wenn HKSAL nicht geht, saldo mit HKKAZ versuchen zu ermitteln.

Zitat
Zu deiner Aenderung in HBCIUmsatzJob.java: Das ist mir ehrlichgesagt etwas zu heiss. Direkt im Konto (und damit in der Datenbank) wuerde ich das nicht speichern. Man koennte aber ueberlegen, zumindest in der Anzeige den Saldo-Wert des letzten Umsatzes zu verwenden, falls fuer das Konto kein Umsatz bekannt ist.
Das denke ich auch ist die bessere Lösung, kenne den Code aber nicht so genau, daher konnte ich das nicht so schnell machen.

Zitat
So pauschal kann ich das Limit nicht erhoehen, weil es auch Stellen gibt, wo wirklich nur max. 10 Stellen erlaubt sind (die Checksummen-Pruefung fuer Bankverbindungen geht z.Bsp. nur bis 10 Stellen). Ich muesste also eigentlich alle Referenzen von SOFT_LIMIT und HARD_LIMIT in Hibiscus analysieren und dann von Fall zu Fall die HBCI-Spec. pruefen, um zu entscheiden, wie hoch das Limit im konkreten Fall sein kann. Das ist ein ziemlicher Aufwand. Wenn du willst, kannst du im Bugzilla unter www.willuhn.de/bugzilla ja mal einen Bug-Report dafuer anlegen.

MAXLENGTH_SOFT wurde gar nicht verwendet, MAXLENGTH_HARD 11 mal, davon 5 mal im GUI (alle geändert), bleiben noch 6. Einmal für die Prüfsummen-Obergrenze und einmal als Untergrenze für IBAN-Länge (hier bleibt das alte Limit).
Die restlichen 4 die ich geändert habe:
-Als Obergrenze für Kontonummer in der Kontoklasse (KontoImpl.java)
-Als Obergrenze für Gegenkontonummer in der Transfer-Klasse (AbstractHibiscusTransferImpl.java)
-Das gleiche für Sammelbuchungen (AbstractSammelTransferBuchungImpl.java)
-Als Obergrenze der Kontonummer in einer Hibiscus-Adresse (HibiscusAdressImpl.java)

Damit gehen alle Kontonummern mit 30 stellen, habe probiert auf meine Kreditkarte was zu überweisen, die Bank nimmt die Überweisung aber nicht an und sendet einen Fehlercode.
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11329
Dabei seit: 03 / 2005
Betreff:

Re: Hibiscus: Inkompatibilitäten mit der Commerzbank

 · 
Gepostet: 11.11.2011 - 00:13 Uhr  ·  #4
Zitat geschrieben von S_O
Die Bank sendet einen Fehlercode 9050/9210 bzw. 9050/9010. Genau kann ich das aus dem Log nicht herauslesen, wenns wichtig ist anonymisiere ich das und poste es hier.

Ne, brauchste nicht. Das wird das schon sein.

Zitat geschrieben von S_O
Das ist wie gesagt systembedingt bei der Commerzbank so. Natürlich soll der Fehler weitergegeben werden, was ich meinte ist wenn HKSAL nicht geht, saldo mit HKKAZ versuchen zu ermitteln.


Allerdings wird es vermutlich nicht ohne weiteres moeglich sein, hier einen Automatismus einzubauen. Dazu muesste man im HBCI4Java-nahen Code von Hibiscus fuer diesen einen Fall ziemliche Ausnahme-Behandlungen einbauen, die nicht wirklich schoen waeren.

Zitat geschrieben von S_O
Zitat
Zu deiner Aenderung in HBCIUmsatzJob.java: Das ist mir ehrlichgesagt etwas zu heiss. Direkt im Konto (und damit in der Datenbank) wuerde ich das nicht speichern. Man koennte aber ueberlegen, zumindest in der Anzeige den Saldo-Wert des letzten Umsatzes zu verwenden, falls fuer das Konto kein Umsatz bekannt ist.
Das denke ich auch ist die bessere Lösung, kenne den Code aber nicht so genau, daher konnte ich das nicht so schnell machen.


Wenn du mir hierfuer einen Bug-Report im Bugzilla anlegst, koennte ich mir das mal anschauen, wenn ich dazu komme.

Zitat geschrieben von S_O
MAXLENGTH_SOFT wurde gar nicht verwendet


Doch. In:

- AbstractTransferControl#getEmpfaengerKonto
- AbstractSammelTransferBuchungControl#getGegenKonto
- EmpfaengerControl#getKontonummer
- HibiscusAddressImpl#insertCheck

Zusaetzlich eventuell noch in hibiscus.xmlrpc, hibiscus.soap und im Payment-Server. Hab ich jetzt nicht geprueft.

Wie gesagt, leg nen Bug-Report im Bugzilla an. Dort koennte man das dann naeher evaluieren.
Gewählte Zitate für Mehrfachzitierung:   0