Mitgliederimport via CSV to MySQL?

JVerein-Benutzer diskutieren über Erweiterungswünsche

Moderator: heiner

Antworten
akemper
Beiträge: 8
Registriert: Mittwoch 3. Oktober 2018, 20:48
JVerein-Version: Letzte
Betriebssystem: Linux / Win / Mac OS

Mitgliederimport via CSV to MySQL?

Beitrag 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
Benutzeravatar
DIG
Beiträge: 478
Registriert: Freitag 11. Januar 2013, 00:02
Verein: Deutsch-Isländische Gesellschaft e.V.
Mitglieder: 250
JVerein-Version: aktuellste
Betriebssystem: Win
Wohnort: Krefeld

Re: Mitgliederimport via CSV to MySQL?

Beitrag 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
Viele Grüße,
Carsten
akemper
Beiträge: 8
Registriert: Mittwoch 3. Oktober 2018, 20:48
JVerein-Version: Letzte
Betriebssystem: Linux / Win / Mac OS

Re: Mitgliederimport via CSV to MySQL?

Beitrag 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
akemper
Beiträge: 8
Registriert: Mittwoch 3. Oktober 2018, 20:48
JVerein-Version: Letzte
Betriebssystem: Linux / Win / Mac OS

Re: Mitgliederimport via CSV to MySQL?

Beitrag 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
Benutzeravatar
DIG
Beiträge: 478
Registriert: Freitag 11. Januar 2013, 00:02
Verein: Deutsch-Isländische Gesellschaft e.V.
Mitglieder: 250
JVerein-Version: aktuellste
Betriebssystem: Win
Wohnort: Krefeld

Re: Mitgliederimport via CSV to MySQL?

Beitrag 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.
Viele Grüße,
Carsten
akemper
Beiträge: 8
Registriert: Mittwoch 3. Oktober 2018, 20:48
JVerein-Version: Letzte
Betriebssystem: Linux / Win / Mac OS

Re: Mitgliederimport via CSV to MySQL?

Beitrag 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
Antworten