Export WebUntis

Übergeordnete Themen zu SchILD-NRW2

Moderatoren: A. Schüller, Raffenberg, Pfotenhauer

Antworten
ChrMim
Beiträge: 8
Registriert: Mittwoch 24. August 2022, 13:46
Schulform: Berufskolleg

Export WebUntis

Beitrag von ChrMim »

Hallo zusammen,

wir als BK haben mit hoher Fluktuation und Verschiebung von Schüler:innen zu tun. Um WebUntis als Stundenplananzeigetool aktuell zu halten, ist es mehrfach die Woche notwendig alle Schüler:innen aus SchILD zu exportieren und in WebUntis zu importieren.

Meine Fragen:
  • Ist es möglich den Export aus SchILD zu automatisieren?
  • Ist ein Zugriff abseits von SchILD mit einer SQL-Abfrage denkbar?
  • Kann sowas vielleicht zeitgesteuert erfolgen?
Grüße

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

Re: Export WebUntis

Beitrag von kroerig »

Hallo Herr Mimberg,

auf welcher Datenbank laufen Sie? Für MySQL hatte ich ein Query. Allerdings müssen Sie den Import in WebUntis/Untis manuell machen. Hier gibt es keine API.

Gruß

Klaus Rörig
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
Benutzeravatar
Raffenberg
Beiträge: 3073
Registriert: Dienstag 25. September 2018, 15:22
Schulform: Gymnasium
Kontaktdaten:

Re: Export WebUntis

Beitrag von Raffenberg »

In Schild2 wird es soetwas nicht geben. In Schild3 hätte Untis dann die Möglichkeit, am SVWS-Server über eine API zu interagieren. Das wird aber noch etwas dauern.
Mit freundlichen Grüßen
Jens Raffenberg
ChrMim
Beiträge: 8
Registriert: Mittwoch 24. August 2022, 13:46
Schulform: Berufskolleg

Re: Export WebUntis

Beitrag von ChrMim »

kroerig hat geschrieben: Mittwoch 31. August 2022, 11:15 Hallo Herr Mimberg,

auf welcher Datenbank laufen Sie? Für MySQL hatte ich ein Query. Allerdings müssen Sie den Import in WebUntis/Untis manuell machen. Hier gibt es keine API.

Gruß

Klaus Rörig
Wir betreiben eine SQL-Datenbank.

An dem Query wäre ich sehr interessiert.

Danke

Christian Mimberg
calloj
Beiträge: 107
Registriert: Sonntag 10. Februar 2019, 17:53
Schulform: Gesamtschule

Re: Export WebUntis

Beitrag von calloj »

sorry falscher Beitrag....
Benutzeravatar
Raffenberg
Beiträge: 3073
Registriert: Dienstag 25. September 2018, 15:22
Schulform: Gymnasium
Kontaktdaten:

Re: Export WebUntis

Beitrag von Raffenberg »

Mit dem Query könnte man ein Powershell-Script schreiben, welches die benötigte Datei über den Datenbankzugriff erzeugt und über die Aufgabenplanung zeitgesteuert ausgeführt wird.
Mit freundlichen Grüßen
Jens Raffenberg
kroerig
Beiträge: 413
Registriert: Samstag 5. Januar 2019, 20:18
Schulform: - keine Schule -
Kontaktdaten:

Re: Export WebUntis

Beitrag von kroerig »

bei mir läuft das Query in einem PHP-Script und liefert mir je nach Aufrufparameter die Datensätze als CSV oder JSON, obtional gefiltert nach den Schild-Status

Code: Alles auswählen

<?php
//error_reporting(E_ERROR | E_PARSE);



// SchILD-Status
// 0 - Neuaufnahme
// 2 - Aktiv
// 6 - Externe
$Status = '2,3,6';

if (isset($_GET['auswahl']) && $_GET['auswahl'] == "neu") {
        $Status = 0 ;
        }
elseif (isset($_GET['auswahl']) && $_GET['auswahl'] == "aktiv") {
        $Status = "2,3";
}
elseif (isset($_GET['auswahl']) && $_GET['auswahl'] == "externe") {
        $Status = "6";
}
elseif (isset($_GET['auswahl']) && $_GET['auswahl'] == "alle") {
        $Status = '0,2,3,6';
}

$vorwahl="01234";
$formattelefon="false";

$rows = array();

$mysqli = new mysqli("server", "datenbank", "benutzer", "passwort");

if ($mysqli->connect_errno) {
    die("Verbindung fehlgeschlagen: " . $mysqli->connect_error);
}

$mysqli->set_charset('utf8');

$sql="
SELECT
    (CASE STATUS
        WHEN '6' THEN 'extern'
        WHEN '2' THEN 'aktive'
        WHEN '3' THEN 'beurlaubt'
        WHEN '0' THEN 'neuaufnahme'
    END) AS Status,
    ID,
    Klasse,
    Vorname,
    Name,
    (CASE Geschlecht
        WHEN 3 THEN 'männlich'
        WHEN 4 THEN 'weiblich'
    END) AS Geschlecht,
    DATE_FORMAT(Geburtsdatum, '%d.%m.%Y') AS Geburtsdatum,
    (CASE STATUS
        WHEN 2 THEN Schueler.SchulnrEigner
        WHEN 6 THEN Schueler.ExterneSchulnr
    END) AS SchulNummer,
    Strasse,
    PLZ,
    OrtAbk,
    Telefon,
    DATE_FORMAT(AufnahmeDatum, '%d.%m.%Y') AS AufnahmeDatum,
    AbschlussDatum
FROM
    Schueler
WHERE
    (Schueler.Status IN (". $Status .")
        AND Schueler.Geloescht = '-')
ORDER BY Schueler.Klasse ASC , Schueler.Name , Schueler.Vorname
";

$result = $mysqli->query($sql,MYSQLI_USE_RESULT);
$rows = $result->fetch_all(MYSQLI_ASSOC);
$result->free();

$mysqli->close();


if ($formattelefon == "true") {
    include_once("vendor/autoload.php");

    foreach ($rows as $nr => $data) {
    
        if (isset($rows[$nr]["Telefon"])) {
    
          $rows[$nr]["Telefon"] = preg_replace('/[^0-9]/', '', $rows[$nr]["Telefon"]);
    
          if (strlen(str_replace(" ", "", $rows[$nr]["Telefon"])) < 9 ) {
             $rows[$nr]["Telefon"] = $vorwahl . $rows[$nr]["Telefon"];
          }
    
    
           $phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance();
           try {
                   $NumberProto = $phoneUtil->parse($rows[$nr]["Telefon"], "DE");
                  //var_dump(NumberProto);
           }
           catch (\libphonenumber\NumberParseException $e) {
                   var_dump($e);
           }
    
           $rows[$nr]["Telefon"] = $phoneUtil->format($NumberProto, \libphonenumber\PhoneNumberFormat::E164);
        }
    }
}

if (isset($_GET["format"]) && $_GET["format"] == "csv") {
    header('Content-Type: application/csv; charset=utf-8');
    header("Content-Disposition:attachment;filename=schueler.csv");
    $output = fopen("php://output",'w') or die("Can't open php://output");
    foreach($rows as $nr => $data) {
        fputcsv($output, $data, ';');
//        fputs($output, implode(';', $data)."\n");
    }
   fclose($output) or die("Can't close php://output");
} else {
    header('Content-Type: application/json');
    echo  json_encode($rows);
}
Damit der Block mit der Rufnummernformatierung funktioniert muss https://github.com/giggsey/libphonenumber-for-php installiert werden.
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer." Dieter Hildebrandt
ChrMim
Beiträge: 8
Registriert: Mittwoch 24. August 2022, 13:46
Schulform: Berufskolleg

Re: Export WebUntis

Beitrag von ChrMim »

Raffenberg hat geschrieben: Mittwoch 31. August 2022, 18:25 In Schild2 wird es soetwas nicht geben. In Schild3 hätte Untis dann die Möglichkeit, am SVWS-Server über eine API zu interagieren. Das wird aber noch etwas dauern.
Das klingt doch positiv. Wann wird es denn die erste Version von SchILD3 geben?
Benutzeravatar
Raffenberg
Beiträge: 3073
Registriert: Dienstag 25. September 2018, 15:22
Schulform: Gymnasium
Kontaktdaten:

Re: Export WebUntis

Beitrag von Raffenberg »

In der Aplha-Phase wird Schild3 schon jetzt von Fachberatern getestet.

Alle Beteiligten streben eine Beta-Phase mit wenigen Testschulen nach der Schulstatistik in diesem Jahr an. Der offizielle Start wird dann wenige Monate später sein.

Da aber noch immer Anpassungen an der Datenbank stattfinden, nageln Sie mich bitte hier nicht fest.
Mit freundlichen Grüßen
Jens Raffenberg
Antworten

Zurück zu „Allgemeines“