PREP_PROCESS_FILE
Script-Funktion: Verwendet Filterkriterien, um den Inhalt einer Textdatei abzurufen, die auf einem bestimmten Computer zeilenweise verfügbar ist. Liefert das Ergebnis zur Weiterverarbeitung in Form einer internen Liste (Datensequenz).
Syntax
PREP_PROCESS_FILE (Host, File,[ Filter] [, "COL=Definition1[, Definition2]"][, UC_LOGIN=Login object])
Syntax |
Beschreibung/Format |
---|---|
Host |
Der Computer (Name eines Agenten), auf dem sich die Datei befindet. |
File |
Name der zu ladenden Textdatei. Der Name einer Datei, die Teil einer Datengruppe ist, kann mit der Script-Funktion GET_FILESYSTEM abgerufen werden. |
Filter |
Die Definition einer Filterbedingung für den Inhalt einer Zeile. Groß- und Kleinschreibung wird nicht beachtet. |
Definition1 |
Legt fest, ob die Zeilen der Datensequenz in Spalten unterteilt werden sollen. Erlaubte Werte: "NONE" (Standardwert), "FILE", "LENGTH", "DELIMITER" "NONE" = Keine Unterteilung in Spalten |
Definition2 |
Legt Spaltengrößen und -namen (optional) oder das Trennzeichen fest. Erlaubte Werte: "LENGTH_TAB" und "DELIMITER"
|
UC_LOGIN |
Name eines Login-Objekts. |
Rückgabewert |
---|
Verweis auf die Datensequenz der Datei |
Die Script-Funktion PREP_PROCESS_FILE stellt den Inhalt einer Textdatei - zum Beispiel einer LOG- oder Trace-Datei - zur Weiterverarbeitung mit AE-Scripts zur Verfügung.
Die Script-Funktion liest standardmäßig eine ganze Zeile. Es kann aber auch strukturiert zugegriffen werden, wenn die Zeile in Spalten unterteilt ist. Hierbei gelten folgende Bestimmungen:
- maximal 22 Spalten mit einer Gesamtlänge von 2048 Bytes,
- Spaltenbreite maximal 255 Zeichen und
- Spaltenname maximal 32 Zeichen.
Die Spalten können auch in der Datei selbst definiert werden (erste Zeile).
Beispiel
COL=LENGTH,LENGTH_TAB='74=PATH,25=NAME,5=VALUE,2=STATUS,9=DATE,7=TIME'
Mit GET_PROCESS_LINE können Sie auf einzelne Spalten zugreifen.
Mit dem optionalen Parameter UC_LOGIN kann der Script-Funktion der Name eines Login-Objektes übergeben werden. Der Zugriff auf die zu lesende Datei und deren Übertragung vom Host zum Automation Engine erfolgt mit den im Login-Objekt definierten Login-Daten. Benutzer benötigen die Berechtigung „FileTransfer: Ohne Angabe von Benutzerkennung ausführen“, wenn die Script-Funktion PREP_PROCESS_FILE ohne den UC_LOGIN-Parameter verwendet werden soll.
Der Rückgabewert der Script-Funktion ist der Verweis auf eine Datensequenz. Sie wird den Script-Anweisungen :PROCESS und :ENDPROCESS als Startparameter übergeben. In Kombination mit der Script-Funktion GET_PROCESS_LINE kann nun jede einzelne Zeile der Datensequenz und deren Spalten bearbeitet werden.
Enthält der Report den gesuchten Inhalt nicht, führt das zu keiner Fehlermeldung. Die Bearbeitung der Datensequenz, definiert zwischen :PROCESS und :ENDPROCESS, wird einfach nicht durchlaufen.
Der Script-Variablen, die die Datensequenz-Referenz enthält, kann kein neuer Wert zugewiesen werden. Erst wenn Sie die Datensequenz mit der Script-Anweisung CLOSE_PROCESS explizit verwerfen, kann die Variable erneut verwendet werden.
PREP_PROCESS_FILE wird nur von Betriebssystem-Agenten unterstützt. Es kann nicht in Kombination mit Agenten für Datenbanken, Oracle Applications, PeopleSoft, SAP, JMX oder Rapid Automation verwendet werden.
Beachten Sie, dass die Verarbeitung von äußerst großen Dateien Einfluss auf die Performance des Agenten hat.
Das Script-Statement bewirkt, dass alle offenen Transaktionen des Scripts in die AE-Datenbank geschrieben werden. Weitere Informationen finden Sie unter Script-Verarbeitung.
Beispiele
Das erste Beispiel gibt alle Zeilen der Datei „\\FServer\UC4\BSP\INPUT.TXT“, die die Zeichenkette „Start“ enthalten, an den Aktivierungsreport aus.
:SET &HND#=PREP_PROCESS_FILE(WIN21,"\\FServer\UC4\BSP\INPUT.TXT","*Start*")
:PROCESS &HND#
: SET &LINE#=GET_PROCESS_LINE(&HND#)
: PRINT &LINE#
:ENDPROCESS
Das zweite Beispiel liest alle Zeilen einer Datei aus, während der Parameter "COL-FILE" angibt, dass die Spaltenbezeichnungen und Spaltenbreite in der Datei selbst definiert sind. Die Anmeldung erfolgt über das mitgelieferte Login-Objekt.
:SET &HND = PREP_PROCESS_FILE(WIN21, "\\FServer\LOG.TXT", ,"COL=FILE",'UC_LOGIN=UC4FT')
Das dritte Beispiel ähnelt dem vorigen, allerdings gibt der Parameter "COL-LENGTH" an, dass die Spaltendefinitionen mit dem nachfolgenden Parameter angegeben werden. Spaltendefinitionen können eine Spaltenbreite sein, die einem Spaltennamen zugeordnet ist, oder nur eine Breite. Spalten ohne Bezeichnung werden ignoriert.
:SET &HND = PREP_PROCESS_FILE(WIN21, "\\FServer\UC4\DIALOG\TEMP\UCDJ_LOGG_01.TXT","*DB-INFO*","COL=LENGTH,LENGTH_TAB='8=DATE,1,6=TIME,7,200=TEXT'")
Im nächsten Beispiel besagt der Parameter „COL=DELIMITER“, dass beim nächsten Parameter - dem Tabulator - ein Trennzeichen angegeben wird. Das Script gibt nur die dritte Spalte aus.
:SET &HND# = PREP_PROCESS_FILE(UNIX01, "/uc4/test.txt",,"COL=DELIMITER,DELIMITER=*<TAB>*")
:PROCESS &HND#
: SET &LINE# = GET_PROCESS_LINE(&HND#,3)
: PRINT &LINE#
:ENDPROCESS
Siehe auch: