PREP_PROCESS_FILE

Verwenden Sie die Script-Funktion PREP_PROCESS_FILE, um den Inhalt einer Textdatei abzurufen, wie z. B. einer Log- oder Trace-Datei, die auf einem bestimmten Computer verfügbar ist. Der Inhalt der Datei wird in einer internen Liste (Datensequenz) Zeile für Zeile gespeichert. Mit dem Script können Sie nach einem bestimmten Text in der Datei filtern. Die Script-Funktion gibt einen Verweis auf eine Datensequenz zurück, die Sie zur weiteren Verarbeitung verwenden können, indem Sie den Rückgabewert der Script-Anweisung :PROCESS zuweisen. Verwenden Sie die Script-Funktion GET_PROCESS_LINE, um auf den Inhalt der Datensequenz zuzugreifen.

Wichtig!

  • PREP_PROCESS_FILE funktioniert nur für BS-Agenten. Verwenden Sie die Funktion nicht in Kombination mit Agenten für Datenbanken, Oracle-Anwendungen, PeopleSoft, SAP, JMX oder Rapid Automation.
  • (UNIX) Berechtigungen, die mithilfe von ACL-Befehlen festgelegt werden, werden nicht berücksichtigt.
  • Die Verarbeitung von großen Dateien wirkt sich auf die Leistung des Agenten aus.

Hinweise:

  • Die Script-Funktion bewirkt, dass alle offenen Transaktionen des Scripts in die AE-Datenbank geschrieben werden. Weitere Informationen finden Sie unter Script-Verarbeitung.
  • Der Script-Variablen, die die Datensequenz-Referenz enthält, kann kein neuer Wert zugewiesen werden. Verwenden Sie :CLOSE_PROCESS, um die vorhandene Datensequenz zu verwerfen und einen neuen Wert zuzuweisen.
  • Es gibt keine Fehlermeldung, wenn die Datensequenz nicht den von Ihnen festgelegten Inhalt enthält. Die Script-Anweisung :PROCESS verarbeitet die Datensequenz in diesem Fall nicht.

Syntax

PREP_PROCESS_FILE (Host, Datei,[ Filter] [, "COL=Definition1[, Definition2]"][, UC_LOGIN=Login-Objekt])

Parameter

  • PREP_PROCESS_FILE
    Ruft den Inhalt einer Textdatei ab

  • Host
    Name des Agenten auf dem Computer, auf dem die Datei abgelegt ist
    Format: Script-Literal oder Script-Variable

  • File
    Name der zu lesenden Textdatei
    Format: Script-Literal oder Script-Variable
    Tipp: Verwenden Sie eine Script-Funktion, um den Namen einer Datei abzurufen, die Teil einer Datengruppe ist. Weitere Informationen finden Sie unter GET_FILESYSTEM.

  • Filter
    (Optional) Filtert nach einem bestimmten Inhalt einer Zeile
    Format: Script-Literal oder Script-Variable
    Standardwert: *
    Hinweis:

    • Bei dem Filter wird die Groß-/Kleinschreibung nicht beachtet.
    • Verwenden Sie das Platzhalterzeichen *, das für eine beliebige Anzahl von Zeichen steht, oder ? für ein einzelnes Zeichen in einem Filter.

  • COL
    (Optional) Definiert, ob und wie die Datensequenzzeilen in Spalten unterteilt werden
    Format: Script-Literal oder Script-Variable
    Verwenden Sie das folgende Format: COL=Definition1[, Definition2]. Weitere Informationen finden Sie unter Spalten definieren.

  • Login-Objekt
    (Optional) Name eines Login-Objekts
    Die Anmeldedaten im Login-Objekt werden für den Zugriff auf die zu lesende Datei geprüft. Der tatsächliche Dateizugriff und die Übertragung auf die Automation Engine erfolgt durch den tatsächlichen Benutzer des Agenten.
    Format: Script-Literal oder Script-Variable
    Wichtig! Wenn Sie kein Login-Objekt angeben, muss der Benutzer über folgende Rechte verfügen: Dateiübertragung: Start ohne Login-Objekt angegebenund FT_ANONYMOUS=Y muss gesetzt werden. Weitere Informationen finden Sie unter Berechtigungen Automation Enginegewähren und UC_HOSTCHAR_DEFAULT - Host-Charakteristika.

Spalten definieren

Die Script-Funktion liest standardmäßig eine ganze Zeile. Auf die Daten kann auch zugegriffen werden, wenn die Zeile in Spalten aufgeteilt ist. Die Spalten können in der ersten Zeile der Datei selbst definiert oder in den Parametern von PREP_PROCESS_FILE angegeben werden. Hierbei gelten folgende Bestimmungen:

  • Maximale Spaltenanzahl: 22
  • Gesamtgröße: 2.048 Byte
  • Maximale Spaltengröße: 255 Zeichen
  • Maximale Länge des Spaltennamens: 32 Zeichen

Wichtig! Das Script wird abgebrochen, wenn Sie diese Grenzwerte überschreiten.

Um Spalten in der Script-Funktion zu definieren, geben Sie die folgenden Parameter an:

COL=Definition1[, Definition2]

Wobei

  • COL
    Schlüsselwort für Spaltentrennung

  • Definition1
    Definiert, ob die Datensequenzzeilen in Spalten unterteilt werden
    Format: Script-Literal oder Script-Variable
    Zulässige Werte:

    • NONE
      Zeilen werden nicht in Spalten aufgeteilt
    • FILE
      Verwendet die Spaltendefinition aus der Datei
    • LENGTH
      Legt eine vordefinierte Spaltengröße fest
      Hinweis: Verwenden Sie LENGTH_TAB in Definition2, um die Größe anzugeben.
    • DELIMITER
      Trennt Spalten mit einem Trennzeichen
      Hinweis: Verwenden Sie DELIMITER in Definition2, um das Trennzeichen anzugeben.

  • Definition2
    (Optional) Definiert Spaltengrößen und -namen oder das Trennzeichen
    Format: Script-Literal oder Script-Variable
    Zulässige Werte:

    • LENGTH_TAB
      Gibt die Spaltengrößen und Spaltennamen an
      Beispiel:"COL=LENGTH,LENGTH_TAB='3=drive,100=file name'"
      Hinweise:
      • Trennen Sie einzelne Spaltendefinitionen durch Kommas.
      • Geben Sie bis zu 22 Spalten mit einer Gesamtzahl von 2.048 Byte an.
      • Geben Sie die Spaltengröße als Anzahl der Zeichen an. Die maximale Größe ist 255 Zeichen.
      • (Optional) Geben Sie Spaltennamen an. Namen können bis zu 32 Zeichen lang sein.
      • Verwenden Sie Anführungszeichen vor der ersten und nach der letzten Spaltendefinition. Verwenden Sie doppelte Anführungszeichen, wenn Sie einfache Anführungszeichen für Script-Literale in Definition2 verwenden, oder umgekehrt.
    • DELIMITER
      Definiert ein Trennzeichen, das Spalten trennt
      Die Zeilen der Datensequenz werden als Spalten zurückgegeben, die vor, zwischen oder nach dem Trennzeichen-String platziert sind.
      Beispiel:
      "COL=DELIMITER,DELIMITER=*'*"
      'COL=DELIMITER,DELIMITER=@"@'

      Standardwert: ;
      Hinweise:
      • Sie können beliebige Zeichen als Trennzeichen verwenden.
      • Sie können auch das Tabulatorzeichen als Trennzeichen verwenden: 'DELIMITER=<TAB>'
      • Das Trennzeichen kann ein String mit bis zu 10 Zeichen sein.
      • Schließen Sie das Trennzeichen mit einem beliebigen Zeichen ein: *Trennzeichen*. Die umschließenden Zeichen werden in der Ausgabe nicht angezeigt.
      • Eine Spalte wird nicht getrennt, wenn eine Zeile kein Trennzeichen enthält.
      • Wenn Sie einfache Anführungszeichen als Trennzeichen verwenden, müssen Sie Definition2 in doppelte Anführungszeichen einschließen und umgekehrt.

Beispiele

Im folgenden Beispiel wird der Inhalt einer Textdatei gelesen, und alle Zeilen, die den String "Start" enthalten, werden abgerufen. Das Script gibt die abgerufenen Zeilen im 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 folgende Beispiel liest alle Zeilen einer Datei und unterteilt die abgerufenen Daten in Spalten, die in der ersten Zeile der Datei selbst definiert sind. Das Script gibt ein Login-Objekt für die Anmeldung bei dem Computer an, auf dem sich die Datei befindet.

: SET &HND = PREP_PROCESS_FILE (WIN21, "\\FServer\LOG.TXT" , , "COL=FILE" , 'UC_LOGIN=UC4FT' )

Das folgende Script enthält Parameter, die Spaltennamen und -breiten definieren. 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='74=PATH,25=NAME,5=VALUE,2=STATUS,9=DATE,7=TIME' " )

Das folgende Script definiert das Tabulatorzeichen als Trennzeichen für die Spalten. Das Script gibt nur den Inhalt der dritten Spalte im Aktivierungsreport 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: