Was kann ich tun, wenn mein Schulverwaltungsprogramm keinen Export einer ID zulässt?

Was kann ich tun, wenn mein Schulverwaltungsprogramm (DIVIS) keinen Export einer ID zulässt?
MfG
Volkhard Flemig
Irena Sendler Schule
22393 Hamburg

Ich fürchte mit DIVIS wird das Schwierig, weil dort von Verwaltungsseite der Export eingeschränkt wird.
Generell kann man sagen: “ohne eineindeutige ID kein zuverlässiger Import”.
Die Betonung liegt dabei auf “zuverlässig”. Denn es gibt Workarounds (zB Kombination mehrerer User-Merkmale zu einem eindeutigen), aber diese führen immer Schwierigkeiten mit sich (zB dass sich persönliche Merkmale ändern). Diese Schwierigkeiten bedeuten letztlich, dass alle Importe kontrolliert werden müssen, um sie evtl. händisch nach zu bearbeiten.

Generell wäre mein Tipp in so einer Situation mit der IT-Abteilung zu sprechen, dass sie eine zufällige aber eindeutige ID (eine UUID) in die Datenbank schreiben, und diese mitexportieren. Alle Datenbanken und Programmiersprachen bieten dafür Funktionen an.
So eine ID kann auch ein Hash einer anderen ID (wie der Personalnummer oder der Datenbankzeile) sein, wenn diese bereits eindeutig ist, aber aus Datenschutzgründen nicht verschickt werden darf. Ein Hash ist eindeutig, aber der ursprüngliche Wert kann daraus nicht wieder hergestellt werden.

Eine eindeutige ID für die “teilweise Synchronisation” zweier Datenbanken (Schulverwaltungssoftware und LDAP) zu finden, die dem Datenschutz gerecht wird, ist vor allem eine organisatorische, und weniger eine technische Aufgabe.

Beste Grüße und viel Glück
Daniel Tröder

Es gibt ja die Möglichkeit mit guid ids zu erzeugen. Wäre das eine Möglichkeit?
MfG
V. Flemig

Wenn das eindeutige IDs sind, und diese in jedem CSV-Export wieder auftauchen (weil sie in der Quelldatenbank stehen?), so dass sie verwendet werden können um den gleichen User immer wieder zu erkennen (selbst wenn er umbenannt wird), dann ist das genau was gebraucht wird.

Grüße
Daniel Tröder

Ich würde die IDs den jeweiligen SchülerInnen und KollegInnen in der zu importierenden csv-Datei fest zuweisen. Das müsste doch reichen, oder?
LG
Volkhard Flemig

Sie wollen die CSV-Datei vor jedem Import bearbeiten und jeder Zeile einen Wert hinzufügen, und dabei keinen Fehler machen? Ja, das reicht.
Grüße
Daniel Tröder

Bei den KollegInnen ist das kein Problem, aber bei den über 1100 SchülerInnen ist das natürlich nicht optimal. Kann ich eigentlich, wie in der früheren Version, klassenweise importieren oder löscht ein neuer Import die bestehenden Daten?
LG
Volkhard Flemig

Das wäre möglich mit der Option no_delete - in der JSON-Konfig auf true gesetzt, bzw. per Kommandozeile --no-delete (siehe https://docs.software-univention.de/ucsschool-import-handbuch-4.4.html#configuration:json_format).
Dann wird die Löschphase übersprungen. Sie können also disjunkte Usermengen importieren ohne dass die in den CSVs fehlenden User gelöscht werden.
Allerdings wird dann eben nicht gelöscht.

Oder sie verwenden - per Kommandozeile - eine separate source_uid pro Klasse. Dann kann und muss zukünftig jede Klasse einzeln importiert werden. Die source_uid schränkt den Suchraum des Imports ein. Üblicherweise bezieht er sich auf den Export einer Schulverwaltungssoftware. Haben Sie mehrere source_uids wäre es so, als hätten Sie mehrere Schulverwaltungssoftware, die immer eine disjunkte Usermenge verwalten.

Grüße
Daniel Tröder

Vielen Dank. Ich versuche das Problem zu lösen.
MfG
Volkhard Flemig

Gutern Morgen,
Kann ich zu den bereits importierten Benutzern einen neuen User händisch hinzufügen oder gibt es dann Probleme? An unserer Schule werden immer Schüler*innen nachgemeldet, dei ich dann in den jeweiligen Klassen hinzufügen muss.
LG
Volkhard Flemig

Das geht ohne Problem.
Sollen diese User aber beim nächsten Import mt einbezogen werden (ändern/löschen), so benötigen sie gesetzte Attribute ucsschoolSourceUID und ucsschoolRecordUID.
Achtung: Mit diesen Daten unvorsichtig umzugehen kann zu Datenverlust führen. Das sind für den Importer die Identitäten der User!
Um diese Attribute in der UMC und an der Console sehen zu können, müssen ihre Einstellungen geändert werden:

udm settings/extended_attribute modify --dn "cn=ucsschoolRecordUID,cn=UCSschool,cn=custom attributes,cn=univention,$(ucr get ldap/base)" --set disableUDMWeb=0
udm settings/extended_attribute modify --dn "cn=ucsschoolSourceUID,cn=UCSschool,cn=custom attributes,cn=univention,$(ucr get ldap/base)" --set disableUDMWeb=0
service univention-management-console-server restart

Ab dann kann man diese Attribute im School-Tab in der UMC oder an der Console in der Ausgabe von udm sehen. Sinnvolle Werte kann man sich dann von importieren Usern abschauen.
Nie die IDs von existierenden Usern ändern!
Achtung: Sie verlassen die supportete Zone.