Hibiscus ignoriert Gegenkonto beim Import von Moneyplex XML

Vielleicht mit wenig Aufwand behebbar?

 
theMgt
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 3
Dabei seit: Gestern
Betreff:

Hibiscus ignoriert Gegenkonto beim Import von Moneyplex XML

 · 
Gepostet: Gestern um 18:38 Uhr  ·  #1
Hallo zusammen,

ich möchte von Moneyplex zu Hibiscus migrieren. Mir ist aufgefallen, dass Hibiscus beim Import via XML pro Buchung nur den Namen des Empfängers importiert. Die im XML ebenfalls vorhandene Kontonummer und BLZ des Gegenkontos wird offenbar ignoriert.

Das wurde auch schon mal gefragt, ging aber wohl unter.

Leider habe ich von Java keine Ahnung. An dieser Stelle sieht es so aus, als würde vom <EMPFAENGER> nur <NAME> behandelt.

Ich exportiere aus Moneyplex Version 25 Beta (Build L-24823) Umsätze im Format "XML-Export". Die stichprobenartig geprüften Daten haben folgendes Format (aus Datenschutzgründen habe ich Werte durch "-HIDE-" ersetzt):
Code

    <BUCHUNG>
        <DATUM>24.04.26</DATUM>
        <VALUTA>24.04.26</VALUTA>
        <EMPFAENGER>
            <NAME>AMAZON PAYMENTS EUROPE S.C.</NAME>
            <ZUSATZ>A.</ZUSATZ>
            <BIC>TUBDDEDD</BIC>
            <IBAN>DE87-HIDE-6</IBAN>
            <BANKNAME>HSBC Continental Europe, Germany, Düs..</BANKNAME>
        </EMPFAENGER>
        <ZWECK>EndtoEnd: -HIDE-  Lastschrift (Einzugsermaechtigung)</ZWECK>
        <BETRAG>-HIDE-</BETRAG>
        <WAEHRUNG>EUR</WAEHRUNG>
        <QUELLE>0</QUELLE>
    </BUCHUNG>


Wäre es viel Aufwand, den Import wie folgt anzupassen?
  • Wenn <ZUSATZ> vorhanden, dann dessen Inhalt hinten an NAME anhängen (Moneyplex splittet lange Empfängernamen auf zwei Felder auf und zeigt das selbst auch so an.)
  • Wenn <BIC> vorhanden, dann als Gegenkonto BLZ setzen
  • Wenn <IBAN> vorhanden, dann als Gegenkonto IBAN setzen

Laut Volltextsuche gibt es in der Datei UmsatzImpl.java analog zu setGegenkontoName() bereits Funktionen setGegenkontoNummer() und setGegenkontoBLZ(). Ich hoffe einfach mal, dass der Import mit wenig Aufwand ergänzt werden kann, und kann das dann auch gerne testen.

Vielleicht fehlt nur etwas in der Art?
Code

      umsatz.setGegenkontoName(getContent(empfaenger.getFirstChildNamed("NAME")) 
        + getContent(empfaenger.getFirstChildNamed("ZUSATZ")));
      umsatz.setGegenkontoNummer(getContent(empfaenger.getFirstChildNamed("IBAN")));
      umsatz.setGegenkontoBLZ(getContent(empfaenger.getFirstChildNamed("BIC")));
infoman
Benutzer
Avatar
Geschlecht:
Beiträge: 8263
Dabei seit: 06 / 2008
Betreff:

Re: Hibiscus ignoriert Gegenkonto beim Import von Moneyplex XML

 · 
Gepostet: Gestern um 18:58 Uhr  ·  #2
theMgt
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 3
Dabei seit: Gestern
Betreff:

Re: Hibiscus ignoriert Gegenkonto beim Import von Moneyplex XML

 · 
Gepostet: Gestern um 20:28 Uhr  ·  #3
Zitat geschrieben von infoman

die Vorab-Version für mehr Export-Möglichkeiten: https://matrica.de/wiki/index.php/Vorab-Version
danach CAMT-Export (siehe dein 1. Link)

Hallo infoman,
leider hilft mir deine Antwort kein bisschen.

Oben steht ja, dass ich bereits mit der Vorabversion von Moneyplex arbeite. Der CAMT-Export enthält keine Kategorien und schneidet alle Verwendungszwecke bei ~140 Zeichen ab. Ich möchte aber den ganzen Verwendungszweck und meine jahrelang zugewiesenen Kategorien behalten, daher möchte ich den XML-Export nutzen.

Mit diesem Thread möchte ich herausfinden, ob der XML-Import die vorhandenen Daten aus einem bestimmten Grund ignoriert und ob sich das ggf. einfach beheben lässt. Abgesehen vom ignorierten Gegenkonto ist das XML-Format aus meiner Sicht nämlich spätestens seit der Änderung von rhierlmeier (Danke!) perfekt für alle Umsteiger, die Kategorien behalten wollen und Buchungen mit langem Verwendungszweck haben.

Und es könnte ja sein, dass der aktuelle Aufbau der Moneyplex-XML-Datei dem/den Hibiscus-Entwickler/n gar nicht bekannt ist, und das Gegenkonto nur deshalb fehlt.
emmi
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 288
Dabei seit: 11 / 2012
Betreff:

Re: Hibiscus ignoriert Gegenkonto beim Import von Moneyplex XML

 · 
Gepostet: Gestern um 21:53 Uhr  ·  #4
Zitat geschrieben von theMgt

Oben steht ja, dass ich bereits mit der Vorabversion von Moneyplex arbeite. Der CAMT-Export enthält keine Kategorien und schneidet alle Verwendungszwecke bei ~140 Zeichen ab. Ich möchte aber den ganzen Verwendungszweck und meine jahrelang zugewiesenen Kategorien behalten, daher möchte ich den XML-Export nutzen.

Ja, wenn man die Kategorien behalten will, führt kein Weg an einem moneyplex XML-Export vorbei. CAMT ist ein - ich nenne es mal so - Bankformat und die Bank hat mit Kategorien nichts am Hut, vor allem nicht mit selbstdefinierten. Der Verwendungszweck ist in CAMT auf 140 Zeichen beschränkt. Ein Export von moneyplex muss abschneiden.

Ob ein Umweg über eine CSV-Datei hilft, weiss ich nicht. Es gibt ein perl-Skript, dass aus einer moneyplex XML-Datei eine CSV macht. Wenn man nun beim Import die richtigen Zuweisungen macht, könnte ich mir vorstellen, dass es klappt. (Habe ich genug Konjunktiv im Satz?)

Im banking4w Unterforum gibt es zahlreiche Infos und Tipps zum Export aus moneyplex.

PS: Ich hoffe, ich habe die Links richtig higekreigt, ansonsten muss man suchen.
hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 11563
Dabei seit: 03 / 2005
Betreff:

Re: Hibiscus ignoriert Gegenkonto beim Import von Moneyplex XML

 · 
Gepostet: Heute um 07:31 Uhr  ·  #5
Zitat geschrieben von theMgt

Das wurde auch schon mal gefragt, ging aber wohl unter.

Das war wohl in der Tat untergegangen oder ich hatte den Satz dort falsch verstanden. Mit deinem XML-Beispiel jetzt war es leicht zu verstehen und umzusetzen. Habe es ergänzt - https://github.com/willuhn/hib…1b22b571dc - ist morgen im Nightly-Build.
theMgt
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 3
Dabei seit: Gestern
Betreff:

Re: Hibiscus ignoriert Gegenkonto beim Import von Moneyplex XML

 · 
Gepostet: Heute um 17:02 Uhr  ·  #6
Zitat geschrieben von hibiscus

Habe es ergänzt

Das ging ja fix, vielen Dank!

Leider habe ich inzwischen noch eine Variante gefunden, siehe D) unten. Nicht erschrecken ;), das Nachfolgende dokumentiert vor allem die unterschiedlichen Varianten im XML-Export mit Beispielen - das meiste davon wird bereits korrekt importiert. Vielleicht kann damit jemand im Quellcode überprüfen, ob die Fälle A)-C) passend behandelt werden, und D) noch ergänzen.


Kleinster gemeinsamer Nenner - Folgende Tags sind bei mir in allen bisher gesichteten Buchungen enthalten:
Code

    <BUCHUNG>
        <DATUM>-HIDE-</DATUM>
        <EMPFAENGER>
        </EMPFAENGER>
        <ZWECK>-HIDE-</ZWECK>
        <WAEHRUNG>EUR</WAEHRUNG>
        <QUELLE>0</QUELLE>
    </BUCHUNG>


Alles andere ist wohl optional und ggf. bei einzelnen Buchungen nicht vorhanden.
=> Nicht vorhandene Tags sollen keine Fehlermeldung produzieren, sondern als leere Daten importiert werden.

A) Es gibt Buchungen, bei denen <EMPFAENGER> existiert, aber komplett leer ist. Beispielsweise Geldabhebungen am Automaten und Abrechnungsbuchungen der Bank (dort fehlt dann sogar <BETRAG>).
Code

    <BUCHUNG>
        <DATUM>22.04.12</DATUM>
        <EMPFAENGER>
        </EMPFAENGER>
        <ZWECK>-HIDE-</ZWECK>
        <BETRAG>-HIDE-</BETRAG>
        <WAEHRUNG>EUR</WAEHRUNG>
        <KATEGORIE>-HIDE-</KATEGORIE>
        <QUELLE>0</QUELLE>
    </BUCHUNG>

    <BUCHUNG>
        <DATUM>28.12.12</DATUM>
        <EMPFAENGER>
        </EMPFAENGER>
        <ZWECK>Abrechnung 28.12.2012Information zur AbrechnungKontostand am 28.12.2012-HIDE-Abrechnungszeitraum vom 01.10.2012 bis 31.12.2012Abrechnung 31.12.2012 0,00+Aktuelle Sollzinssätze amAbrechnungstag.14,3800 v.H. Überz-Zins am30.12.2012</ZWECK>
        <WAEHRUNG>EUR</WAEHRUNG>
        <QUELLE>0</QUELLE>
    </BUCHUNG>


B) Es gibt Buchungen, bei denen in <EMPFAENGER> nur <NAME> existiert. Betrifft bei mir Buchungen von 2014 und älter. (Diese werden bisher bereits korrekt importiert)
Code

    <BUCHUNG>
        <DATUM>27.04.12</DATUM>
        <EMPFAENGER>
            <NAME>ALDI SUED SAGT DANKE</NAME>
        </EMPFAENGER>
        <ZWECK>-HIDE-</ZWECK>
        <BETRAG>-HIDE-</BETRAG>
        <WAEHRUNG>EUR</WAEHRUNG>
        <KATEGORIE>-HIDE-</KATEGORIE>
        <QUELLE>0</QUELLE>
    </BUCHUNG>


C) Feld <ZUSATZ>
Wo landet denn setGegenkontoName2() - Hibiscus zeigt doch nur ein Feld "Name" an?

Offenbar hat Moneyplex und/oder die Banken den Empfänger/Zusatz in der Vergangenheit unterschiedlich gehandhabt. Ich habe von ein und demselben Vertrag im Laufe der Zeit
  • Buchungen, bei denen der überlange Empfänger in Moneyplex komplett im Feld Empfänger steht (~ seit 2019)
  • Buchungen, bei denen der überlange Empfänger in Moneyplex einfach gekürzt ist (Zusatz ist in GUI leer, ~2017-2019)
  • Buchungen, bei denen der hintere Teil des Empfängers in Moneyplex im Feld Zusatz steht (~ vor 2017)

In der Umsatzliste verkettet Moneyplex <NAME> und <ZUSATZ> mit einem einzelnen Leerzeichen.

Teilweise gehört dieses Leerzeichen dort nicht hin (ist dann mitten im Wort), teilweise aber schon. Sieht so aus, als hätte Moneyplex die beiden Teile vor dem Speichern getrimmt, und nicht bedacht dass es beim Verketten später einen Unterschied macht, ob die Teilung an einer Wortgrenze oder mitten im Wort erfolgte. Der Import kann das natürlich nicht reparieren, aber so importieren wie Moneyplex es zusammengesetzt anzeigte.

D) Tags <IBAN>, <BIC>, <KONTONR> und <BLZ>
Es gibt offenbar auch die Kombination <KONTONR> und <BLZ>.
Vorschlag:
Code

  Wenn <IBAN> vorhanden, dann für GegenkontoNummer nutzen, sonst: 
    wenn <KONTONR> vorhanden, dann für GegenkontoNummer nutzen, sonst:  
      GegenkontoNummer=Leerstring
und analog dazu
  Wenn <BIC> vorhanden, dann für GegenkontoBLZ nutzen, sonst: 
    wenn <BLZ> vorhanden, dann für GegenkontoBLZ nutzen, sonst:  
      GegenkontoBLZ=Leerstring

Beispiele für beide Varianten, beides Lastschriften, am gleichen Tag auf dem selben Konto
Code

    <BUCHUNG>
        <DATUM>24.04.19</DATUM>
        <VALUTA>24.04.19</VALUTA>
        <EMPFAENGER>
            <NAME>-HIDE-</NAME>
            <BLZ>76030080</BLZ>
            <KONTONR>-HIDE-</KONTONR>
            <BANKNAME>BNP Paribas Niederlassung Deutschland,..</BANKNAME>
        </EMPFAENGER>
        <ZWECK>-HIDE-Lastschrift (Einzugsermächtigung)</ZWECK>
        <BETRAG>-HIDE-</BETRAG>
        <WAEHRUNG>EUR</WAEHRUNG>
        <KATEGORIE>-HIDE-</KATEGORIE>
        <QUELLE>0</QUELLE>
    </BUCHUNG>
    <BUCHUNG>
        <DATUM>24.04.19</DATUM>
        <VALUTA>24.04.19</VALUTA>
        <EMPFAENGER>
            <NAME>-HIDE-</NAME>
            <BIC>EDEKDEHH</BIC>
            <IBAN>-HIDE-</IBAN>
            <BANKNAME>Edekabank, Hamburg</BANKNAME>
        </EMPFAENGER>
        <ZWECK>-HIDE-Lastschrift (Einzugsermächtigung)</ZWECK>
        <BETRAG>-HIDE-</BETRAG>
        <WAEHRUNG>EUR</WAEHRUNG>
        <KATEGORIE>-HIDE-</KATEGORIE>
        <QUELLE>0</QUELLE>
    </BUCHUNG>



E) Splittbuchungen
(werden bisher bereits korrekt importiert, nur der Vollständigkeit wegen aufgeführt)
Code

    <BUCHUNG>
        <DATUM>02.11.16</DATUM>
        <EMPFAENGER>
            <NAME>-HIDE-</NAME>
            <ZUSATZ>-HIDE-</ZUSATZ>
        </EMPFAENGER>
        <ZWECK>-HIDE-</ZWECK>
        <BETRAG>-HIDE-</BETRAG>
        <WAEHRUNG>EUR</WAEHRUNG>
        <QUELLE>0</QUELLE>
        <SPLITT>
            <PART>
                <ZWECK>-HIDE-</ZWECK>
                <BETRAG>-HIDE-</BETRAG>
                <KATEGORIE>-HIDE-</KATEGORIE>
            </PART>
            <PART>
                <ZWECK>-HIDE-</ZWECK>
                <BETRAG>-HIDE-</BETRAG>
                <KATEGORIE>-HIDE-</KATEGORIE>
            </PART>
        </SPLITT>
    </BUCHUNG>

Danke dass du dich von der Länge des Beitrages nicht hast abschrecken lassen :)
Gewählte Zitate für Mehrfachzitierung:   0