Überblick
ENBREA hat es sich zum Ziel gesetzt, mit möglichst vielen Fachanwendungen Daten austauschen zu können. Bei der Implementierung haben wir uns von folgenden Grundannahmen leiten lassen:
- Viele Fachanwendungen sind immer noch Desktop-basiert.
- Viele Fachanwendungen besitzen lediglich einen einfachen Austauschmechanismus in Form von CSV-Exporten oder -Importen.
- Einige Fachanwendungen erlauben den direkten Zugriff auf die zugrundeliegende SQL-Datenbank
- Selbst Fachanwendungen mit API-Schnittstelle erlauben in der Regel keinen Echtzeitabgleich oder Differenzabgleich.
- Für einige Schulen heißt die Fachanwendung immer noch Microsoft Excel.
Also haben wir uns überlegt, welche Schnittstelle zum Importieren von Daten nach ENBREA und zum Exportieren von Daten aus ENBREA am effektivsten für unser Vorhaben ist. Das Ergebnis ist ein standardisiertes Zwischenformat, das ENBREA CSV Format (kurz ECF).
Zwischenformat bedeutet, dass alle externen Datenquellen zunächst in das ECF-Format exportiert werden. Diese ECF-Dateien werden anschließend nach ENBREA importiert. Umgekehrt funktioniert dies genauso: ENBREA exportiert seine Daten nach ECF, und von dort geht es weiter in die Zieldatenquellen. Quelle und Ziel beim Datentransfer werden also entkoppelt. ENBREA kann sich ganz auf die Verarbeitung der ECF-Dateien konzentrieren, während separate Tools dafür verantwortlich sind, ECF mit einer Quell- oder Zieldatenquelle zu verbinden.
OK, wie genau funktioniert jetzt der Datenabgleich? Die folgende Infografik visualisiert das Zusammenspiel aller Komponenten.
Jede dieser Komponenten stellen wir im Folgenden kurz vor.
ECF Dateien¶
Das ENBREA CSV Format (kurz ECF) basiert auf einem klassischen CSV-Format. Warum CSV? Die Daten in ENBREA sind relationaler Natur und relationale Datenstrukturen lassen sich prima in CSV abbilden. Außerdem lassen sich CSV-Daten sehr einfach in Excel erstellen und bearbeiten, d.h. jeder, der Excel bedienen kann, ist in der Lage individuelle Daten mit ENBREA auszutauschen.
ENBREA besitzt eine dedizierte API zum Hoch- bzw. Herunterladen von Daten im ECF-Format. Die wichtigsten API-Befehle sind:
- Hochladen von ECF-Daten in Form eines HTTP-Multipart-Requests
- Einmischen dieser ECF-Daten in die ENBREA-Datenbank
- Extrahieren von Daten aus der ENBREA-Datenbank
- Herunterladen dieser Daten im ECF-Format in Form einer HTTP-Multipart-Response
Das Hochladen bzw. Herunterladen von ECF-Daten erfolgt immer im Kontext eines vorgegebenen ENBREA-Zeitraums, d.h. es werden nur zeitraumunabhängige Daten sowie Daten aus diesem Zeitraum berücksichtigt.
Die ECF-API kann direkt programmiert werden. Sehr viel einfacher ist jedoch die Nutzung durch das ECF Tool for ENBREA.
ECF Tools¶
Ein ECF Tool ist eine Konsolenanwendung, die Folgendes kann:
- Exportieren von Daten aus einer Fachanwendung in das ECF-Format
- Importieren von Daten aus dem ECF-Format in eine Fachanwendung
Da, wo lediglich eine Datenflussrichtung unterstützt wird, implementiert ein ECF Tool auch nur diese Funktionalität (also nur Export oder nur Import).
Für Datenabgleiche mit ENBREA existieren ECF Tools:
- ECF Tool for ENBREA: Datenimport nach ENBREA und Datenexport aus ENBREA.
- ECF Tool for MAGELLAN: Datenimport aus MAGELLAN und Datenexport nach MAGELLAN.
- ECF Tool for Untis: Datenimport aus Untis
- ECF Tool for edoo.sys: Datenimport aus edoo.sys (Rheinland-Pfalz)
- ECF Tool for Schild-NRW: Datenimport aus Schild-NRW (Niedersachen)
- ECF Tool for BBS-Planung: Datenimport aus BBS-Planung (Niedersachen)
- ECF Tool for Excel: Datenimport von einfachen Excel-Tabellen (XLSX- oder CSV-Format)
Hinweis
DAVINCI spielt in diesem Zusammenhang eine Ausnahme. Die DAVINCI CONSOLE ist nicht Teil des ENBREA-Projekts, sondern wird automatisch mit DAVINCI installiert und auch ggfs. aktualisiert.
DAVINCI CONSOLE¶
Die DAVINCI CONSOLE ist ebenfalls eine Konsolenanwendung, die folgendes kann:
- Exportieren von Daten aus DAVINCI in das ECF-Format.
- Importieren von Daten aus dem ECF-Format nach DAVINCI.
Die DAVINCI CONSOLE agiert also im Prinzip auch als ECF Tool.
PSEnbrea¶
PSEnbrea ist PowerShell-Modul, das den Workflow zwischen ENBREA und externen Fachanwendungen orchestriert. PsEnbrea stellt die folgenden PowerShell-Befehle bereit:
-
Initialize-EnbreaImport
: Legt eine Konfigurationsdatei für den Import nach ENBREA an. Diese Konfigurationsdatei muss anschließend editiert werden, um individuelle Dateipfade, URLs, Authentifizierung etc. festzulegen. -
Start-EnbreaImport
: Startet einen gewünschten Import nach ENBREA (z.B. von DAVINCI). Grundlage ist die zuvor erstellte Konfigurationsdatei. -
Initialize-EnbreaExport
: Legt eine Konfigurationsdatei für den Export aus ENBREA an. Diese Konfigurationsdatei muss anschließend editiet werden, um individuelle Dateipfade, URLs, Authentifizierung etc. festzulegen. -
Start-EnbreaExport
: Startet einen gewünschten Export aus ENBREA (z.B. nach DAVINCI). Grundlage ist die zuvor erstellte Konfigurationsdatei. -
Install-EcfTools
: Installiert ein oder mehrere ECF-Tools auf dem Computer, indem es die nötigen Dateien direkt von GitHub lädt. -
Update-EcfTools
: Prüft, ob für ein bereits ECF-Tool eine neue Version vorliegt und installeirt diese bei Bedarf.
Konfigurationsdateien sind JSON-Dateien, die in einem beliebigen Texteditor bearbeitet werden können. Die PowerShell-Befehle können beliebig automatisiert werden, z.B. im Rahmen der Windows-Aufgabenplanung.
Diskussion¶
Huch, das klingt aber alles ziemlich kompliziert!
Nun, Datenabgleiche sind leider oft kompliziert. Was wir gemacht haben, ist die Komplexität aufzusplitten:
- Das ECF Tool for ENBREA ist dafür zuständig, ECF-Dateien in ENBREA einzuspielen bzw. aus ENBREA zu erzeugen. Das ECF Tool for ENBREA hat keine Kenntnisse über externe Fachanwendungen.
- Alle anderen ECF Tools bzw. die DAVINCI CONSOLE sind dafür zuständig, Daten aus Fachanwendungen nach ECF abzubilden bzw. umgekehrt ECF in die Fachanwendungen zu übertragen. Diese Tools haben keine Kenntnisse über ENBREA.
- Der gemeinsame Nenner ist das standardisierte ECF-Format
Diese Aufteilung in einzelne, unabhängige Komponenten erlaubt ein sehr hohes Maß an Flexibilität:
- Für die Unterstützung neuer Fachanwendungen müssen wir lediglich die Abbildung von bzw. in das ECF-Format implementieren, es ist keine Änderung in ENBREA selbst nötig.
- Die Fachanwendung benötigt keinen Zugriff auf ENBREA als Webanwendung und ENBREA benötigt keinen Zugriff auf die Fachanwendung. Das ist besonders dann wichtig, wenn die Fachanwendung in einem anderen Netzwerk (z.B. Verwaltungsnetzwerk) installiert ist als ENBREA (z.B. cloudbasiert).
- ECF-Dateien als Zwischenformat erlauben die Dateninspektion durch externe Tools (z.B. Excel). Das kann bei der Ursachensuche von unerwarteten Synchronisationsproblemen von enormer Hilfe sein.
- ECF-Dateien als Zwischenformat erlauben die Mutationen der Daten als optionalen Zwischenschritt. Beispielsweise könnten Daten, die aus einer bestimmten Fachanwendungen kommen normalisiert werden (z.B. doppelte Einträge entfernen).
- Obwohl unterschiedliche separate Komponenten beteiligt sind, kann alles bequem per PowerShell gesteuert und bei Bedarf auch vollständig automatisiert werden.
- Der gesamte Workflow kann mittels PowerShell sehr leicht an eigene Bedürfnisse angepasst oder erweitert werden.
Wie kann ich starten?¶
Zunächst müssen einige Systemkomponenten, sowie das PowerShell-Modul PSEnbrea installiert werden. Das Kapitel Voraussetzungen zeigt Schritt für Schritt, was zu machen ist.
Danach sucht man das passende Kapitel zur Fachanwendung heraus. Dort wird Schritt für Schritt erklärt, wie die Datensynchronisation eingerichtet werden muss: