Bitte wähle nachfolgend aus, welche Beiträge auf dieser Themenseite auf dem Ausdruck ausgegeben werden sollen. Um dies zu tun markiere bitte die Checkbox auf der linken Seite der Posts, die im Ausdruck berücksichtigt werden sollen und klicke anschließend ganz unten auf der Seite auf den Button "Drucken".

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

desolat

Betreff:

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

 ·  Gepostet: 17.10.2015 - 13:22 Uhr  ·  #119926
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?

hibiscus

Betreff:

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

 ·  Gepostet: 18.10.2015 - 23:49 Uhr  ·  #119951
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.

GoOssi

Betreff:

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

 ·  Gepostet: 29.10.2015 - 10:44 Uhr  ·  #120144
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;
  }

hibiscus

Betreff:

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

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

Code

konten.addFilter("lower(iban) = ?", iban.toLowerCase()); // case insensitive

GoOssi

Betreff:

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

 ·  Gepostet: 29.10.2015 - 13:40 Uhr  ·  #120156
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; 

desolat

Betreff:

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

 ·  Gepostet: 01.11.2015 - 20:06 Uhr  ·  #120199
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.

GoOssi

Betreff:

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

 ·  Gepostet: 02.11.2015 - 04:36 Uhr  ·  #120201

desolat

Betreff:

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

 ·  Gepostet: 02.11.2015 - 20:55 Uhr  ·  #120216
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?

GoOssi

Betreff:

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

 ·  Gepostet: 10.11.2015 - 08:16 Uhr  ·  #120363

kugelsprung

Betreff:

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

 ·  Gepostet: 17.01.2016 - 21:54 Uhr  ·  #121798
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?

maf-soft

Betreff:

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

 ·  Gepostet: 02.07.2016 - 22:49 Uhr  ·  #125852
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?

hibiscus

Betreff:

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

 ·  Gepostet: 04.07.2016 - 10:52 Uhr  ·  #125869
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".

maf-soft

Betreff:

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

 ·  Gepostet: 04.07.2016 - 11:09 Uhr  ·  #125871
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?

maf-soft

Betreff:

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

 ·  Gepostet: 04.07.2016 - 11:16 Uhr  ·  #125873
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.

hibiscus

Betreff:

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

 ·  Gepostet: 04.07.2016 - 11:20 Uhr  ·  #125874
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.