Das Batch Modul, Definitionen automatisiert und zeitgesteuert ausführen
Mit dem Batch Modul können langlaufende Definitionen und immer wiederkehrende Aufgaben wie z.B. Import / Export / Update von Datenbank Tabellen sowie automatisiertes erstellen von Testdaten problemlos als Batch Job in der Nacht ausgeführt werden.
Beispiel eines Aufrufes
FHBatch.exe /MaxRows 1000 C:\Temp\Import\Umsatz.fhd
Mit diesem Befehl weisen Sie den FlowHeater an die Definition ImportUmsatz.fhd auszuführen und dabei sollen max. die ersten 1000 Datensätze berücksichtigt werden.
Hinweis
Werden Anmeldeinformationen benötigt, z.B. für eine Anmeldung an eine Datenbank ( SQL Server, Oracle, MySQL, ...), muss das evtl. benötigte Passwort in der Definition mit abgespeichert werden. Aus Sicherheitsgründen wird das Passwort verschlüsselt in der FlowHeater Definition hinterlegt!
Returncode / Exitcode / Errorlevel
Nach der Ausführung des Batch Moduls können Sie über den Exitcode in Batch Dateien (.CMD / .BAT) abfragen ob die Ausführung der gestarteten FlowHeater Definition Erfolgreich durchgeführt werden konnte. Dabei bedeuten:
4 = Die Ausführung wurde mit Warnungen abgeschlossen
8 = Die Ausführung wurde mit Fehlermeldungen abgeschlossen
12 = Die Ausführung wurde abgebrochen. Falls in der ausgeführten Definition ein Datenbank Adapter verwendet wurde wird in diesem Fall automatisch ein Rollback der aktiven Transaktion durchgeführt.
z.B.
@echo off
FHBatch.exe /MaxRows 10 Ihre-Import-Export-Definition.fhd
if %ERRORLEVEL% EQU 0 goto success
if %ERRORLEVEL% EQU 4 goto warnings
if %ERRORLEVEL% EQU 8 goto errors
if %ERRORLEVEL% EQU 12 goto abort
echo nicht definierter Returncode
goto ende
REM Erfolgeiche Ausführung
:success
echo Ausführung erfolgreich beendet
goto ende
REM Behandlung von Warnungen
:warnings
echo Ausführung mit Warnungen beendet
goto ende
REM Behandlung von Fehlern
:errors
echo Ausführung mit Fehlermeldungen beendet
goto ende
REM Behandlung von Abbrüchen
:abort
echo Ausführung abgebrochen
goto ende
REM Skript Ende
:ende
pause
Optionen
Option | Beschreibung | |
---|---|---|
/? oder /help | zeigt eine kurze Hilfebeschreibung an |
|
/Silent | Unterdrückt alle Ausgaben auf der Konsole |
|
/MaxRows n | Es werden max. die ersten n Datensätze berücksichtigt |
|
/SetParameter Name=Wert | Setzt den FlowHeater Parameter [Name] auf den angegebenen [Wert] |
|
/SetParameter Name:Crypt=Wert | Setzt den FlowHeater Parameter [Name] auf den angegebenen [Wert] der Wert muss dabie vorher mit der Option /Crypt verschlüsselt werden |
|
/ParameterFile Dateiname | Parameter werden über die hier angegebene UTF-8 Datei gesetzt. Den genauen Aufbau der Datei können Sie weiter unten entnehmen. |
|
/Memory | Stellt auf Hauptspeicherdatenverarbeitung um (ab Version 2.x) |
|
/Massdata | Stellt auf den Massenverarbeitungsmodus um |
|
/ExecuteSteps "n, von-bis" | Es werden nur die hier angegebenen Verarbeitungsschritte ausgeführt. Es können mit Komma getrennt beliebig viele Bereiche angegeben werden. |
|
/LogFile Dateiname | fügt die Ausgabe an das angegebene Logfile an |
|
/LogCompact | hiermit wird ein einzeiliges (kompaktes) Ausgabeformat aktiviert |
|
/LogQuote | umschließt die einzelnen Logeinträge mit dem Anführungszeichen |
|
/LogDelete | löscht die angegebene Logdatei vor der Ausführung |
|
/ShowDebug | gibt Debug Meldungen auf der Konsole aus |
|
/DisableDebug | Deaktiviert Debug Meldungen (ab Version 2.x) |
|
/ShowWarnings | Aktiviert Warnungen (ab Version 2.x) |
|
/DisableWarnings | Deaktiviert Warnungen |
|
/Crypt Wert | Verschlüsselt den Wert zur späteren Verwendung über die Option /SetParameter Name:Crypt=Wert |
Nur für TextFile, Excel und XML Adapter
Für die Adapter TextFile, Excel und XML können Sie über die Optionen /ReadFileName und /WriteFileName festlegen welche Datei gelesen bzw. geschrieben werden soll. Ist auf der jeweiligen Seite ein andere Adapter vorhanden wirft diese Option eine Fehlermeldung aus und die Verarbeitung wird abgebrochen.
Option | Beschreibung | |
---|---|---|
/ReadFileName Dateiname | Überschreibt die Vorgabe in der Definitionsdatei. Setzt dabei den Dateinamen vom ersten Adapter im ersten Verarbeitungsschritt. Über /ReadFileName[:V[:A]] können auch beliebig andere Adapter in anderen Verarbeitungsschritten gesetzt werden. z.B. setzt /ReadFileName:2:1 die Eingabedatei vom ersten Adapter im zweiten Verarbeitungsschritt. Wird der Adapter [:A] weggelassen wird automatisch der erste Adapter vom angegeben Verarbeitungsschritt verwendet. Wildcards wie C:\Temp\*.csv sind erlaubt! |
|
/WriteFileName Dateiname | Überschreibt die Vorgabe in der Definitionsdatei. Setzt dabei den Dateinamen vom ersten Adapter im letzten Verarbeitungsschritt. Über /WriteFileName[:V[:A]] können auch beliebig andere Adapter in anderen Verarbeitungsschritten gesetzt werden. z.B. setzt /WriteFileName:2:1 die Ausgabedatei vom ersten Adapter im zweiten Verarbeitungsschritt. Wird der Adapter [:A] weggelassen wird automatisch der erste Adapter vom angegeben Verarbeitungsschritt verwendet. |
Hinweis: Die Option /ReadFileName setzt immer den Dateinamen des ersten Adapters im ersten Verarbeitungsschritt und die Option /WriteFileName setzt den Ausgabedateinamen vom ersten Adapter im letzten Verarbeitungsschritt. Ist es notwendig weitere Dateinamen über die Batchverarbeitung zu übergeben können diese z.B. über FlowHeater Parameter mittels der Option „/SetParameter FILE2=C:\Temp\export.csv“ realisiert werden.
Ab Version 2.x werden alle Optionen die Sie über den Designer im Test und Ausführen Dialog eingestellt haben mit in der FlowHeater Definition abgespeichert. Die oben aufgeführten Optionen benötigen Sie nur noch wenn Sie die Voreinstellung während der Batchausführung verändern möchten.
z.B. Sie haben einen etwas größeren Datenbestand den Sie importieren/exportieren möchten. Im Designer stellen Sie solange Sie die Definition erstellen und testen die Option ein, dass Sie max. 1000 Datensätze verarbeiten möchten. Diese Einstellung wird jedoch mit in der Definitionsdatei gespeichert. Wenn Sie nun diese Definition über das Batchmodul ohne weitere Option ausführen, werden ebenfalls nur 1000 Datensätze verarbeitet. Damit das Batchmodul während der Batchverarbeitung alle vorhandenen Datensätze verarbeitet brauchen Sie nur die Option /MaxRows mit dem Wert 0 aufrufen. Siehe Beispiel.
FHBatch.exe /MaxRows 0 import.fhd
Hiermit werden alle verfügbaren Datensätze/Zeilen verarbeitet, egal welche Voreinstellung in der Definition vorgenommen wurde.
Aufbau UTF-8 Parameter Datei Option /ParameterFile
Über die hier angegeben UTF-8 Datei können beliebig vielen Parameter an das Batch Modul übergeben werden, die dann vor der Ausführung gesetzt werden. Damit Umlaute, Sonderzeichen, etc. sauber verarbeitet werden, muss die Datei als UTF-8 codierte Datei (Codepage 65001) vorliegen. Pro Zeile kann ein FlowHeater Parameter gesetzt werden z.B. „Parametername=Wert“. Leerzeilen werden überlesen, sowie werden Zeilen die mit dem Zeichen „#“ beginnen ignoriert. Diese Zeilen können genutzt werden um Notizen bzw. Kommentare zu hinterlegen.
Hier mal ein Beispiel:
# setzt den Parameter "P1" mit dem Wert "123"
P1=123
# setzt den Parameter "P2" mit dem Wert "123", Leerzeichen am Anfang/Ende werden ignoriert!
P2 = 123
# Falls Leerzeichen benötigt werden kann das so realisiert werden
# setzt den Parameter "P3" mit dem Wert " 123 ", Leerzeichen bleiben erhalten
P3=" 123 "
# Es geht auch das = Zeichen im Wert zu verwenden
# setzt den Parameter "P4" mit dem Wert "123=123"
P4=123=123
# Falls das Hochkomma ebenfalls benötigt wird kann das so gesetzt werden
P5=""123""
# Verschlüsselte Parameter können natürlich auch übergeben werden
P6:crypt=f+BdILS19FM##
Beispiele
Mit dem Batch Modul können Sie z.B. problemlos jede Nacht automatisiert Umsatzzahlen als CSV Textdatei erstellen lassen. Oder Flatfiles bzw. Testdaten, formatiert mit festen längen, die dann zu Testzwecken (für die Entwickler unter uns) in eine SQL Server Datenbank automatisiert importiert werden, etc.
Folgende Beispiele sind zum Batch Modul bereits verfügbar
YouTube Tutorial Video zur Batch Automatisierung