Automation Engine Script-Leitfaden > Funktionelle Gliederung > Datensequenzen > PREP_PROCESS_FILE

PREP_PROCESS_FILE

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. 

Syntax

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

Datei

Name der Textdatei mit kompletter Pfadangabe, die gelesen werden soll.
Format: Script-Literal oder Script-Variable

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..

Format: Script-Literal oder Script-Variable
Standardwert: "*"

Definition1

Legt fest, ob die Zeilen in Spalten unterteilt sein 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 Spaltenbreiten und Spaltennamen (optional) oder das Begrenzungszeichen 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=Laufwerk,100=Dateiname'"

     
  • "DELIMITER"

    Das Begrenzungszeichen wird in der Form *Delimiter* angegeben.
    "*" = frei wählbares Begrenzungszeichen.
    Delimiter
    = Zeichenkette aus maximal 10 Zeichen, welche die Spalten voneinander trennt. Wird ein einzelnes Hochkomma als Delimiter verwendet, muss der gesamte AusdruckCOL=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-Objektes.
Format: Script-Literal oder Script-Variable


Rückgabewert

Referenz auf die Datensequenz der Datei.

Anmerkungen

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.

Beispiele

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

:CLOSE_PROCESS

Verwirft eine Datensequenz innerhalb eines Scripts.

:PROCESS... :TERM_PROCESS... :ENDPROCESS

Definition einer Schleife zur zeilenweisen Bearbeitung einer Datensequenz, wie beispielsweise den Inhalt einer sequentiellen Datei oder das textmäßige Ergebnis eines Kommandos.

GET_PROCESS_LINE

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