Abrechnung: NullPointerException in AbrechnungSEPA.java

Hier melden JVerein-Benutzer ihre Fehler

Moderator: heiner

padawan
Beiträge: 11
Registriert: Sonntag 24. November 2013, 11:17

Abrechnung: NullPointerException in AbrechnungSEPA.java

Beitrag von padawan »

Hallo zusammen,

mit einigen Testdatensätzen habe ich gerade versucht, in der aktuellen Entwicklerversion 435 eine Abrechnung zu erstellen.
Ich erhalte dabei eine NullPointerExeption:

Code: Alles auswählen

[Sat Dec 07 19:39:14 CET 2013][DEBUG][de.willuhn.datasource.db.AbstractDBObject.transactionBegin] [begin] transaction count: 1
[Sat Dec 07 19:39:14 CET 2013][DEBUG][de.willuhn.util.ClassFinder.findImplementors] used time to search for implementors of de.jost_net.JVerein.rmi.Abrechnungslauf: 0 millis]
[Sat Dec 07 19:39:14 CET 2013][TRACE][de.willuhn.util.Session$SessionObject.<init>] added object "{faelligkeit2=date, stichtag=date, faelligkeit=date, modus=int, abbuchungsausgabe=int, zahlungsgrund=varchar, kursteilnehmer=BIT, eingabedatum=date, datum=date, zusatzbetraege=BIT, dtausdruck=BIT}" to session. timeout: 7200000 millis
[Sat Dec 07 19:39:14 CET 2013][DEBUG][de.willuhn.datasource.db.AbstractDBObject.getInsertSQL] executing sql statement: com.mysql.jdbc.PreparedStatement@d13ca8: insert into abrechnungslauf (faelligkeit2,stichtag,faelligkeit,modus,abbuchungsausgabe,zahlungsgrund,kursteilnehmer,eingabedatum,datum,zusatzbetraege,dtausdruck) values ('2013-12-09','2013-12-07','2013-12-12',1,1,'Jahresbeitrag',0,null,'2013-12-07',0,0)
[Sat Dec 07 19:39:14 CET 2013][DEBUG][de.willuhn.datasource.db.DBIteratorImpl.init] executing sql query: com.mysql.jdbc.PreparedStatement@410ef6: select konto.* from konto where nummer = 'XXX'
[Sat Dec 07 19:39:14 CET 2013][DEBUG][de.willuhn.datasource.db.DBIteratorImpl.init] executing sql query: com.mysql.jdbc.PreparedStatement@9fb2ed: select konto.* from konto where nummer = 'XXX'
[Sat Dec 07 19:39:14 CET 2013][DEBUG][de.willuhn.datasource.db.DBIteratorImpl.init] executing sql query: com.mysql.jdbc.PreparedStatement@7755da: select beitragsgruppe.* from beitragsgruppe where betrag = 0
[Sat Dec 07 19:39:14 CET 2013][DEBUG][de.willuhn.datasource.db.DBIteratorImpl.init] executing sql query: com.mysql.jdbc.PreparedStatement@b6fc14: select beitragsgruppe.* from beitragsgruppe where betrag > 0
[Sat Dec 07 19:39:14 CET 2013][DEBUG][de.willuhn.datasource.db.DBIteratorImpl.init] executing sql query: com.mysql.jdbc.PreparedStatement@188fe68: select mitglied.* from mitglied where adresstyp = 1 and (eintritt <= '2013-12-07' or eintritt is null)  and (austritt is null or austritt > '2013-12-07') and  beitragsgruppe <> 31 AND  beitragsgruppe <> 36 ORDER BY name, vorname
[Sat Dec 07 19:39:14 CET 2013][INFO][de.willuhn.jameica.gui.internal.parts.BackgroundTaskMonitor.check] creating progress monitor for GUI
[Sat Dec 07 19:39:14 CET 2013][INFO][de.willuhn.jameica.gui.internal.parts.BackgroundTaskMonitor$2.run] activating progress monitor
[Sat Dec 07 19:39:14 CET 2013][TRACE][de.willuhn.util.Session$SessionObject.<init>] added object "Image {33888268}" to session. timeout: 1800000 millis
[Sat Dec 07 19:39:14 CET 2013][DEBUG][de.willuhn.datasource.db.AbstractDBObject.transactionRollback] [rollback] transaction count: 0
[Sat Dec 07 19:39:14 CET 2013][DEBUG][de.willuhn.datasource.db.AbstractDBObject.transactionRollback] [rollback] transaction rollback
[Sat Dec 07 19:39:14 CET 2013][ERROR][de.jost_net.JVerein.gui.control.AbrechnungSEPAControl$7.run] error while reading objects from D:\abbuchung-20131207-193911.XML
java.lang.NullPointerException
	at de.jost_net.JVerein.io.AbrechnungSEPA.checkSEPA(AbrechnungSEPA.java:769)
	at de.jost_net.JVerein.io.AbrechnungSEPA.abrechnenMitglieder(AbrechnungSEPA.java:347)
	at de.jost_net.JVerein.io.AbrechnungSEPA.<init>(AbrechnungSEPA.java:118)
	at de.jost_net.JVerein.gui.control.AbrechnungSEPAControl$7.run(AbrechnungSEPAControl.java:461)
	at de.willuhn.jameica.gui.GUI$6.run(GUI.java:961)
Anhand der Quelltextstelle in der AbrechnungSEPA.java sieht es für mich so aus, als läge die Ursache irgendwo im Dunstkreis der automatischen Verwaltung der Mandatssequenz.

Habe ich JVerein falsch konfiguriert oder liegt hier ein generelles Problem vor?
Alle meine Mandate stehen noch auf FRST, da noch keine Abrechnung durchgeführt wurde.

Vorab vielen Dank & Gruß,
padawan
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Abrechnung: NullPointerException in AbrechnungSEPA.java

Beitrag von heiner »

Hallo padawan,

ich habe gerade ein neues Mitglied aufgenommen und anschließend die Abrechnung laufen lassen. Alles ohne Probleme. Wie hast du die Mitglieder aufgenommen? Importiert?

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
padawan
Beiträge: 11
Registriert: Sonntag 24. November 2013, 11:17

Re: Abrechnung: NullPointerException in AbrechnungSEPA.java

Beitrag von padawan »

Hallo Heiner,

genau, die Mitglieder sind importiert. Sehr guter Denkanstoß - nach einigem Suchen kann ich jetzt recht genau sagen, woran es wohl liegt:

Beim Import der Mitgliederdaten verbleibt die MANDATSEQUENCE in der Mitgliedertabelle auf NULL. Das GUI fängt das offensichtlich ab und zeigt FRST an, wenn das Mitglied dann ohne weitere Änderung gespeichert wird, wird auch auf der DB FRST abgelegt. Workaround also: Alle Mitglieder einmal öffen und Speichern - etwas mühsam :-). Ich habe in meiner Test-DB per SQL einfach alle Sequenzen auf FRST geändert und schon funktioniert die Abrechnung.
Der Ursache liegt also wohl eher im Import als in der Abrechnung - entweder müsste die Sequenz in der Importstruktur als Pflichtfeld vorgesehen oder aber beim Import per default auf FRST gesetzt werden.

Ich hoffe, dass meine "Analyse" hilfreich ist. Vielleicht schafft es der Fix ja noch in die stabile Version? :geek:

Grüße,
padawan
padawan
Beiträge: 11
Registriert: Sonntag 24. November 2013, 11:17

Re: Abrechnung: NullPointerException in AbrechnungSEPA.java

Beitrag von padawan »

Tag zusammen,

gerade ist mir aufgefallen, dass beim Import die Mandatversion ebenfalls NULL bleibt.

Grüße,
padawan
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Abrechnung: NullPointerException in AbrechnungSEPA.java

Beitrag von heiner »

Hallo padawan,

in der nächsten Version können Mandat_Sequence und Mandat_Version importiert werden.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
padawan
Beiträge: 11
Registriert: Sonntag 24. November 2013, 11:17

Re: Abrechnung: NullPointerException in AbrechnungSEPA.java

Beitrag von padawan »

Hallo Heiner,

super, vielen Dank für die prompte Fehlerbehebung!

Grüße,
padawan
padawan
Beiträge: 11
Registriert: Sonntag 24. November 2013, 11:17

Re: Abrechnung: NullPointerException in AbrechnungSEPA.java

Beitrag von padawan »

Hallo, nochmal ich,

rein interessehalber habe ich mir gerade angeschaut, wie Du den Import umgesetzt hast.

Code: Alles auswählen

MANDATSEQUENCE("Mandat_Sequence", true), //
MANDATVERSION("Mandat_Sequence", true), // 
[klugscheiss]
Müsste es in der 2. Zeile nicht Mandat_version heißen?
[/klugscheiss]

Grüße und nochmal Danke für das tolle Programm,
padawan
Frederic
Beiträge: 105
Registriert: Dienstag 10. Dezember 2013, 15:17
JVerein-Version: 2.8.18
Betriebssystem: Win Server 2019

Mandat_Version/IBAN bei Import (war Abrechnung: NullPointer.

Beitrag von Frederic »

padawan hat geschrieben:Müsste es in der 2. Zeile nicht Mandat_version heißen?
Das könnte gut sein. Ich wollte gerade einen Import machen, dafür habe ich in meiner CSV-Datei die Spalten Mandat_Sequence und Mandat_Version hinzugefügt, die für alle Datensätze mit FRST und 0 belegt sind (ist das überhaupt richtig so?).

Ich habe dann folgende Fehlermeldung erhalten:

Code: Alles auswählen

Fehler beim Importieren der Daten aus import, For input string: "FRST"
Auf dem Import-Dialog fällt mir auch auf, dass Mandat_Sequence doppelt erscheint, Mandat_Version aber nicht.
jverein-import.png
jverein-import.png (6.38 KiB) 7413 mal betrachtet
Daneben fällt mir auf, dass IBAN nun ein Pflichtfeld ist. Ich bin mir sicher, das war bei der letzten Version die ich davor getestet habe (müsste 429 gewesen sein) noch nicht der Fall, da wurde die Kontonummer akzeptiert und automatisch konvertiert.

Viele Grüße,
Frederic
Benutzeravatar
heiner
Administrator
Beiträge: 4509
Registriert: Freitag 30. Oktober 2009, 16:44
JVerein-Version: aktuelle Entwicklerversion
Betriebssystem: W10
Kontaktdaten:

Re: Abrechnung: NullPointerException in AbrechnungSEPA.java

Beitrag von heiner »

Hallo Frederic,

da gab es noch einen Bug im Import, den ich gerade gefixed habe. Ich schicke dir nachher eine Entwicklerversion per Mail. Melde dich bitte hier, ob alles in Ordnung ist.

Zur IBAN: Siehe http://www.jverein.de/wiki/index.php?title=Import
Die IBAN-Spalte muss exisitieren. Sie muss aber nur bei Mitgliedern mit dem Zahlungsweg Lastschrift gefüllt sein.

Heiner
PS: Denkt daran, eure Vereine unter viewforum.php?f=3 vorzustellen.
tobias
Beiträge: 24
Registriert: Samstag 7. Dezember 2013, 15:55
Verein: AUFnet e. V.
JVerein-Version: 2.4.2

Re: Abrechnung: NullPointerException in AbrechnungSEPA.java

Beitrag von tobias »

Hallo Heiner,

ist es sinnvoll, dass eine IBAN beim Import existieren muss?

Ich selber habe die Vereinsverwaltungssoftware kürzlich anlässlich der SEPA-Einführung gewechselt, weil das alte Programm nicht SEPA-fähig war. Mit Version 2.6 hätte ich meine Mitglieder garnicht so einfach migrieren können, sondern hätte vorab im CSV die Kontonummern ins neue Format konvertieren müssen.

Vermutlich wird es dem einen oder anderen Verein ähnlich gehen. Falls das in der Software nicht anders lösbar ist, sollte zumindest der Wiki-Eintrag zum Import entsprechend hilfreich angepasst werden: Entweder ein Hinweis, erst auf Version 2.4.2 zu gehen und nach dem Import zu aktualisieren, oder ein Hinweis auf bspw. den Sparkassen SEPA-Konverter mit Massenupdate über IBANHIN- und IBANRUECK-Datei noch im CSV.

Viele Grüße,
Tobias
Antworten