Moin,
ich bin neu hier und spiele gerade mit einer Testinstallation um einen möglichen Einsatz des CLM für den Berliner Schachverband ab nächster Saison zu evaluieren.
Environment: PHP 8.3.6, MariaDB 11.4.5, Joomla 5.2.3, CLM 4.2.2
Bei der Aktualisierung der DEWIS Daten über die Soap Schnittstelle sind mir folgende Dinge aufgefallen:
1) Inkonsistente Daten bei Fehler
Default Einstellung der verwendeten Storage-Engine ist MyISAM, daher wird kein Rollback bei Fehler (timeout, deadlock, ..) durchgeführt. Nach Ändern aller clm Tabellen auf InnoDB tritt dieser Fehler nicht mehr auf, da bei Abbruch/Fehler automatisch ein Rollback durchgeführt wird.
2) Ausgetretene Mitglieder werden nicht gekennzeichnet
Bei Aktualisieren der Datenbank werden die Daten direkt in die Datenbank geschrieben anstatt PKS Nummern die nicht vorhanden sind als ausgetreten oder gesperrt zu kennzeichnen. Im Falle meines eigenen Vereins werden in der Vereinsstatistik 232 Mitglieder angezeigt, aktuell sind es jedoch nur 201.
Idealerweise sollte der Import wie folgt aussehen:
1) CREATE TEMPORARY TABLE tmp_dwz_spieler LIKE #__clm_dwz_spieler
2) Einlesen der Daten von DEWIS in temporäre Tabelle tmp_dwz_spieler
3) Markieren der ausgetretenen Spieler:
UPDATE #__clm_dwz_spieler SET ausgetreten=1 WHERE NOT EXISTS (SELECT PKS FROM tmp_dwz_spieler WHERE tmp_dwz_spieler.PKS = #__clm_dwz_spieler.PKS)
4) Auslesen der Daten von der temporären Tabelle tmp_dwz_spieler und Aktualisierung (UPDATE) der Daten (wie gehabt) in #__clm_dwz_spieler.
Wenn gewünscht kann ich einen PR in github einstellen.
/Georg