Script-Funktion: Ermittelt mit Filterkriterien zeilenweise den Inhalt einer Textdatei, die sich auf einem angegebenen Rechner befindet, und stellt das Ergebnis als interne Auflistung (Datensequenz) für die weitere Verarbeitung zur Verfügung.
PREP_PROCESS_FILE (Host, File, [Filter] [,"COL=Definition1, [Definition2]"], [UC_LOGIN=Login object])
Syntax |
Beschreibung/Format |
---|---|
Host |
Rechner (Name des Agenten), auf dem sich die Datei befindet. |
Datei |
Name der Textdatei mit kompletter Pfadangabe, die gelesen werden soll. Den Namen einer Datei, die zu einer Data Group gehört, können Sie mit der Script-FunktionGET_FILESYSTEM ermitteln. |
Filter |
Vorgabe für den Zeileninhalt. Groß- und Kleinschreibung wird nicht beachtet.. |
Definition1 |
Legt fest, ob die Zeilen in Spalten unterteilt sein sollen. Erlaubte Werte: "NONE" (Standardwert), "FILE", "LENGTH", "DELIMITER" "NONE" = Keine Unterteilung in Spalten. |
Definition2 |
Legt Spaltenbreiten und Spaltennamen (optional) oder das Begrenzungszeichen fest. Erlaubte Werte: "LENGTH_TAB" und "DELIMITER"
|
UC_LOGIN |
Name eines Login-Objektes. |
Rückgabewert |
---|
Referenz auf die Datensequenz der Datei. |
Die Script-Funktion PREP_PROCESS_FILE stellt den Inhalt einer Textdatei, beispielsweise LOG- oder Tracedatei, für eine weitere Verarbeitung mit AE-Script bereit.
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:
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 zur Automation Engine wird mit den im Login definierten Anmeldedaten durchgeführt. Benutzer benötigen das Privileg "FileTransfer: Ohne Angabe von Benutzerkennung ausführen, wenn die Script-Funktion PREP_PROCESS_FILE ohne den Parameter UC_LOGIN verwendet werden soll.
Der Rückgabewert der Script-Funktion ist die Referenz auf eine Datensequenz. Sie wird den Script-Anweisungen :PROCESS und :ENDPROCESS als Startparameter übergeben. In Kombination mit der Script-Funktion GET_PROCESS_LINE kann damit jede einzelne Zeile der Datensequenz und deren Spalten bearbeitet werden.
Enthält die Datei 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. Die Verwendung im Zusammenhang mit Agenten für Datenbanken, Oracle Applications, PeopleSoft, SAP, JMX oder Rapid Automation ist nicht möglich.
Beachten Sie, dass die Verarbeitung von äußerst großen Dateien Einfluss auf die Performance des Agenten hat.
Das Script-Sprachmittel bewirkt, dass die offenen Transaktionen des Scripts in die Datenbank geschrieben werden.
Das erste Beispiel gibt alle Zeilen der Datei "\\FServer\UC4\BSP\INPUT.TXT", welche die Zeichenkette "Start" enthält, in das Aktivierungsprotokoll 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. Das entsprechende Login-Objekt wird zum Login genutzt.
: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 einer Spaltenbezeichnung zugeordnete Spaltenbreiten sein, oder nur die Spaltenbreite. 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 zeigt der Parameter "COL=DELIMITER" an, dass ein Begrenzungszeichen mithilfe des folgenden Parameters definiert wird – der Tabulator. 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:
Script-Sprachmittel | Beschreibung |
---|---|
Verwirft eine Datensequenz innerhalb eines Scripts. |
|
Definition einer Schleife zur zeilenweisen Bearbeitung einer Datensequenz, wie beispielsweise den Inhalt einer sequentiellen Datei oder das textmäßige Ergebnis eines Kommandos. |
|
Ermittelt den aktuellen Zeileninhalt einer Datensequenz. |
Script-Sprachmittel - Datensequenzen
Allgemeines zum Script
Script-Sprachmittel - Alphabetische Auflistung
Script-Sprachmittel - Funktionelle Gliederung
Automic Documentation - Tutorials - Automic Blog - Resources - Training & Services - Automic YouTube Channel - Download Center - Support |
Copyright © 2016 Automic Software GmbH |