Amtliche Schulverwaltung
Sie befinden sich hier: start » alle » schnittstellen » xml_sst » bugs » winsdimport1

Bug: WinSD-Import generiert Anschriftdatensätze ohne reiter_nr

1. Testcase

  • Rufe Datei→Anwendungsdaten→Schnittstelle, dort „Import von Daten von SDAndere.prn (WinSD)“ auf
  • Entpacke die Datei sd-andre_ebe2.zip und importiere sie
    Bem.: Die Daten sind händisch anonymisiert. Da sie zudem in einem von WinSD kryptierten Format vorliegen, sind die entkryptierten Zeichenketten (Name, …) natürlich sehr kryptisch!
  • In der Datenbank befindet sich jetzt ein Datensatz in svp_schueler_kommunikation mit reiter_nr == null sowie ein damit verknüpfter Datensatz in svp_kommunikation (Kommunikationsadresse: „6789/897896“)
  • Diese Telefonnummer findet sich nicht in den Kontakten des importierten Schülers. Auch daran erkennt man, dass die Datenlage nicht valide ist.

SQL-Statements zum finden der nicht-validen Datensätze:

SELECT * FROM svp_schueler_kommunikation WHERE reiter_nr IS NULL
 
SELECT * FROM svp_kommunikation WHERE id IN (SELECT kommunikation_id FROM svp_schueler_kommunikation WHERE reiter_nr IS NULL)

Der Fehler steckt m.E. in der Klasse bayern.asv.interfaces.api.imports.sdandre.importformate.StImporter. Sie wurde am 14.04.2014 von einem Mitarbeiter der ISB-AG erstellt.

2. Auswirkungen auf die XML-Exportschnittstelle zur Notenverwaltung

Diese Schnittstelle bricht bis einschließlich ASV-Version 1.29.189 mit einer Exception ab, wenn sie auf einen nicht-validen Datensatz der oben beschriebenen Art trifft. Danach ist sie „gehärtet“ und übergeht diese Datensätze einfach.

3. Bereinigung der fehlerhaften Datensätze

Die fehlerhaften Datensätze lassen sich mit diesen SQL-Statements bereinigen:

UPDATE svp_kommunikation SET bemerkung = 'bad' WHERE id IN (SELECT kommunikation_id FROM svp_schueler_kommunikation WHERE reiter_nr IS NULL)
 
DELETE FROM svp_schueler_kommunikation WHERE reiter_nr IS NULL
 
DELETE FROM svp_kommunikation WHERE bemerkung = 'bad'

Zuvor sollte man mit der ISB-AG klären: Sind die nicht-validen Datensätze in svp_schueler_kommunikation eindeutig an reiter_nr == null zu erkennen oder gibt es auch valide Datensätze in svp_schueler_kommunikation mit reiter_nr == null?

Ich kann mir von meinem Verständnis des Datenmodells her zwar letzteres nicht vorstellen, aber da die Semantik des Datenmodells rund um svp_anschrift nirgends umfassend dokumentiert ist, kann ich mir leider nicht sicher sein. Für meine These spricht, dass die Datensätze in der GUI nirgends sichtbar sind…