Automation
Der Datenimport nach ENBREA bzw. der Datenexport aus ENBREA basiert im Wesentlichen auf PowerShell-Cmdlets. Diese können sehr flexibel automatisiert werden. Es folgen einige Beispiele.
Windows-Aufgabenplanung¶
Eine vollständige Automatisierung gelingt am besten über die Windows-Aufgabenplanung. Die Aufgabenplanung ist Bestandteil von Windows und ermöglicht das Starten von Anwendungen einmalig oder wiederkehrend zu festgelegten Zeitpunkten.
Ein Beispiel¶
Der Abgleich zwischen DAVINCI und ENBREA soll täglich um 21:00 gestartet werden. Da dieser Prozess im Hintergrund läuft, soll die Ausgabe in einer Textdatei geloggt werden, so dass nachträglich geprüft werden kann, ob die Aktion erfolgreich war oder nicht. Dabei soll jeden Tag eine neue Textdatei angelegt werden. Die Konfigurationsdatei ist in unserem Beispiel unter c:\enbrea\enbrea.json
gespeichert.
Los geht's:
-
Bitte die Aufgabenplanung starten, indem im Suchfeld der Windows-Taskleiste "Aufgabenplanung" eingetippt wird.
-
In der Aufgabenplanung in der rechten Aktionsleiste auf
Einfache Aufgabe erstellen
klicken. Es öffnet sich ein Assistent.
- Bitte einen Namen für die neue Aufgabe eingeben und optional eine Beschreibung. Anschließend auf
Weiter
klicken.
- Auf der nächsten Ansicht musst definiert werden, wie oft der Abgleich ausgeführt werden soll. Die Auswahl bleibt bei
Täglich
, bitte aufWeiter
klicken.
- Auf der nächsten Ansicht musst definiert werden, wann genau am Tag der Abgleich ausgeführt werden soll. Hier bitte die gewünschte Uhrzeit eintippen, in unserem Beispiel also 21:00. Anschließend auf
Weiter
klicken.
- Auf der nächsten Ansicht musst definiert werden, was denn nun geschehen soll. Die Auswahl bei
Programm starten
belassen und aufWeiter
klicken.
- Jetzt musst definiert werden, welches Programm gestartet werden soll. Es soll ein PowerShell-Cmdlet gestartet werden. Dazu müssen in die drei Felder folgende Angaben eingetippt werden:
Eingaben auf der Karte "Aktionen" |
---|
Programm/Skript"C:\Program Files\PowerShell\7\pwsh.exe" Diese Angabe wäre der Standard, kann aber entsprechend Deiner Wahl bei der Powershell-Installation abweichen. Argumente hinzufügen -command "& {Start-EnbreaImport davinci .\enbrea.json *> .\logs\log-davinci-$(Get-Date -f yyyy-MM-dd).txt}" Starten in (optional) c:\enbrea Bitte prüfe, ob das Verzeichnis "enbrea" an der Stelle angelegt wurde und ggfs. den Pfad anpassen. Bitte im enbrea-Verzeichnis ein neues Verzeichnis "logs" erstellen! |
Sehr wichtig!
Damit ein Logfile angelegt wird, bitte vorher den Ordner logs
unter c:\enbrea
anlegen!
Das Ganze sieht dann so aus. Anschließend auf Weiter
klicken.
- Jetzt noch einmal alles zusammengefasst. Das sieht gut aus, jett bitte auf
Fertigstellen
klicken.
Die Aufgabenplanung erstellt jetzt die gewünschte Aufgabe.
Ein Sache ist aber noch wichtig. Standardmäßig wird die Aufgabe nur dann ausgeführt, wenn Sie an Ihrem Computer aktiv angemeldet sind. Das ist aber nicht immer erwünscht. Möchte man die Aufgabe beispielsweise auf einem Windows-Server erstellen, dann soll diese ja auch dann ausgeführt werden, wenn kein Server-Administrator am Server angemeldet ist (Das ist ja der Standardfall). In diesem Fall muss die Konfiguration der Aufgabe angepasst werden:
- Die neue Aufgabe in der Windows-Aufgabenplanung auswählen und rechts unter
Ausgewähltes Element
aufEigenschaften
klicken. Es öffnet sich ein Dialogfenster.
- Unter
Sicherheitsoptionen
die OptionUnabhängig von der Benutzeranmeldung ausführen
auswählen und mitOK
bestätigen.
- Es erscheint die Auffordung, sich mit einem passenden Windows-Benuztzerkonto zu authentifizieren. In der Regel sollte das eigene Windows-Benuztzuerknto ausreichen.
Das Ergebnis:
Die Aufgabe wurde erstellt, die das PowerShell-Cmdlet zum Übertragen der Daten von DAVINCI nach ENBREA täglich m 21:00 startet. Die Ausgabe wird in eine Textdatei geloggt, so dass stets kontrolliert werden kann, ob der letzte Übertrag erfolgreich war oder nicht.
Batch¶
Wer sich einfach nur das Tippen ersparen möchte, kann sich die PowerShell-Aufrufe in einer klassischen BATCH-Datei zusammenfassen.
Hier ein Beispiel für den Import der Daten von DAVINCI nach ENBREA:
Bitte eine leere Textdatei mit der Dateiendung .bat anlegen und folgenden Code hineinkopieren:
@ECHO OFF
rem Please specify your folder with the JSON config file
SET ConfigFolder="c:\enbrea"
rem Stores the current directory, and then changes to the specified directory.
PUSHD %ConfigFolder%
rem Executes PowerShell
pwsh.exe -command "& {Start-EnbreaImport davinci .\enbrea.json}"
rem Changes back to the directory that was most recently stored by the pushd
POPD
rem Wait for key press
PAUSE
Bitte die Dateipfade anpassen und die Datei speichern. Jetzt kannst, wann immer man möchte, per Doppelklick die Batch-Datei gestartet werden.
Die neue Batch-Datei macht Folgendes: Sie startet das PowerShell-Cmdlet zum Übertragen der Daten von DAVINCI nach ENBREA. Die Ausgabe wird auf dem Bildschirm angzeigt.
Aktualisierungsabstände¶
Die Automation sollte in angemessenen Abständen erfolgen. Was angemessen ist, hängt von der individuellen Situation ab, dabei gibt die Zeit, die für den Übertrag je Programm (beispielsweise aus MAGELLAN und DAVINCI) erstmalig gebraucht wird, einen ersten Hinweis.
Aktuell werden beim Übertrag immer die gesamten übertragbaren Daten genutzt. Also auch die Wiederholung benötigen die Zeit, die die Erstübertragung benötigte.
Zusätzlich sollten die Aktualisierungen, wenn aus mehr als einem Ausgangsprogramm übertragen wird, sich nicht überschneiden.
Beispiel:
Übertragszeit für Programm1 alle geraden Stunden, Übertragszeit für Programm2 alle ungeraden Stunden.
Soll eine Änderung sofort übertragen werden, könnte die Übertragung der Änderung per Doppelklick auf die Batchdatei angestoßen werden oder, wenn diese Variante nicht genutzt wurde, kann in der Aufgabenplanung auch jede Aufgabe von Hand sofort ausgelöst werden.