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.
Format: Script-Literal oder Script-Variable

File

Name der zu ladenden Textdatei.
Format: Script-Literal oder Script-Variable

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.

Format: Script-Literal oder Script-Variable
Standardwert: „*“

Definition1

Legt fest, ob die Zeilen der Datensequenz in Spalten unterteilt werden sollen.
Format: Script-Literal oder Script-Variable

Erlaubte Werte: "NONE" (Standardwert), "FILE", "LENGTH", "DELIMITER"

"NONE" = Keine Unterteilung in Spalten
"FILE" = Die Spalten wurden in der Datei definiert
"LENGTH" = Vorgegebene Spaltenbreiten. Erfordert LENGTH_TAB= als Definition2
"DELIMITER" = Spalten werden durch ein Begrenzungszeichen getrennt. Erfordert DELIMITER= als Definition2

Definition2

Legt Spaltengrößen und -namen (optional) oder das Trennzeichen fest.
Format: Script-Literal oder Script-Variable

Erlaubte Werte: "LENGTH_TAB" und "DELIMITER"

  • „LENGTH_TAB“

    Spaltenbreiten und Spaltennamen (optional) werden in der Form Spaltenbreite=[Spaltenname] angegeben. Die Spaltenbreite wird über eine Zeichenanzahl definiert. Die einzelnen Spalten sind durch Kommata zu trennen (maximal 22 Spalten). Vor der ersten und nach der letzten Spaltendefinition müssen zusätzlich Hochkommata stehen. Werden für Definition2 als Script-Literal doppelte Hochkommata verwendet, müssen das einfache Hochkommata sein, sonst umgekehrt.

    Beispiel

    "COL=LENGTH,LENGTH_TAB='3=drive,100=file name'"
  • "DELIMITER"

    Das Begrenzungszeichen wird in der Form *Delimiter* angegeben.
    "*" = frei wählbares Begrenzungszeichen.
    Trennzeichen
    = Zeichenkette aus maximal 10 Zeichen, welche die Spalten voneinander trennt. Wenn einzelne Anführungszeichen als Trennzeichen verwendet werden, muss der ganze Satz COL=Definition1[,Definition2] in doppelte Hochkommata eingeschlossen werden und umgekehrt.

    Standardwert: Semikolon (;)

    Beispiel

    "COL=DELIMITER,DELIMITER=*'*"
    'COL=DELIMITER,DELIMITER=@"@'


    Als Trennzeichen können Sie auch Tabulatoren definieren:

    'DELIMITER=<TAB>'

UC_LOGIN

Name eines Login-Objekts.
Format: Script-Literal oder Script-Variable


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:

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:

auch

Script-Sprachmittel für Datensequenzen