PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 7
Dabei seit: 05 / 2016
Betreff:

PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 04.05.2016 - 17:20 Uhr  ·  #1
Hallo,

ich habe jetzt bis zur ... versucht, die Umsätze von meinem PayPal-Konto mittels API abzufragen. Das Mashup-Script arbeitet auch einwandfrei. Aber bei dem Aufbereiten der Daten für Hibiscus kommt es zu folgender Fehlermeldung

Code
Exception beim Zusammenbau der Umsätze für die Übergabe nach Hibiscus


:(

Nach einigen Versuchen habe ich dann mal die Konsole mitlaufen lassen und folgendes gefunden:

Code

    [Tue May 03 14:34:29 CEST 2016][ERROR][de.derrichter.hibiscus.mashup.crossover.interact.DataWorker.syncDataAndAccount] Exception beim Zusammenbau der Umsõtze f³r die ▄bergabe nach Hibiscus
    java.rmi.RemoteException: insert failed, rollback successful; nested exception is:
            org.h2.jdbc.JdbcSQLException: Wert zu gross / lang f³r Feld "EMPFAENGER_KONTO VARCHAR(40) SELECTIVITY 15": "'billigkennzeichen-de@united-kennzeichen.de' (42)"
    Value too long for column "EMPFAENGER_KONTO VARCHAR(40) SELECTIVITY 15": "'billigkennzeichen-de@united-kennzeichen.de' (42)"; SQL statement:
    insert into UMSATZ (DATUM,ART,VALUTA,EMPFAENGER_KONTO,PRIMANOTA,BETRAG,KONTO_ID,ZWECK3,FLAGS,ADDKEY,ZWECK2,EMPFAENGER_NAME,SALDO,GVCODE,CUSTOMERREF,UMSATZTYP_ID,CHECKSUM,EMPFAENGER_BLZ,ZWECK,KOMMENTAR) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) [22001-172]
            at de.willuhn.datasource.db.AbstractDBObject.insert(AbstractDBObject.java:688)
            at de.willuhn.jameica.hbci.server.UmsatzImpl.insert(UmsatzImpl.java:122)
            at de.willuhn.datasource.db.AbstractDBObject.store(AbstractDBObject.java:308)
            at de.willuhn.jameica.hbci.server.AbstractHibiscusDBObject.store(AbstractHibiscusDBObject.java:110)
            at de.derrichter.hibiscus.mashup.crossover.interact.DataWorker.syncDataAndAccount(DataWorker.java:1044)
            at de.derrichter.hibiscus.mashup.crossover.websync.institute.paypal.ApiRunner.run(ApiRunner.java:189)
            at de.derrichter.hibiscus.mashup.crossover.websync.WebSynchronizeJobUmsaetze.execute(WebSynchronizeJobUmsaetze.java:75)
            at de.derrichter.hibiscus.mashup.crossover.websync.WebSynchronizeBackend$WebSyncJobGroup.sync(WebSynchronizeBackend.java:288)
            at de.willuhn.jameica.hbci.synchronize.AbstractSynchronizeBackend$Worker.run(AbstractSynchronizeBackend.java:388)
            at de.willuhn.jameica.gui.GUI$6.run(GUI.java:976)
    Caused by: org.h2.jdbc.JdbcSQLException: Wert zu gross / lang f³r Feld "EMPFAENGER_KONTO VARCHAR(40) SELECTIVITY 15": "'billigkennzeichen-de@united-kennzeichen.de' (42)"
    Value too long for column "EMPFAENGER_KONTO VARCHAR(40) SELECTIVITY 15": "'billigkennzeichen-de@united-kennzeichen.de' (42)"; SQL statement:
    insert into UMSATZ (DATUM,ART,VALUTA,EMPFAENGER_KONTO,PRIMANOTA,BETRAG,KONTO_ID,ZWECK3,FLAGS,ADDKEY,ZWECK2,EMPFAENGER_NAME,SALDO,GVCODE,CUSTOMERREF,UMSATZTYP_ID,CHECKSUM,EMPFAENGER_BLZ,ZWECK,KOMMENTAR) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) [22001-172]
            at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
            at org.h2.message.DbException.get(DbException.java:169)
            at org.h2.table.Column.validateConvertUpdateSequence(Column.java:317)
            at org.h2.table.Table.validateConvertUpdateSequence(Table.java:699)
            at org.h2.command.dml.Insert.insertRows(Insert.java:122)
            at org.h2.command.dml.Insert.update(Insert.java:86)
            at org.h2.command.CommandContainer.update(CommandContainer.java:79)
            at org.h2.command.Command.executeUpdate(Command.java:235)
            at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:154)
            at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:140)
            at de.willuhn.datasource.db.AbstractDBObject.insert(AbstractDBObject.java:649)
            ... 9 more


Da scheint die DB in der einen Spalte etwas zu kurz zu sein ... Leider ist das Empfängerkonto ja nun mal ein alphanummerischer String, und der wird bei PayPal gerne mal länger als 40 Zeichen :'(

Kann das bitte jemand heile machen? O-)
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10071
Dabei seit: 03 / 2005
Betreff:

Re: PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 09.05.2016 - 10:26 Uhr  ·  #2
Wende dich hierzu mal bitte an das Scripting-Forum unter http://scripting-forum.derrich…p?f=3&t=19
Sebastian kann dir da sicher helfen. Die Spalte "EMPFAENGER_KONTO" in der Tabelle "UMSATZ" laesst maximal 40 Zeichen zu. Das sollte eigentlich fuer alle Arten von Kontonummer reichen. Nun ist es aber so, dass bei Paypal die Mail-Adressen als "Kontonummern" verwendet werden. Und eine solche kann schonmal laenger als 40 Zeichen sein. In deinem Fall 42 Zeichen. Aus meiner Sicht waere es das einfachste, wenn Sebastian den Code des Paypal-Plugins so aendert, dass beim Einfuegen der Kontonummer geprueft wird, ob mehr als 40 Zeichen in der Mailadresse stehen und die ueberzaehligen ggf. abschneidet.
ich mag eigentlich ungern die Spalte der Tabelle selbst noch weiter vergroessern, weil ich mir nicht sicher bin, ob das unangenehme Nebeneffekte an anderer Stelle haben koennte.
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: hibiscus-mashup.de…
Beiträge: 383
Dabei seit: 06 / 2012
Betreff:

Re: PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 09.05.2016 - 14:33 Uhr  ·  #3
Hallo,

das Thema wurde schon bei mir angesprochen und da habe ich eben auf hier verwiesen.
(der Link oben (Release 2) ist ja nicht mehr aktuell, nun die Release 3 hier das Thema dazu: http://scripting-forum.derrich…f=34&t=241)

Nur finden wir beide dass eine Erweiterung des Datenbankfeldes die bessere Lösung wäre da dies für die Zukunft dann auch die PayPal-Transaktionen nicht verfälscht.

Zitat
Ansonsten müsste ich halt die Gegen-"Kontonummer" (Mail-Adresse) bei 40 Zeichen einfach kappen, was später schade wäre wenn dann PayPal-Transaktionen kommen ...


Es wäre für dich natürlich "einfacher" wenn ich nun die "Kontonummer" einfach abschneide nur "sauber" ist die Lösung dann auch nicht und verhindert dann z. B. Rückbuchungen bei ner PayPal-Zahlung, usw ...
Wenn ich dass dann realisiere ist es auch nicht einfacher wenn ich dann alle PayPal-Buchungen in eine extra Datenbank mit getrennter Verwaltung zu Hibiscus ablegen muss um alle Daten vollständig zu haben ...
Ist dann halt auch nur eine Bastellösung ...

Klasse wäre also eine Vergrößerung des Feldes auf z. B. 50 oder mehr, welche Probleme dies womöglich mit sich bringen könnte kann ich hier nun nicht erkennen ...

Gruß
msa
Benutzer
Avatar
Geschlecht:
Herkunft: München
Alter: 61
Beiträge: 7129
Dabei seit: 03 / 2007
Betreff:

Re: PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 09.05.2016 - 16:22 Uhr  ·  #4
Zitat geschrieben von Hibiscus-Scripter
Klasse wäre also eine Vergrößerung des Feldes auf z. B. 50 oder mehr, welche Probleme dies womöglich mit sich bringen könnte kann ich hier nun nicht erkennen ...

Das ist aber doch recht einfach: Das Feld Kontonummer ist eine bankfachliche Kontonummer, und diese gehorcht bestimmten Regeln. Das, was PayPal da macht, ist keine Kontonummer mehr und unterliegt eigentlich keinen Regeln. Somit müßte man das Feld ja eigentlich unendlich lang machen, denn was wäre, wenn die zugrundeliegende eMail-Adresse "Donaudampfschiffahrtskapitänswitwe.Helga.Andrea.Maria.Liselotte.Oberhinterniedermayer-Müller@staatliche-donau-dampschiffahrts-gesellschaft-mit-beschraenkter-Haftung-und-ohne-Sonstwas.xx" wäre? Dann reichen die 50 Stellen auch nicht mehr... (Ok. ich hab's jetzt nicht nachgezählt).

Und was das für Probleme machen könnte? Ich gehe davon aus, daß das Feld in der Anwendung derzeit einfach nur benutzt wird, wenn drauf zugegriffen wird, weil es ja nur bankfachlich stimmige Daten enthalten kann. Wenn man's einfach verlängert, dann tut es das nicht mehr, dann kann "irgendwas" drinstehen. Man müßte also die gesamte Anwendung durchgehen und jedes Mal, wo auf das Feld zugegriffen wird, erst irgendwelche Prüfungen durchfüren. Wenn man dann eine Stelle übersieht zum Ändern, dann kracht's. Von den Problemen der Anzeige und des Drucks von einem "endlosen" Feld wollen wir garnicht erst reden...
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10071
Dabei seit: 03 / 2005
Betreff:

Re: PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 09.05.2016 - 16:24 Uhr  ·  #5
Danke msa, fuer die Erlaeuterungen. Genau das meinte ich.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 7
Dabei seit: 05 / 2016
Betreff:

Re: PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 10.05.2016 - 19:48 Uhr  ·  #6
Hallo zusammen,

ok, unter diesen Bedingungen ist eine Verlängerung des Feldes in der DB wohl nicht so sinnvoll. Ich rege daher folgendes Vorgehen an:

  • Das Script für die PayPal-Abfrage anpassen, dass lediglich ein Wert mit einer max. Länge von 40 Zeichen in das Feld EMPFAENGER_KONTO geschrieben werden kann.
  • Sollte das Original des Empfänger-Kontos (Sprich die Mailadresse) von dem Inhalt von EMPFAENGER_KONTO abweichen (sprich: abgeschnitten worden sein), dann sollte der vollständige Wert der Mailadresse mit einem treffen Hinweis, z. B. "Empfänger: WERT" in den Bereich Bemerkungen (scheint ja eh' ein Lügenfeld zu sein) eingefügt werden. So kann man für Rücküberweisungen immer noch den vollständigen Empfänger auslesen.


Kann man so etwas damit anfangen? 8-)
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10071
Dabei seit: 03 / 2005
Betreff:

Re: PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 13.05.2016 - 09:33 Uhr  ·  #7
Nochmal zum Verstaendnis die konkreten Stellen, die in Folge daraus alle betroffen waeren und eventuell angepasst werden muessten:

- Umsatz kann im MT940-Format exportiert werden: Export muss geprueft werde. Ausserdem: Wenn die Datei in ein anderes Programm importiert wird, kann es dort knallen
- Umsatz kann in das Hibiscus-Adressbuch übernommen werden. Datenbankfeld dort ebenfalls ggf. erweitern und prüfen, dass diese "Kontonummer" dort zu keinem Fehler führt
- Aus dem Umsatz/Adressbuch-Eintrag kan eine neue Überweisung/Lastschrift/Sammelüberweisung/Sammellastschrift übernommen werden. Datenbankfelder ebenfalls erweitern? Prüfen, dass diese "Kontonummer" dort zu keinem Fehler führt. Ggf. verhindern, dass Aufträge mit solchen Kontonummern erzeugt werden können.
- Daten könnten im SEPA-XML-Format exportiert werden. Prüfen, dass kein invalides SEPA-XML entsteht oder Export solcher Daten abfangen
- IBAN-Auto-Formatierung und BIC-Erkennung sowie Konto/BLZ-Konvertierung in den entsprechenden Eingabefeldern in diesem Fall abschalten
- Sicherstellen, dass keine HBCI-Aufträge mit solchen Kontonummern erstellt werden können.

Das sind die Stellen, die mir jetzt spontan eingefallen sind. Vermutlich gibt es noch mehr.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 7
Dabei seit: 05 / 2016
Betreff:

Re: PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 16.05.2016 - 10:49 Uhr  ·  #8
Hallo,

Sebastian hat in seinem Script die entsprechende Änderung nach dem obigen Vorschlag vorgenommen. In der nightly-Version funktioniert das schon. Allerbesten Dank! Dieses Thema hier sehe ich damit als obsolet an.

Ich bedanke mich bei allen für die Unterstützung und Aufklärung!

@ hibiscus: Bitte das Thema ergänzen um "erledigt" und den Faden schließen. :police:
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 3
Dabei seit: 06 / 2016
Betreff:

Re: PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 11.06.2016 - 19:44 Uhr  ·  #9
Ich möchte kein nightly installieren. Mit den aktuellen offiziellen Versionen besteht das Problem nach wie vor.
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10071
Dabei seit: 03 / 2005
Betreff:

Re: PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 12.06.2016 - 09:17 Uhr  ·  #10
Dann wirst du wohl warten muessen, bis das naechste Release erscheint, oder?
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 3
Dabei seit: 06 / 2016
Betreff:

Re: PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 30.06.2016 - 15:55 Uhr  ·  #11
Darum geht es nicht. Das ist sowieso klar. Ich fand es nur verfrüht, den Thread zu schließen. Wir wissen jetzt aus den Nightlies, dass das Problem prinzipiell gelöst ist. Am Abschluss eines solchen Threads sollte einfach stehen, ab welchem offiziellem Release man den Fehler in seinen eigenen Einstellungen suchen sollte.

Mir war es wichtig allen Nutzern mitzuteilen, dass das Problem bezüglich der stable Releases noch besteht. Nicht mehr und nicht weniger. Der Status ist also "open". Und der Thread sollte es auch sein.
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: hibiscus-mashup.de…
Beiträge: 383
Dabei seit: 06 / 2012
Betreff:

Re: PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 30.06.2016 - 16:20 Uhr  ·  #12
jetzt reichts aber, der Thread wurde geschlossen weil zu der Zeit die Sable-Release mit enthaltener Lösung natürlich schon online war, dass kann man auch ganz einfach nachvollziehen und
auch das deine Anfrage im Scripting-Forum und hier einfach zeitlich danach gelegen hat und du vor solchen Mecker-Anfragen erst mal nach neuen Updates schauen solltest und hier nicht noch die Leute im falschen Forum damit nervst ...
Und dass habe ich dir per PM auch geschrieben! Was also soll das nun hier?!

Leute gibts, die gibts gar nicht ^^
und wer lesen kann ist immer im klaren Vorteil ...
http://scripting-updates.derri…ngeLog.txt (Release 0.7.10 - veröffentlicht weit vor deinen Belehrungen, so fast einen Monat!)

Man ist das peinlich für dich :P
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 3
Dabei seit: 06 / 2016
Betreff:

Re: PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 06.07.2016 - 18:30 Uhr  ·  #13
Keine Ahnung, woher der Forumsteilnehmer Hibiscus-Scripter wissen will, welche Versionen ich installiert habe. Zur Klarstellung hier das Kurzlog. Alles auf neuestem Stand. Und peinlich wäre mir das Posting von Hibiscus-Scripter in der Tat, wenn ich so etwas reingestellt hätte.

[06.07.2016 18:17:43] Synchronisierung via non-HBCI (Hibiscus Mashup) läuft
[06.07.2016 18:17:43]
[06.07.2016 18:17:43] System-Info: OS[Windows 10 (ver. 10.0) x86] Platform[Jameica 2.6.4 Build: 441] Plugin[hibiscus 2.6.17 Build: 361]
[06.07.2016 18:17:43] Installierte und aktive PlugIn-Versionen: [Finance.Websync ver. 0.7.12 - Build 185] [Hibiscus Mashup ver. 0.7.12 Build 150]
[06.07.2016 18:17:43] Überprüfe Java-Version und den verwendeten Zeichensatz ...
[06.07.2016 18:17:43] OK: Java-Version 1.8.0_91 von 'Oracle Corporation' installiert, aktiv und verwendet Zeichensatz 'Cp1252' (Home: E:\PortableApps\CommonFiles\java)
[06.07.2016 18:17:43] Überprüfe HTMLUnit-Version ...
[06.07.2016 18:17:43] OK: HTMLUnit-Version 2.22 installiert und aktiv
[06.07.2016 18:17:43]
[06.07.2016 18:17:43] Synchronisiere Konto: xxxxxxxxxxxxx [J.P. Morgan]
[06.07.2016 18:17:43] API-Authentifizierung mit Anmeldekennung xxxxxxxxx auf https://api-3t.paypal.com/nvp? ...
[06.07.2016 18:17:44] Rufe API-URLs auf und starte Aufbau des Kontoauszuges ...
[06.07.2016 18:17:44] Suche Umsätze im Zeitraum vom 06.05.2016 bis 06.07.2016 und lese diese aus ...
[06.07.2016 18:17:45] API-Transaktionssuche mit eingestelltem Intervall von '1000 Std.' gestartet ...
[06.07.2016 18:17:50] Kontoauszug erfolgreich. Importiere Daten ...
[06.07.2016 18:17:50] Exception beim Zusammenbau der Umsätze für die Übergabe nach Hibiscus
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 8112
Dabei seit: 08 / 2002
Betreff:

Re: PayPal-Konto: Umsatzabfrage bricht mit SQL-Exception ab

 · 
Gepostet: 06.07.2016 - 19:27 Uhr  ·  #14
da wir hier kaum Themen schließen und der Thread afaik nie geschlossen wurde, ist die Diskussion eigentlich überflüssig.
@hibiscus-scripter: Sebastian, mäßige bitte deinen Ton, den kannst du in deinem eigenen Forum pflegen, aber hier bleibe bitte freundlich. Ich habe keine Lust, ständig gemeldete Beiträge zu sichten.
Das hilft keinem und gilt im Übrigen für alle!
Gruß
Raimund
Gewählte Zitate für Mehrfachzitierung:   0