Constraint Fehler beim Export

Spezielle Fragen zum Import/Export von Kurs42 nach Schild-NRW

Moderator: wschrewe

kroerig
Beiträge: 280
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Constraint Fehler beim Export

Beitrag von kroerig »

Guten Morgen,

folgendes Bild: Beim "Blockung in DB exportieren" erscheint die folgende Fehlermeldung sobald Kurs42 die Kursdaten aus der Schild-Datenbank löscht:
Zwischenablage01.jpg
Zwischenablage01.jpg (16.35 KiB) 810 mal betrachtet

Code: Alles auswählen

Beginn des Kursexportes (Direkter DB-Zugriff)
Blockung in der Datenbank löschen...
DELETE FROM SchuelerEinzelleistungen WHERE Leistung_ID IN (SELECT ID FROM SchuelerLeistungsdaten WHERE Abschnitt_ID in (SELECT ID from SchuelerLernabschnittsdaten WHERE (Jahr=2021 AND Abschnitt=1) AND Schueler_ID in (SELECT ID FROM Schueler WHERE AktSchulJahr=2021 AND AktAbschnitt=1 AND Jahrgang_ID in (12) AND SchulnrEigner=165256)) AND Kurs_ID Is Not Null)

Gelöscht: 0 Teilleistungen
DELETE FROM SchuelerLeistungsdaten WHERE Abschnitt_ID in (SELECT ID from SchuelerLernabschnittsdaten WHERE (Jahr=2021 AND Abschnitt=1) AND Schueler_ID in (SELECT ID FROM Schueler WHERE AktSchulJahr=2021 AND AktAbschnitt=1 AND Jahrgang_ID in (12) AND SchulnrEigner=165256)) AND Kurs_ID Is Not Null

0: DELETE FROM Kurse WHERE (Abschnitt=1) AND (Jahr=2021) AND SchulnrEigner=165256 AND Jahrgang_ID IN (12)
Gelöscht: 832 Schülerleistungsdaten und 0 Kurse
SELECT GU_ID,ID,Status,Name,Vorname,ASDJahrgang,Jahrgang_ID,Klasse,Geschlecht,GeburtsDatum,PruefOrdnung,EMail,SchulEMail,ExterneSchulNr,IDext FROM Schueler WHERE Geloescht <> '+' AND SchulnrEigner=165256  AND Status IN (2,6)
 AND (AktSchuljahr=2021) AND (AktAbschnitt=1)
 AND Schueler.Jahrgang_ID IN (12) ORDER BY Schueler.ASDJahrgang,Name
Wenn man vorher die Kurse selbst über Schild löscht, erscheint dieser Fehler nicht. Nach Ausprobieren mehrere Konstellationen sind wir uns relativ sicher, dass der Auslöser die GE-ZKs in der Q2 sind.

Löscht man die Kurse vorher nicht, werden die Kurse zwar in Schild angelegt, aber nicht den SuS zugeordnet.
Das Problem tritt nur in der Q2 auf.

Bitte um Hilfe.

Schild Version: 2.25.0.4
Kurs42: 3.27.11.380

Danke & Gruß

Klaus Rörig
Zuletzt geändert von kroerig am Mittwoch 11. August 2021, 22:38, insgesamt 1-mal geändert.
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
Benutzeravatar
wschrewe
Fachberater*in
Beiträge: 1686
Registriert: Dienstag 25. September 2018, 17:36
Schulform: BK (Pensionär)
Kontaktdaten:

Re: Constraint Fehler beim Export

Beitrag von wschrewe »

kroerig hat geschrieben: Dienstag 10. August 2021, 09:02Wenn man vorher die Kurse selbst über Schild löscht, erscheint dieser Fehler nicht. Nach Ausprobieren mehrere Konstellationen sind wir uns relativ sicher, dass der Auslöser die GE-ZKs in der Q2 sind
Die Schlüsselverletzung betrifft doch die Kurs-ID, was vermuten lässt, dass es in Ihrer Schild-DB bereits Kurse mit gleicher ID gibt.
Wenn Sie die Kurse über Schild gelöscht haben, und das anschließende Löschen der Blockung aus Kurs erfolgreich ist, können Sie die Blockung doch als Erstexport exportieren. Sie können dann ja mal die Blockung erneut (aus Kurs 42) löschen. Wenn das dann wieder fehlschlägt, muss man mal sehen, ob die Ursache in MySQL oder Kurs zu suchen ist.
Mit freundlichen Grüßen
Walter Schrewe
"If all else fails, read the instructions" (Donald E. Knuth, letzter TeX - Hilfehinweis)
kroerig
Beiträge: 280
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Re: Constraint Fehler beim Export

Beitrag von kroerig »

ja, der Fehler ist reproduzierbar. Auch die Blockung-Löschen Funktion über Verwaltung in Kurs42 löst den Fehler aus.
Wir importieren immer nur als Erstimport mit vorheriger Löschung der Blockung.

Wir können uns das gerne mal gemeinsam per Teamviewer anschauen.
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
Benutzeravatar
wschrewe
Fachberater*in
Beiträge: 1686
Registriert: Dienstag 25. September 2018, 17:36
Schulform: BK (Pensionär)
Kontaktdaten:

Re: Constraint Fehler beim Export

Beitrag von wschrewe »

kroerig hat geschrieben: Dienstag 10. August 2021, 13:47Wir können uns das gerne mal gemeinsam per Teamviewer anschauen.
Gerne. Rufen Sie mich an.
Mit freundlichen Grüßen
Walter Schrewe
"If all else fails, read the instructions" (Donald E. Knuth, letzter TeX - Hilfehinweis)
kroerig
Beiträge: 280
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Re: Constraint Fehler beim Export

Beitrag von kroerig »

Ok, ich melde mich so zwischen 09:00 und 09:30 OK?
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
kroerig
Beiträge: 280
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Re: Constraint Fehler beim Export

Beitrag von kroerig »

Ich haben Ihnen ein Dump und die Blockung über die Cloud der Schule bereitgestellt. Sie sollten zwei Mails erhalten haben.
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
kroerig
Beiträge: 280
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Re: Constraint Fehler beim Export

Beitrag von kroerig »

Hallo Herr Schrewe,

das Problem lässt mir keine Ruhe und so habe (mal wieder) die SchILD DB auseinander genommen ;-)
Ich denke, Sie könnten Recht haben mit der "kaputten" Schild-DB. Da hängen noch Leistungsdaten in der Datenbank, die vom Löschprozess aus Kurs nicht erfasst werden. Leider konnte ich Sie gerade telefonisch nicht erreichen, daher versuche meine Analyse mal hier zu beschreiben.

Der Löschprozess aus Kurs42 fährt gegen die Wand, weil er versucht Kurse zu löschen, zu denen es noch Leistungsdaten gibt. Die kann es eigentlich gar nicht geben, weil in der Q2 in 2021/2022 noch kein Unterricht stattgefunden hat. Also habe ich Kurs die Blockung in der DB löschen lassen und dann mal in SchILD geschaut, ob ich noch bei einem Schüler der Q2 noch irgendwo Einträge zu Leistungsdaten finde. Nein, in SchIILD ist nichts zu sehen. Also nächster Schritt: Nachschauen, was die Datenbank noch zu Tage fördert.

Code: Alles auswählen

SELECT 
    SchuelerLeistungsdaten.*
FROM
    schild_nrw_test.SchuelerLeistungsdaten
        LEFT JOIN
    Kurse ON Kurse.ID = SchuelerLeistungsdaten.Kurs_ID
WHERE
    SchuelerLeistungsdaten.Kurs_ID IS NOT NULL
        AND Kurse.Abschnitt = 1
        AND Kurse.Jahr = 2021
        AND Kurse.Jahrgang_ID = 12
Und siehe da, da kommt noch was: 10 Einträge, die auf eine Abschnitts_ID 34619 verweisen. OK, wie bekomme ich raus, was sich hinter dieser Abschnitts_ID verbirgt. So:

Code: Alles auswählen

SELECT 
        ID,Schueler_ID
    FROM
        SchuelerLernabschnittsdaten
    
    WHERE
        (Jahr = 2021 AND Abschnitt = 1)
        AND Schueler_ID IN (SELECT 
            ID
        FROM
            Schueler
        
        WHERE
            AktSchulJahr = 2021 AND AktAbschnitt = 1
            AND Jahrgang_ID IN (12)
            AND SchulnrEigner = 165256)
            
            order BY ID
Und siehe da, die Abschnitts_ID 34169 gibt es nicht in der Q2 in 2021/22, auch nicht im Schuljahr 2020/21.

Nächster Schritt:

Code: Alles auswählen

select * from SchuelerLernabschnittsdaten where ID=34619
Oh, da kommt was zurück. Und das hat eine Schueler_ID. Und schon sollte ich den Übeltäter gefunden haben.

Sehen Sie irgendwo einen Knoten in meinen Schritten?

Danke & Gruß

Klaus Rörig
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
Benutzeravatar
wschrewe
Fachberater*in
Beiträge: 1686
Registriert: Dienstag 25. September 2018, 17:36
Schulform: BK (Pensionär)
Kontaktdaten:

Re: Constraint Fehler beim Export

Beitrag von wschrewe »

Nein, sieht gut aus.
Mit freundlichen Grüßen
Walter Schrewe
"If all else fails, read the instructions" (Donald E. Knuth, letzter TeX - Hilfehinweis)
kroerig
Beiträge: 280
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Re: Constraint Fehler beim Export

Beitrag von kroerig »

So, die Ursache es gefunden: Das Problem sind/waren Schüler, die die Jahrgangsstufe wiederholen werden, aber noch in die Nachprüfungen müssen. Die waren in Kurs42 schon eingetragen, damit die Stufenleiter damit planen können, aber in SchILD natürlich noch in ihrer alten Stufe. Also hat Kurs42 beim ersten Import gegen die "leere" Datenbank diesen Schülern die neuen Kurse zugeordnet, beim Bereinigen der Datenbank vor dem nächsten Import werden die aber vom DELETE Statement nicht erfasst, weil sie ja nicht im passenden Halbjahr sein.
Deswegen läuft die Bereinigung gegen die Wand.

Jetzt wäre die Frage an Herrn Schrewe, ob Sie den Fall, dass die Schülerlisten in Kurs42 und SchILD nicht übereinstimmen vor dem Löschen prüfen können und damit diesen Fehler mit einem freundlichen (*fg*) Hinweis abfangen könnten.

Quell des Übels dürfte sein, dass aus zeitlichen Gründen, die Stufenleiter natürlich schon planen müssen in welche Kurse (ggf. im KOOP) die Schüler einsortiert werden können.
Blöd ist dann nur, wenn von diesen Daten auch andere Prozesse abhängig sind und die entsprechenden Leute dann keine Daten zu Arbeiten haben, weil SchILD nun mal das datenführende System ist.
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
Benutzeravatar
wschrewe
Fachberater*in
Beiträge: 1686
Registriert: Dienstag 25. September 2018, 17:36
Schulform: BK (Pensionär)
Kontaktdaten:

Re: Constraint Fehler beim Export

Beitrag von wschrewe »

kroerig hat geschrieben: Donnerstag 12. August 2021, 18:49Jetzt wäre die Frage an Herrn Schrewe, ob Sie den Fall, dass die Schülerlisten in Kurs42 und SchILD nicht übereinstimmen vor dem Löschen prüfen können und damit diesen Fehler mit einem freundlichen (*fg*) Hinweis abfangen könnten.
Wahrscheinlich könnte man das. Ich schreibe das mal in die ToDo-Liste, aber nicht ganz oben.
Mit freundlichen Grüßen
Walter Schrewe
"If all else fails, read the instructions" (Donald E. Knuth, letzter TeX - Hilfehinweis)
Antworten

Zurück zu „Import/Export“