call-preparser( class a, [config b], [infile c], [result max kb size d], [input encoding e], [result encoding f])
Gruppe |
Die Funktion ruft einen Preparser auf, übergibt ihm Eingangsdaten an stdin, sowie eine Konfigurationsdatei und liefert als Ergebnis einen String, der die Ergebnisdaten des Preparsers, also dessen stdout, enthält.
Der Input-Datenstrom (stdin) und der Output-Datenstrom (stdout) eines Preparsers sind Byte-orientiert. Sollen diese Bytes als Zeichen verstanden werden, ist immer ein Encoding relevant.
Die Funktion übergibt die über Parameter c angegebenen Daten als Bytestrom an den Preparser. Folgende Werte sind hierbei möglich.
Parameterwert c |
Bedeutung |
<leer> |
Keine Eingangsdaten. |
<Dateipfad> |
Der Inhalt der angegebenen Datei. Der Pfad kann relativ oder absolut angegeben werden. |
- |
Die vom Job erhaltenen Daten aus dem Backup. |
:text:<Text> |
Der nach dem Doppelpunkt angegebene Text. Für die Umwandlung in einen Bytestrom wird das in Parameter e angegebene Input-Encoding verwendet. |
:list=<Listenname>: |
Die Werte in der Named List werden durch Newlines getrennt in Text umgewandelt und dann wie in :text: beschrieben in einen Bytestrom umgewandelt. |
Die vom Preparser als Ergebnis gelieferten Daten werden als Ergebnis-String der Funktion zurück gegeben. Die Wandlung des Bytestroms vom Preparser in die Zeichenfolge des Strings erfolgt dabei mit dem Profil-Encoding, das in den Profileigenschaften gewählt wurde. Mit Parameter f kann ein abweichendes Encoding für die Ergebnis-Daten vorgegeben werden.
Da Preparser üblicherweise als Konfigurationsparameter den Pfad zu einer Properties-Datei erwarten, wird der Config-Parameter b direkt an den Preparser übergeben. Der Preparser selbst ist für das Lesen der Datei zuständig. Falls allerdings die Konfigurationsdatei dynamisch während des Jobs als Temporärdatei erzeugt wird, ist die Funktion für die Erzeugung und anschließende Löschung der Konfigurationsdatei verantwortlich.
Parameterbeschreibung
Parameter |
Beschreibung |
a |
Wichtiger Hinweis: Für neue Profile sollte nur die PPP-Konfiguration für Preparser verwendet werden. In diesem Fall muss Parameter b den Pfad zur PPP-Konfigurationsdatei enthalten. Alte Konfigurations-Methode: Der vollständige Klassenname des Preparsers mit Package, z. B. com.ebd.hub.datawizard.parser.URLDecoder. Dieser Parameter ist Pflicht, falls nicht die PPP-Konfiguration für Preparser angewendet werden soll. |
b |
(teilweise optional) Preparser-Config: Entweder der Pfad zur Config-Datei oder :map=<mapName>: oder :list=<listName>:. Dieser Parameter muss angegeben werden, falls der Preparser ein Konfiguration fordert. Im Normalfall wird hier der Pfad einer lokalen Datei erwartet. Diese Datei wird nicht durch diese Funktion geöffnet, sondern vom Preparser selbst. Die Konfigurationsdatei kann aber auch zur Laufzeit als Temporär-Datei erzeugt werden. Diese Temporär-Datei wird nach Ausführung des Preparsers wieder gelöscht. Wenn die Konfiguration des Preparsers eine Properties-Datei erwartet, kann die Temporär-Datei aus einer Named Map erzeugt werden. Falls die Reihenfolge der Konfigurationszeilen wesentlich ist, muss die Temporär-Datei aus einer Named List erzeugt werden. Die Temporär-Datei hat immer das Encoding 8859_1. Die Erzeugung der Temporär-Datei erfolgt bei jeder Ausführung der Funktion und sollte aus Performance-Gründen nur dann angewendet werden, wenn einen statische Konfiguration durch einen lokalen Datei-Pfad nicht möglich ist. Default: leer. |
c |
(optional) Input-Pfad: Quelle der Input-Daten, die an die Standardeingabe des Preparsers gesendet werden. Default: leer. |
d |
(optional) Maximale Ergebnis-Größe: Die maximal zugelassene Anzahl Bytes, die der Preparser zurückliefern darf. Bei Überschreitung erfolgt Fehlerabbruch. Die Angabe kann als einfache Zahl, oder als Zahl mit nachgestelltem M für Megabytes, k für Kilobytes oder b für Bytes erfolgen. Default: 8388608 (entspricht 8 Megabytes). |
e |
(optional) Input-Encoding: Encoding, das für die Umwandlung von Text in einen Bytestrom verwendet werden soll. Es wird ignoriert, wenn die Eingangsdaten aus einer Datei stammen. Default: utf8 |
f |
(optional) Encoding der Ergebnisdaten: Die Zeichenkodierung (encoding), die zur Wandlung der Ergebnis-Bytes des Preparsers in einen String verwendet wird. Default: Das Profil-Encoding. |
Hinweis: Wenn Parameter c mit dem Platzhalter für die Backupdatei konfiguriert ist, sind diese Daten im Mapping-Test nicht vorhanden. In diesem Fall muss ein Simulationswert für den Funktions-Test verwendet werden.
Beispiele
Dekodieren einer mit GPG verschlüsselten Datei durch Aufruf des GPG-Programmes mit dem SystemCallPreParser. Das GPG-Programm ist dabei lokal auf Betriebssystem-Ebene installiert und mit Schlüsseln konfiguriert. Die GPG verschlüsselte Datei liegt dabei als lokale Datei auf der Festplatte mit dem Namen encryptedfile.gpg.
Parameter a |
com.ebd.hub.datawizard.parser.SystemCallPreParser |
Parameter b |
./conf/GPG_decrypt.properties |
Parameter c |
encryptedfile.gpg |
Parameter d |
64M |
Parameter e |
|
Parameter f |
utf8 |
Ergebnis |
Inhalt der entschlüsselten Datei. |
Die Datei ./conf/GPG_decrypt.properties enthält folgende Zeilen.
command = C:/Programme/GNU/GnuPG/gpg.exe -d -o - -
timeout = 300000
Aufruf des selben Preparsers in PPP-Konfiguration (siehe PPP-Konfiguration für Preparser).
Parameter a |
Parameter b |
Parameter c |
Parameter d |
Parameter e |
Parameter f |
Ergebnis |
Darf frei bleiben. |
./conf/GPG_decrypt.ppp |
ecryptedfile.gpg |
64M |
|
utf8 |
Inhalt der entschlüsselten Datei. |
Die Datei ./conf/GPG_decrypt.ppp enthält folgende Zeilen.
preparser.class.name=com.ebd.hub.datawizard.parser.SystemCallPreParser
command = C:/Programme/GNU/GnuPG/gpg.exe -d -o - -
timeout = 300000