Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 4
Dabei seit: 01 / 2008
Betreff:

Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 17.10.2015 - 13:22 Uhr  ·  #1
Hallo, folgendes Problem mit Jameica 2.6.0 und Hibiscus 2.6.14. Ich habe ein Konto (bei ebase) als Offline-Konto mit Kontonummer, BLZ, IBAN und BIC angelegt und die Synchronisierungsoption "Passende Gegenbuchungen automatisch anlegen" aktiviert. Trotzdem wurde genau dies nicht ausgeführt.

Weiß jemand, anhand welcher Kriterien Hibiscus die Buchungen zuordnet und ob man mit (erweitertem) Logging dem Problem auf den Grund gehen kann?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10151
Dabei seit: 03 / 2005
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 18.10.2015 - 23:49 Uhr  ·  #2
Damit automatisch die Gegenbuchung angelegt wird, muessen folgende Kriterien erfuellt sein:

1) Das Ziel-Konto muss als Offline-Konto markiert sein
2) Das Konto mit dem originalen Umsatz muss ein Online-Konto sein.
3) Der Umsatz auf dem Online-Konto muss eine valutierte Buchung sein (also keine in grauer Textfarbe angezeigte Vormerkbuchung)
4) In der Buchung auf dem Online-Konto muss eine Gegenkontonummer angegeben sein. In dem korrekten Feld (im Verwendungszweck reicht nicht). Entweder eine IBAN oder Kontonummer und BLZ.
5) Im Offline-Konto muessen sich genau diese Daten finden.
6) In den Synchronisierungsoptionen des Offline-Kontos muss die Option "Passende Gegenbuchungen automatisch anlegen" aktiviert sein

Ich nehme an, dass eines dieser Kriterien nicht erfuellt ist.
Benutzer
Avatar
Geschlecht:
Beiträge: 37
Dabei seit: 10 / 2015
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 29.10.2015 - 10:44 Uhr  ·  #3
Bei mir geht es auch nicht.
In der Buchung ist eine IBAN als Gegenkonto angegeben. Ich nehme an das es deshalb nicht geht weil in folgender Funktion nichts mit der IBAN, bezüglich Vergleich und so, gemacht wird:

Code
public static Konto findByIBAN(String iban, int flag) throws RemoteException
  {
    iban = StringUtils.trimToNull(iban);
    if (iban == null)
      return null;
    
    DBService service = de.willuhn.jameica.hbci.Settings.getDBService();
    DBIterator konten = service.createList(Konto.class);
    konten.addFilter("lower(iban) = ?", iban.toLowerCase()); // case insensitive
    while (konten.hasNext())
    {
      Konto test = (Konto) konten.next();
      int current = test.getFlags();

      if (flag == Konto.FLAG_NONE)
      {
        // Nur Konten ohne Flags zugelassen
        if (current != flag)
          continue;
      }
      else if (flag > 0)
      {
        // Ein Flag ist angegeben. Dann kommt das Konto nur
        // in Frage, wenn es dieses Flag besitzt
        if ((current & flag) != flag)
          continue;
      }
      
      return test;
    }
    
    return null;
  }


Bei der KontoNummer wird das gemacht:
Code
   * Sucht das Konto in der Datenbank.
   * Die Funktion entfernt bei der Suche selbstaendig fuehrende Nullen in
   * Kontonummern.
   * @param kontonummer die Kontonummer.
   * @param blz die BLZ.
   * @param flag das Flag, welches das Konto besitzen muss.
   * @return das gefundene Konto oder NULL, wenn es nicht existiert.
   * @throws RemoteException
   */
  public static Konto find(String kontonummer, String blz, int flag) throws RemoteException
  {
    if (kontonummer == null || kontonummer.length() == 0)
      return null;
    if (blz == null || blz.length() == 0)
      return null;
    
    // BUGZILLA 365
    // Fuehrende Nullen schneiden wir ab
    if (kontonummer.startsWith("0"))
      kontonummer = kontonummer.replaceAll("^0{1,}","");

    // Kontonummer bestand offensichtlich nur aus Nullen ;)
    if (kontonummer.length() == 0)
      return null;
    
    DBService service = de.willuhn.jameica.hbci.Settings.getDBService();
    DBIterator konten = service.createList(Konto.class);
    konten.addFilter("kontonummer like ?", new Object[]{"%" + kontonummer});
    konten.addFilter("blz = ?", new Object[]{blz});
    while (konten.hasNext())
    {
      // Fuehrende Nullen abschneiden und dann vergleichen
      Konto test = (Konto) konten.next();
      int current = test.getFlags();

      if (flag == Konto.FLAG_NONE)
      {
        // Nur Konten ohne Flags zugelassen
        if (current != flag)
          continue;
      }
      else if (flag > 0)
      {
        // Ein Flag ist angegeben. Dann kommt das Konto nur
        // in Frage, wenn es dieses Flag besitzt
        if ((current & flag) != flag)
          continue;
      }
      
      String kTest = test.getKontonummer();
      if (kTest == null || kTest.length() == 0)
        continue;
      if (kTest.startsWith("0"))
        kTest = kTest.replaceAll("^0{1,}","");
      
      // Mal schauen, ob die Kontonummern jetzt uebereinstimmen
      if (kTest.equals(kontonummer))
        return test;
    }
    
    return null;
  }
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10151
Dabei seit: 03 / 2005
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 29.10.2015 - 11:18 Uhr  ·  #4
Doch, das Konto mit der richtigen IBAN wird hier gesucht:

Code

konten.addFilter("lower(iban) = ?", iban.toLowerCase()); // case insensitive
Benutzer
Avatar
Geschlecht:
Beiträge: 37
Dabei seit: 10 / 2015
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 29.10.2015 - 13:40 Uhr  ·  #5
Ich denke mal das ist so eine Art WHERE-Bedingung.

Die einzelnen Konten bekommen wir über diese Codezeile:
Code
 Konto test = (Konto) konten.next();


Den Vergleich bei den Kontonummern bekommen wir hierdurch:
Code
String kTest = test.getKontonummer();


und daduch:
Code
     
 // Mal schauen, ob die Kontonummern jetzt uebereinstimmen
      if (kTest.equals(kontonummer))
        return test; 
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 4
Dabei seit: 01 / 2008
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 01.11.2015 - 20:06 Uhr  ·  #6
Hallo, ich habe alle 6 Kriterien nochmals geprüft, alle treffen zu. Allerdings bekomme ich keine Offline-Buchungen. Ich habe aktuell 2 Offline-Konten angelegt, bei beiden werden keine Offline-Buchungen automatisch angelegt. Ich sehe gerade, dass OssiGo dazu schon einen Bugeintrag angelegt hat. Wenn ich noch was beitragen kann... Ansonsten warte ich auf eine Nightly-Version.
Benutzer
Avatar
Geschlecht:
Beiträge: 37
Dabei seit: 10 / 2015
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 02.11.2015 - 04:36 Uhr  ·  #7
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 4
Dabei seit: 01 / 2008
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 02.11.2015 - 20:55 Uhr  ·  #8
Zitat geschrieben von OssiGo

Hast du auch ein, davon unabhängiges, Scripting-Konto?


Ja, habe ich (VW Bank Tagesgeld). Wird beim Synchronisieren neben dem Online-Girokonto auch mit abgerufen (Saldo und Umsätze). Siehst du da einen Zusammenhang?
Benutzer
Avatar
Geschlecht:
Beiträge: 37
Dabei seit: 10 / 2015
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 10.11.2015 - 08:16 Uhr  ·  #9
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 9
Dabei seit: 08 / 2011
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 17.01.2016 - 21:54 Uhr  ·  #10
Gibt es inzwischen einen Fix der die Gegenbuchungen wieder funktionstüchtig macht, ohne dass die Nightly Builts installiert werden müssen? Hilft es bei dem Offline-Konto die IBAN in das Feld "Kontonummer" eintragen?
Benutzer
Avatar
Geschlecht:
Beiträge: 158
Dabei seit: 11 / 2010
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 02.07.2016 - 22:49 Uhr  ·  #11
Zitat geschrieben von kugelsprung
Hilft es bei dem Offline-Konto die IBAN in das Feld "Kontonummer" eintragen?

Die lässt sich da gar nicht eintragen.

Bei mir funktioniert es auch nicht, obwohl m.E. alle Kriterien erfüllt sind:

Software-Version: 2.7.0-nightly
Datenbank-Version: 59
Build: 1283 [Datum 20160620]

Beim Online-Konto kommt eine Buchung rein, in den Details ist im Feld "Kontonummer" die IBAN zu sehen.

Beim Offline-Konto ist diese IBAN eingetragen. Allerdings stimmt der automatisch eingefügte BIC nicht nicht mit dem in der Buchung überein. Ich habe es aber nach Backup-Wiederherstellen auch schon versucht, das zu ändern, ohne Erfolg.

Gegenbuchungen-Häkchen ist natürlich gesetzt.

Woran kann es noch liegen?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10151
Dabei seit: 03 / 2005
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 04.07.2016 - 10:52 Uhr  ·  #12
Zitat geschrieben von maf-soft

Zitat geschrieben von kugelsprung
Hilft es bei dem Offline-Konto die IBAN in das Feld "Kontonummer" eintragen?

Die lässt sich da gar nicht eintragen.


Da gehört sie auch nicht hin sondern in das Feld "IBAN".
Benutzer
Avatar
Geschlecht:
Beiträge: 158
Dabei seit: 11 / 2010
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 04.07.2016 - 11:09 Uhr  ·  #13
Zitat geschrieben von hibiscus
Da gehört sie auch nicht hin sondern in das Feld "IBAN".
Das wussten alle Beteiligten schon. Kugelsprung fragte nur, ob es sich lohne, als workaround zu probieren, ob man die IBAN zusätzlich im Feld "Kontonummer" eintragen könnte. In den Buchungsdetails steht sie da schließlich auch. Auf die Idee kam auch ich, aber das Eingabefeld akzeptiert das gar nicht.

Also besteht mein Problem weiterhin. Hast du einen Tipp, was ich versuchen soll? Wonach in welcher Logdatei gucken? Oder welches Kriterium könnte noch fehlen?
Benutzer
Avatar
Geschlecht:
Beiträge: 158
Dabei seit: 11 / 2010
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 04.07.2016 - 11:16 Uhr  ·  #14
EDIT: Ich habe geprüft, dass nur ein passendes Offline-Konto existiert.

Um weiteren Missverständnissen vorzubeugen:
Zitat geschrieben von maf-soft
Beim Offline-Konto ist diese IBAN eingetragen. Allerdings stimmt der automatisch eingefügte BIC nicht nicht mit dem in der Buchung überein. Ich habe es aber nach Backup-Wiederherstellen auch schon versucht, das zu ändern, ohne Erfolg.

Damit meinte ich: ich habe ein Backup wiederhergestellt, damit die Buchung nochmal rein kommt. (EDIT: Jetzt weiß ich, ich könnte auch einen XML-Import machen. Das werde ich beim nächsten Test probieren)
Dann habe ich genau die BIC eingetragen, die auch mit der Buchung mitkommt: SLZODE22XXX. (Ich weiß, irgendwo steht, dass nur die IBAN verglichen wird, aber man weiß ja nie)
Das hat aber nichts gebracht: die Gegenbuchung erscheint nicht.

Soabald ich in das Feld IBAN klicke, wird wieder die automatische BIC eingetragen: BRLADE21LZO
Welche richtig ist, und warum sie sich unterscheiden, wäre auch Untersuchungsgegenstand, aber hier nicht mein Problem.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10151
Dabei seit: 03 / 2005
Betreff:

Re: Offline-Konto: Passende Gegenbuchungen automatisch anlegen wird nicht ausgeführt

 · 
Gepostet: 04.07.2016 - 11:20 Uhr  ·  #15
Zitat geschrieben von maf-soft

Also besteht mein Problem weiterhin. Hast du einen Tipp, was ich versuchen soll? Wonach in welcher Logdatei gucken? Oder welches Kriterium könnte noch fehlen?


Stelle das Log-Level unter Datei->Einstellungen auf "DEBUG". Dann werden in der jameica.log entsprechende Log-Informationen erzeugt anhand derer erkannt werden kann, aus welchen Gruenden eine automatische Gegenbuchung nicht erzeugt wurde. Unter https://github.com/willuhn/hib…sumer.java findet sich der zugehoerige Quellcode. Mit "Logger.debug("..." beginnen all jene Zeilen, die die relevanten Log-Ausgaben erzeugen.
Gewählte Zitate für Mehrfachzitierung:   0