Zum Inhalt

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:

  1. Bitte die Aufgabenplanung starten, indem im Suchfeld der Windows-Taskleiste "Aufgabenplanung" eingetippt wird.

  2. In der Aufgabenplanung in der rechten Aktionsleiste auf Einfache Aufgabe erstellen klicken. Es öffnet sich ein Assistent.

Einfache Aufgabe erstellen

  1. Bitte einen Namen für die neue Aufgabe eingeben und optional eine Beschreibung. Anschließend auf Weiter klicken.

Name und Beschreibung

  1. Auf der nächsten Ansicht musst definiert werden, wie oft der Abgleich ausgeführt werden soll. Die Auswahl bleibt bei Täglich, bitte auf Weiter klicken.

Aufgabentrigger

  1. 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.

Tägliche Wiederholung

  1. Auf der nächsten Ansicht musst definiert werden, was denn nun geschehen soll. Die Auswahl bei Programm starten belassen und auf Weiter klicken.

Aktion

  1. 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.

Programm starten

  1. Jetzt noch einmal alles zusammengefasst. Das sieht gut aus, jett bitte auf Fertigstellen klicken.

Zusammenfassung

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:

  1. Die neue Aufgabe in der Windows-Aufgabenplanung auswählen und rechts unter Ausgewähltes Element auf Eigenschaften klicken. Es öffnet sich ein Dialogfenster.

Eigenschaften

  1. Unter Sicherheitsoptionen die Option Unabhängig von der Benutzeranmeldung ausführen auswählen und mit OK bestätigen.

Unabhängig von der Benutzeranmeldung

  1. Es erscheint die Auffordung, sich mit einem passenden Windows-Benuztzerkonto zu authentifizieren. In der Regel sollte das eigene Windows-Benuztzuerknto ausreichen.

Authentifizierung

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.