Zum Inhalt

Import aus BBS-Planung

BBS-Planung ist eine offizielle Schulverwaltungssoftware des Landes Niedersachsen. ENBREA kann Daten direkt aus der Access-Datenbank von BBS-Planung importieren.

Wie funktioniert der Import?

Der Workflow besteht grob aus zwei Schritten:

  1. Das ECF Tool for BBS-Planung liest direkt aus der Access-Datenbank von BBS-Planung und generiert ECF-Dateien.

  2. Das ECF Tool for ENBREA importiert die ECF-Dateien nach ENBREA.

Mit dem PowerShell-Modul PSEnbrea kannst Du die beide Schritte mit einem einzigen Befehl ausführen.

Installieren

Das ECF Tool for BBS-Planung greift per ODBC auf die Access-Datenbank von BBS-Planung zu. Ist Microsoft Access auf dem Computer bereits installiert, sollte auch der ODBC-Treiber bereits verfügbar sein. Das ECF Tool for BBS-Planung kann aber auch auf einem Computer ohne Microsoft Access ausgeführt werden. In diesem Fall kann die Microsoft Access Database Engine 2016 Redistributable heruntergeladen und installiert werden.

  1. Falls noch nicht geschehen, bitte auf dem Computer die .NET Core Laufzeitumgebung, PowerShell 7, das PowerShell-Modul PSEnbrea installieren und einen Zeitraum in ENBREA anlegen. Was genau hierfür zu tun ist, steht im Kapitel Voraussetzungen.

    Bitte beachten

    BBS-Planung setzt eine 32-Bit-Installation von Microsoft Access voraus. Und das bedeutet, es steht lediglich der 32-Bit-ODBC-Treiber zur Verfügung. In diesem Fall muss auch die 32-Bit-Version der .NET Core Laufzeitumgebung installiert werden. Eine parallele Installation des 64-Bit-ODBC-Treibers ist leider nicht möglich.

  2. Im Windows-Explorer ein neues Verzeichnis c:\enbrea anlegen (das Verzeichnis kann natürlich auch anders heißen).

  3. PowerShell 7 über das Windows-Menü starten: Start > Windows Powershell > Windows Powershell

  4. Mit folgendem Befehl in das soeben angelegte Verzeichnis wechseln:

    cd c:\enbrea
    
  5. Nun folgenden PowerShell-Befehl eintippen:

    Initialize-EnbreaImport enbrea.json
    

    Es wird jetzt eine Konfigurationsdatei enbrea.json angelegt, die als Vorlage für die weitere Konfiguration dient.

  6. Bitte folgenden PowerShell-Befehl eintippen:

    Install-EcfTools enbrea,bbsplanung
    

    Es werden das ECF Tool for ENBREA und das ECF Tool for BBS-Planung installiert.

Konfigurieren

Die gesamte Konfiguration des Imports befindet sich in der Textdatei enbrea.json. Diese Datei in einem Texteditor öffnen und die gewünschten Eigenschaften überschreiben.

Die folgenden Eigenschaften müssen angepasst werden. Sie konfigurieren den individuellen Zugang zu ENBREA:

Eigenschaft Bedeutung
Enbrea.EcfImport.IdentityServiceUrl URL zum ENBREA Identity Service
Enbrea.EcfImport.IdentityUserName ENBREA Benutzername
Enbrea.EcfImport.IdentityPassword ENBREA Kennwort
Enbrea.EcfImport.SchoolServiceUrl URL zum ENBREA School Service
Enbrea.EcfImport.SchoolTermId ID des ENBREA-Zeitraums, in den importiert werden soll. Die ID des Zeitraums ist in der Adressleiste des Browsers sichtbar, während man an der ENBREA-Instanz angemeldet ist.

Die folgenden Eigenschaften müssen ebenfalls angepasst werden. Sie konfigurieren den Zugang zur Access-Datenbank von BBS-Planung:

Eigenschaft Bedeutung
BbsPlanung.EcfExport.DatabaseConnection Connection-String zur Access-Datenbank von BBS-Planung
BbsPlanung.EcfExport.SchoolNo Offizielle Schulnummer der eigenen Schule

Alle anderen Eigenschaften sind schon vorkonfiguriert, können aber natürlich jederzeit überschrieben werden.

Bitte beachten

Der Backslash (= umgedrehter Schrägstrich) in Dateipfaden muss in einer JSON-Datei stets gedoppelt werden, also \\ statt \.

Das Ergebnis könnte wie folgt aussehen:

{
    "BBSPlanung" : {
        "EcfExport": {
            "TargetFolderName": "bbs-planung\\ecf-export",
            "DatabaseConnection": "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=c:\\Access\\s_daten.mdb;SystemDB=c:\\Access\\system.mdw;Uid=admin;Pwd=qwertz",
            "SchoolNo": 12345
        }   
    },
    "Enbrea" : {
        "EcfImport": 
        {
            "IdentityServiceUrl" : "https://enbrea.beispiel.de/identity",
            "IdentityUserName" : "importbenutzer",
            "IdentityPassword" : "qwertz",
            "SchoolServiceUrl" : "https://enbrea.beispiel.de/school",
            "SchoolTermId" : "9067eff1-6817-4e59-855c-9ace4e51f139",
            "Files" : [
                { "Name" : "CourseCategories", "KeyHeaders":"Code" },
                { "Name" : "CourseFlags", "KeyHeaders":"Code" },
                { "Name" : "CourseTypes", "KeyHeaders":"Code" },
                { "Name" : "EducationalAreas", "KeyHeaders":"Code" },
                { "Name" : "EventTypes", "KeyHeaders":"Code" },
                { "Name" : "ExamTypes", "KeyHeaders":"Code" },
                { "Name" : "FormsOfTeaching", "KeyHeaders":"Code" },
                { "Name" : "LessonProfiles", "KeyHeaders":"Code" },
                { "Name" : "LevelOfQualifications", "KeyHeaders":"Code" },
                { "Name" : "ResourceCategories", "KeyHeaders":"Code" },
                { "Name" : "ResourceFlags", "KeyHeaders":"Code" },
                { "Name" : "RoomAbsenceReasons", "KeyHeaders":"Code" },
                { "Name" : "RoomTypes", "KeyHeaders":"Code" },
                { "Name" : "SchoolClassAbsenceReasons", "KeyHeaders":"Id" },
                { "Name" : "SchoolClassFlags", "KeyHeaders":"Code" },
                { "Name" : "SchoolClassLevels", "KeyHeaders":"Code" },
                { "Name" : "SchoolClassProfils", "KeyHeaders":"Code" },
                { "Name" : "SchoolForms", "KeyHeaders":"Code" },
                { "Name" : "SchoolOrganisations", "KeyHeaders":"Code" },
                { "Name" : "SchoolTypes", "KeyHeaders":"Code" },
                { "Name" : "SubjectFocuses", "KeyHeaders":"Code" },
                { "Name" : "SubjectTypes", "KeyHeaders":"Code" },
                { "Name" : "TeacherAbsenceReasons", "KeyHeaders":"Id" },
                { "Name" : "TeacherAbsenceReasonDifferentiations", "KeyHeaders":"Code" },
                { "Name" : "TeacherTypes", "KeyHeaders":"Code" },
                { "Name" : "TimeAccountEntryReasons", "KeyHeaders":"Code" },
                { "Name" : "TimeAccountEntryReportings", "KeyHeaders":"Code" },
                { "Name" : "TimeAccountEntryTypes", "KeyHeaders":"Code" },
                { "Name" : "VacationTypes", "KeyHeaders":"Code" },
                { "Name" : "VocationalField", "KeyHeaders":"Code" },
                { "Name" : "EducationalPrograms", "KeyHeaders":"Code" },
                { "Name" : "TimeFrames", "KeyHeaders":"Code" },
                { "Name" : "Departments", "KeyHeaders":"Code" },
                { "Name" : "Rooms", "KeyHeaders":"Code" },
                { "Name" : "RoomAbsences", "KeyHeaders":"Id" },
                { "Name" : "Subjects", "KeyHeaders":"Code" },
                { "Name" : "EducationalContents", "KeyHeaders":"Code" },
                { "Name" : "EducationalMaterials", "KeyHeaders":"Code" },
                { "Name" : "SubjectLearningField", "KeyHeaders":"Code" },
                { "Name" : "Teachers", "KeyHeaders":"Code" },
                { "Name" : "TeacherAbsences", "KeyHeaders":"Id" },
                { "Name" : "Students", "KeyHeaders":"LastName;FirstName;Birthdate" },
                { "Name" : "StudentAbsences", "KeyHeaders":"Id" },
                { "Name" : "StudentSubjects", "KeyHeaders":"Id" }
                { "Name" : "SchoolClasses", "KeyHeaders":"Code" },
                { "Name" : "SchoolClassAbsences", "KeyHeaders":"Id" },
                { "Name" : "Courses", "KeyHeaders":"Id", "DeleteStrategy" : "DeleteRemaining" },
                { "Name" : "Announcements", "KeyHeaders":"Id", "DeleteStrategy" : "DeleteRemaining" },
                { "Name" : "ScheduledLessons", "KeyHeaders":"Id", "DeleteStrategy" : "DeleteRemaining" },
                { "Name" : "SubstituteLessons", "KeyHeaders":"Id", "DeleteStrategy" : "DeleteRemaining" },
                { "Name" : "LessonGaps", "KeyHeaders":"Id", "DeleteStrategy" : "DeleteRemaining" },
                { "Name" : "Vacations", "KeyHeaders":"Id", "DeleteStrategy" : "DeleteRemaining" }
            ]
        }
    }
}

Testen

  1. PowerShell 7 über das Windows-Menü starten: Start > Windows Powershell > Windows Powershell

  2. Mit folgendem Befehl in unser ENBREA-Verzeichnis wechseln:

    cd c:\enbrea
    
  3. Bitte folgenden PowerShell-Befehl eintippen:

    Start-EnbreaImport bbsplanung enbrea.json
    

Die Daten aus BBS-Planung werden ins ECF-Format übersetzt und anschließend nach ENBREA übertragen.

Automation

Die Synchronisation zwischen BBS-Planung und ENBREA kann natürlich automatisiert werden. Tipps zur Automation per BATCH-Datei oder Windows-Aufgabenplanung sind im Kapitel Automation zu finden.