Automatischer Personenimport

Diskussion, Fragen, Anregungen und Wünsche zu efa2

Moderatoren: nick, smg

Forumsregeln
Verfasse bitte die Beiträge in den passenden Kategorien und gib ihnen einen aussagekräftigen Betreff.
Antworte bitte nur zum Thema und beginne ein neues Thema, falls Du noch etwas Zusätzliches sagen möchtest.
Antworten
nilpfu
Beiträge: 26
Registriert: Mi 5. Okt 2011, 11:27

Automatischer Personenimport

Beitrag von nilpfu » Di 25. Mär 2014, 22:54

Hallo zusammen,
um die Mitgliederliste in efa ständig aktuell zu halten, kann ich die jeweils aktuelle Mitgliederliste via wget von unserem Server laden. Nun würde ich gerne z.B. jeden Monat automatisch via cron die Daten vom Server laden und mit efaCLI in efa einbinden. Um z.B. aber auch Austritte von Mitgliedern zu berücksichtigen, müsste ich nach meinem bisherigen Verständnis zunächst alle Personen in der Mitgliederliste löschen und anschließend ein Import aus neuen Mitgliederliste durchführen. Beides könnte man über Gültigkeitszeiträume lösen, die sich direkt aneinander anschließen. Hat jemand von euch schon etwas ähnliches umgesetzt oder gibt es evtl. sogar noch eine einfachere Lösung?

Vielen Dank für eure Hilfe und viele Grüße
Nils

nick
Beiträge: 1300
Registriert: Sa 10. Jul 2010, 11:45

Re: Automatischer Personenimport

Beitrag von nick » Do 24. Apr 2014, 07:31

Hallo Nils,

du kannst beim Import deiner Mitgliederliste auch das InvalidFrom Feld importieren, welchen einen (Unix-)Zeitstempel enthält, ab wann der importierte Datensatz ungültig ist. Auf diese Weise kannst du beim Austritt von Mitgliedern das Ende deren Gültigkeitszeitraums auf das Austrittsdatum setzen und in efa importieren, womit efa die Person dann (ab dem Austrittsdatum) als ungültig ansieht.

Gruß,
Nick

nilpfu
Beiträge: 26
Registriert: Mi 5. Okt 2011, 11:27

Re: Automatischer Personenimport

Beitrag von nilpfu » So 15. Jun 2014, 20:41

Hallo Nick,
vielen Dank schonmal für die Hilfe. Ich habe mir jetzt eine entsprechende Export-Datei aus unser Datenbank erzeugt und kann die manuell auch ohne Fehler in efa2 importieren. (d.h. über Admin->Personen->Import). Wenn ich jetzt den gleichen Weg über efaCli versuche, bekomme ich bei jedem Eintrag eine java NullPointer Exception. Hast Du eine Idee woran das liegen könnte? Habe schonmal dem efaCli Admin alle Rechte zugewiesen, um ein Rechteproblem auszuschließen. Das war aber leider erfolglos. Die Import-Datei sollte eigentlich fehlerfrei sein, da der import "per Hand" ja fehlerfrei funktioniert.

Bis sehr dankbar für Lösungsansätze!

Viele Grüße und vielen Dank
Nils

nick
Beiträge: 1300
Registriert: Sa 10. Jul 2010, 11:45

Re: Automatischer Personenimport

Beitrag von nick » So 15. Jun 2014, 23:01

Hallo Nils,

könntest du die gesamte Fehlermeldung bitte hier im Forum posten? Die Fehlermeldung beinhaltet Zeilennummern im Quelltext, anhand derer ich den Fehler vermutlich schnell lokalisieren kann.

Danke & Gruß,
Nick

nilpfu
Beiträge: 26
Registriert: Mi 5. Okt 2011, 11:27

Re: Automatischer Personenimport

Beitrag von nilpfu » Mo 16. Jun 2014, 18:13

Hallo Nick,
kein Problem, hier findest Du die komplette Ausgabe auf der Konsole:

Code: Alles auswählen

efa@efalive:/usr/lib/efa2$ /usr/lib/efa2/efaCLI.sh cli@localhost/reimport_2 -cmd "persons import -encoding=UTF8 -csvsep=| -impmode=addupdate -updversion=update /home/efa/efa_personen.csv"
[2014-06-16_18:08:53 /usr/lib/efa2/runefa.sh] script running ...
[2014-06-16_18:08:53 /usr/lib/efa2/runefa.sh] starting de.nmichael.efa.cli.Main ...
INFO    - EVT001 - PROGRAMMSTART
INFO    - INF002 - Version efa: 2.2.0_00 -- Java: 1.6.0_31 (JVM 23.25-b01) -- OS: Linux 3.2.0-4-486
INFO    - CLI001 - Connecting as cli to localhost:3834 ...
INFO    - CLI001 - Connected.
INFO    - CLI001 - Opening Remote Project reimport_2 ...
INFO    - CLI001 - Remote Project opened.
INFO    - CLI001 - 
ERROR: Import von Datensatz [#Id#=f3b47dc4-022a-454f-8e17-934d222c728d;FirstName=XXXX;LastName=XXXX;Gender=MALE;Birthday=XXXX;StatusId=c07768ca-411f-4594-88de-da3690b4e234;MembershipNo=11810;#ValidFrom#=946681200000;InvalidFrom=9223372036854775807] fehlgeschlagen: java.lang.NullPointerException
INFO    - CLI001 - 
ERROR: Import von Datensatz [#Id#=93bdbe40-fd4e-451d-9d67-c940fa0e390a;FirstName=XXXX;LastName=XXXX;Gender=MALE;Birthday=XXXX;StatusId=c07768ca-411f-4594-88de-da3690b4e234;MembershipNo=1180;#ValidFrom#=946681200000;InvalidFrom=9223372036854775807] fehlgeschlagen: java.lang.NullPointerException
^C
Ich hoffe das hilft Dir weiter.

Vielen Dank und viele Grüße
Nils

nick
Beiträge: 1300
Registriert: Sa 10. Jul 2010, 11:45

Re: Automatischer Personenimport

Beitrag von nick » Di 17. Jun 2014, 08:40

Hallo Nils,

danke, ich habe den Fehler in Version 2.2.0_06 korrigiert.

Gruß,
Nick

nilpfu
Beiträge: 26
Registriert: Mi 5. Okt 2011, 11:27

Re: Automatischer Personenimport

Beitrag von nilpfu » Di 17. Jun 2014, 18:31

Hallo Nick,
vielen Dank für den extrem schnellen Fix. Ich bekomme jetzt auch keine Error-Meldungen mehr und der Import funktioniert auch. Allerdings ist mir aufgefallen, dass der Import via efaCLI deutlich langsamer als über die grafische Oberfläche "per Hand" ist. z.B. braucht der Import über die grafische Oberfläche für ca. 460 Mitglieder unter 3 Sekunden. Per efaCLI hingegen werden innerhalb von 30 Sekunden lediglich ca. die ersten 20 Mitglieder importiert. Die Rückmeldung von efaCLi sieht bei mir so aus:

Code: Alles auswählen

[2014-06-17_18:20:05 /usr/lib/efa2/runefa.sh] script running ...
[2014-06-17_18:20:05 /usr/lib/efa2/runefa.sh] starting de.nmichael.efa.cli.Main ...
INFO    - EVT001 - PROGRAMMSTART
INFO    - INF002 - Version efa: 2.2.0_06 -- Java: 1.6.0_31 (JVM 23.25-b01) -- OS: Linux 3.2.0-4-486
INFO    - CLI001 - Connecting as cli to localhost:3834 ...
INFO    - CLI001 - Connected.
INFO    - CLI001 - Opening Remote Project reimport_2 ...
INFO    - CLI001 - Remote Project opened.

d.h. zuerst habe ich mich gefragt, ob Daten importiert werden und dann obiges Verhalten festgestellt. Aktuell würde ich per bash einfach warten bis efaCLI 0 als Returncode zurückliefert. Zumindest für debugging-Zwecke wäre es aber vielleicht hilfreich zu sehen, dass der Import gestartet wurde oder geht das schon in gesonderten log-files?

Vielen Dank für Deine Hilfe,
Grüße
Nils

nick
Beiträge: 1300
Registriert: Sa 10. Jul 2010, 11:45

Re: Automatischer Personenimport

Beitrag von nick » Mi 18. Jun 2014, 11:21

Hallo Nils,

oh ja, der Import dauert in der Tat sehr lange. Es hat mich eine Weile gekostet, die Stelle zu finden, warum das so ist. Ziemlich dummer Fehler... :-/ Korrigiert in v2.2.0_07.

Danke & Gruß,
Nick

Antworten