Seite 1 von 1
Mitgliederimport via CSV to MySQL?
Verfasst: Mittwoch 3. Oktober 2018, 21:30
von akemper
Hallo zusammen,
zunächst danke für die schnelle Aufnahme im Forum!
Ich möchte dem Beispiel eines Kollegen folgen und MeinVerein durch JVerein ersetzen. Wir wollen dabei für mehrere Nutzer MySQL als zentrale DB auf dem Server vorhalten und nach Möglichkeit neu hinzugekommene Mitglieder automatisch dort hinzufügen. Unser CMS (Contao) erstellt bereits mit dem Abschicken jedes Mitgliedsantrags einen neuen Eintrag in einer CSV-Datei. Ich suche daher eine einfache und / oder bestehende Lösung neue Zeilen aus dieser Datei in MySQL zu übernehmen.
Hat sich jemand damit schon mal im Detail beschäftigt und / oder gibt es dazu bereits eine Lösung?
Besten Dank!
Andreas
Re: Mitgliederimport via CSV to MySQL?
Verfasst: Donnerstag 4. Oktober 2018, 13:07
von DIG
Hallo Andreas,
da JVerein bislang ja nur den Erstimport von Mitgliedsdaten jedoch keinen Folgeimport* unterstützt, musst Du das
selber basteln.
So wahnsinnig schwierig kann das aber eigentlich nicht sein, solide SQL-Kenntnisse vorausgesetzt.
Mein Ansatz zum Vorgehen wäre:
- Zunächst mit einem Query-Log analysieren was tatsächlich passiert wenn Du Mitglieder manuell in JVerein anlegst und/oder was beim Import so auf der Datenbank abläuft.
Wie man ein Query-Log bei MySQL durchführt ist u.a. hier beschrieben: https://blacksaildivision.com/mysql-query-log.
- Mittels LOAD DATA INFILE kannst Du eine CSV-Datei in eine Tabelle einlesen.
- Je nach dem was Du beim Query-Log herausgefunden hast, welche Spalten Deine CSV-Datei so mitbringt und wie einfach Deine Beitragsgruppen usw. sind, genügt vielleicht ein einzelner LOAD DATA INFILE-Aufruf.
Ansonsten muss die CSV-Datei zunächst wahrscheinlich in eine temporäre Tabelle eingelesen werden und es sind anschließend ein paar geeignete INSERT INTOs in die verschiedenen JVerein-Tabellen nötig (wenn es wirklich komplex sein sollte brauchst Du dabei Variablen, LAST_INSERT_ID und Cursor im SQL-Skript für den CSV-Import).
Wenn Du es hinbekommen hast, das poste doch Deinen Weg hier bitte. Sicher kannst Du damit auch andere glücklich machen.
Viele Grüße,
Carsten
--
* mehrfach gewünschtes Feature, aber bisher meines Wissens nicht in Arbeit
Re: Mitgliederimport via CSV to MySQL?
Verfasst: Freitag 5. Oktober 2018, 23:57
von akemper
Hallo Carsten,
danke für den Hinweis zu dem "LOAD DATA INFILE" Kommando. Ich hatte bislang gar nicht in Betracht gezogen die Fragestellung größtenteils in MySQL lösen zu können. Vielmehr hatte ich schon angefangen nach PHP-Skripten für diese Aufgabe zu suchen, da ich später auch noch Zusatzfunktionen integrieren will. Sobald ich da eine brauchbare Implementierung habe werde ich das hier posten. Aktuell warte ich zunächst auf die Rückmeldung vom Vorstand, bevor ich mich weiter darin vertiefe.
/Andreas
Re: Mitgliederimport via CSV to MySQL?
Verfasst: Samstag 13. Oktober 2018, 23:47
von akemper
Ich habe mir die SQL-Queries mal angesehen und das sieht vglw. überschaubar aus.
Aktuell bereitet mir die automatische Generierung der BIC noch etwas Kopfzerbrechen. Zwar wird diese wie die IBAN in dem aktuellen Mitgliedsantrag eingeben. Allerdings möchte ich die nach Möglichkeit zumindest auch validieren können oder noch besser wie in der JVerein GUI automatisch generieren.
Kann mir jemand ein paar Details nennen wie das innerhalb von JVerein funktioniert? Ich vermute mal stark, dass JVerein dies per Onlineabfrage macht, zumindest
https://openiban.com hat diesbzgl. aber leider seinen Dienst eingestellt.
Danke
Andreas
Re: Mitgliederimport via CSV to MySQL?
Verfasst: Montag 15. Oktober 2018, 10:47
von DIG
Hallo Andreas,
JVerein benutzt (wie auch Hibiscus) die Bibliothek
OBanToo für die IBAN-Prüfung und BIC-Generierung.
Formal braucht man für Inlandszahlungen (und inzwischen auch für EU-Zahlungen) zwar nur noch die IBAN, JVerein ergänzt die zugehörige BIC in der GUI aber dennoch immer.
Re: Mitgliederimport via CSV to MySQL?
Verfasst: Montag 15. Oktober 2018, 13:02
von akemper
Hallo Carsten,
danke für die Hintergrundinfo, wobei besagtes SF-Repo schon eine ganze Weile nicht mehr gepflegt wird. Da ich das Ganze allerdings ohnehin nicht in Java implementiere werde ich vermutlich einen Dienst wie
https://fintechtoolbox.com zur Generierung der Bankdaten inkl. BIC verwenden.
Aktuell steht hingegen zunächst ein Upgrade des verwendeten CMS an, weshalb ich mich hier gelegentlich wieder melde.
/Andreas