Import-Format
Stammdaten im Format score-import, als JSON oder CSV, mit Probelauf und Bericht.
Stammdaten kommen aus der Schulverwaltung. score nimmt sie im eigenen, kanonischen Format
score-import entgegen – über die API, die Weboberfläche oder die Kommandozeile. Adapter für
bestimmte Verwaltungsprogramme wandeln in dieses Format.
JSON
Eine Datei beschreibt den vollständigen Stand einer Einrichtung.
{
"format": "score-import",
"version": 1,
"quelle": "demo",
"einrichtung": "rs-am-hafen",
"personen": [
{ "ref": "L-0001", "vorname": "Lena", "nachname": "Müller",
"kennungen": [{ "idp": "idp-land", "subject": "lmueller" }] },
{ "ref": "S-0001", "vorname": "Mia", "nachname": "Neumann", "geburtsdatum": "2013-04-17" },
{ "ref": "E-0001", "vorname": "Paul", "nachname": "Neumann" }
],
"mitgliedschaften": [
{ "person": "L-0001", "rolle": "fachlehrkraft" },
{ "person": "S-0001", "rolle": "schueler" },
{ "person": "E-0001", "rolle": "sorgeberechtigt" }
],
"faecher": [{ "kuerzel": "DE", "name": "Deutsch" }],
"klassen": [
{ "name": "7a", "jahrgang": 7, "bildungsgang": "mv.regionale-schule",
"klassenleitung": "L-0001", "schueler": ["S-0001"] }
],
"kurse": [
{ "ref": "DE-7a", "fach": "DE", "klasse": "7a", "name": "Deutsch 7a",
"lehrkraefte": ["L-0001"], "teilnehmer": [{ "person": "S-0001", "anspruchsebene": "MR" }] }
],
"sorgerechte": [{ "sorgeberechtigt": "E-0001", "schueler": "S-0001" }]
}
| Feld | Inhalt |
|---|---|
quelle |
Quellsystem der Personenkennungen. Gleiche Quelle und gleiche ref an zwei Schulen ergeben dieselbe Person |
einrichtung |
Kennung der Einrichtung, deren Stand die Datei beschreibt |
bereiche |
optional: Datenarten, die die Datei führt (Bereichsabgleich, siehe unten); ohne Angabe Vollabgleich |
personen |
mit ref; optional geburtsdatum, kennungen (Identitätsanbieter und Subject) für die Anmeldung und vorhanden (quelle und ref derselben Person aus einem anderen Quellsystem) |
mitgliedschaften |
Person, Rolle, optional von/bis; Gastschüler mit stammschule (Schule derselben Installation) oder stammschule_extern (Kennung einer Schule auf einer anderen Installation; Noten gehen dann per Austauschdatei) |
faecher |
Kürzel, Name, optional Art und übergeordnetes Fach (Lernfelder als Baum) |
klassen |
Name, optional anzeigename (alternativer Klassenname für Übersichten), Jahrgang, bildungsgang (Kennung des Regelpakets), Klassenleitung, Schüler |
kurse |
Fach, optional Klasse, Kursart (LK/GK) und Halbjahr, Lehrkräfte, Teilnehmende mit Anspruchsebene oder klasse_belegen (alle Schüler der Klasse) |
betriebe, ausbildungen |
für die Berufsschule |
sorgerechte |
Sorgeberechtigte Person und Schüler |
Verweise innerhalb der Datei laufen über ref, Fachkürzel und Klassennamen. Unbekannte Felder
sind ein Fehler, und die Prüfung sammelt alle Fehler, statt beim ersten abzubrechen.
CSV
Ein Verzeichnis mit personen.csv und mitgliedschaften.csv (Pflicht), optional
klassen.csv, klassen_schueler.csv und sorgerechte.csv. Semikolon als Trenner, Kopfzeile,
Datum als JJJJ-MM-TT oder TT.MM.JJJJ. score-api csv2json <verzeichnis> wandelt in das
JSON-Format.
Ablauf
- Probelauf: Der Import läuft in einer Transaktion im Kontext genau dieser Einrichtung und wird am Ende zurückgerollt. Der Bericht ist deshalb identisch mit dem der Übernahme.
- Bericht: je Objektart neu, geändert, unverändert, entfernt und „nicht im Import“, dazu die einzelnen Änderungen.
- Übernahme: dieselbe Transaktion mit Commit, im Audit-Log als Massenvorgang vermerkt.
Abgleich
- Personen werden über
(quelle, ref)zugeordnet, nie über Namen. - Fehlende Mitgliedschaften enden gestern; fehlende Zuordnungen (Klasse, Kurs, Lehrauftrag, Sorgerecht) werden entfernt.
- Fehlende Fächer, Klassen, Kurse, Betriebe und Ausbildungen bleiben bestehen und erscheinen im Bericht als „nicht im Import“ – an ihnen können Noten hängen.
- Login-Kennungen werden nur ergänzt, nie entfernt.
Bereichsabgleich
Für Programme, die nur einen Teil der Stammdaten führen (Stundenplan, z. B. Untis): die Datei
nennt in bereiche die Datenarten, für die sie maßgeblich ist.
| Bereich | gleicht ab |
|---|---|
mitgliedschaften |
alle Mitgliedschaften |
lehrkraefte |
nur Mitgliedschaften mit Rolle fachlehrkraft |
faecher, klassen, kurse, betriebe, ausbildungen |
diese Objekte |
klassenzugehoerigkeit, lehrauftraege, belegungen, sorgerechte, stundentafeln |
diese Zuordnungen |
- Entfernt oder beendet wird nur in den genannten Bereichen; alles andere bleibt unberührt.
- Jeder Abschnitt mit Daten muss als Bereich genannt sein, sonst ist die Datei ungültig.
- Leere optionale Felder (Jahrgang, Bildungsgang, Klassenleitung, Klasse eines Kurses, Kursart, Ort) überschreiben keine vorhandenen Werte.
- Kurse dürfen auf Fächer und Klassen im Bestand verweisen.
- Bestehende Personen werden nicht geändert; mit
vorhandenwird eine Person verknüpft, die aus dem führenden System (z. B. der Schulverwaltung) schon bekannt ist. - Zuordnungen (Klassenzugehörigkeit, Lehraufträge, Belegungen) gleicht der Import nur für die Klassen und Kurse der Datei ab; die anderer Kurse bleiben.
Untis
Auf der Seite Import unter „Aus Untis“ die GPU-Dateien hochladen; score wandelt sie um und
zeigt den Probelauf, übernommen wird wie bei JSON erst nach Bestätigung. Auf der Kommandozeile:
score-api untis2json -einrichtung <kennung> [-zuordnung lehrkraefte.csv] [-schueler-quelle <quelle>] <verzeichnis>.
Gelesen werden GPU002 Unterricht, GPU003 Klassen, GPU004 Lehrer, GPU006 Fächer und mit
Schülerquelle GPU010 Schüler und GPU015 Kurswahlen.
- Bereiche: Fächer, Klassen, Kurse, Lehraufträge, Belegungen und Lehrkräfte (Rolle
fachlehrkraft). Schüler, Klassenzugehörigkeit und Klassenleitungen führt weiter die Schulverwaltung. - Ein Kurs je Unterrichtsnummer und Klasse (
untis-<Nummer>-<Klasse>); gekoppelte Lehrkräfte unterrichten ihn gemeinsam. Unterricht der ganzen Klasse (ohne Schülergruppe) belegen alle Schüler der Klasse. - Kurswahlen (Schülergruppen, Oberstufe): mit
-schueler-quellebzw. dem Feld auf der Seite verknüpft score die Schüler über ihre Kennung in der Schulverwaltung (GPU010 Feld 15, Fremdschlüssel) und belegt die gewählten Kurse. Schüler ohne Kennung werden übergangen und im Hinweis gezählt; ohne Schülerquelle bleiben Gruppenkurse ohne Belegung. - Nur genutzte Fächer, Klassen und Lehrkräfte; der Langname einer Klasse wird ihr Anzeigename.
lehrkraefte.csv(kuerzel;quelle;ref) verknüpft Lehrerkürzel mit Personen aus der Schulverwaltung, sonst legt der Import die Lehrkräfte neu an.- Trennzeichen Komma, Semikolon oder Tabulator, Zeichensatz UTF-8 oder Windows-1252 werden je Datei erkannt. Untis vergibt Unterrichtsnummern je Schuljahresdatei, ein neues Schuljahr ergibt neue Kurse.
- Ausprobieren ohne echten Export:
score-api generate-untis [-einrichtung demo-gym-wall] [-variante standard|semikolon-utf8|tabulator] <verzeichnis>schreibt einen simulierten Export einer Demo-Schule samtlehrkraefte.csv; als Schülerquelledemoangeben.
Rechte
Über API und Oberfläche importieren Schuladmin und Schulleitung der jeweiligen Einrichtung. Die
Kommandozeile (score-api import <datei> [-uebernehmen]) ist für den Betrieb gedacht.