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:
-
Das ECF Tool for BBS-Planung liest direkt aus der Access-Datenbank von BBS-Planung und generiert ECF-Dateien.
-
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.
-
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.
-
Im Windows-Explorer ein neues Verzeichnis
c:\enbrea
anlegen (das Verzeichnis kann natürlich auch anders heißen). -
PowerShell 7 über das Windows-Menü starten:
Start > Windows Powershell > Windows Powershell
-
Mit folgendem Befehl in das soeben angelegte Verzeichnis wechseln:
cd c:\enbrea
-
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. -
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.SyncHubUrl | 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¶
-
PowerShell 7 über das Windows-Menü starten:
Start > Windows Powershell > Windows Powershell
-
Mit folgendem Befehl in unser ENBREA-Verzeichnis wechseln:
cd c:\enbrea
-
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.