Script-Funktion: Ermittelt den aktuellen Zeileninhalt einer Datensequenz.
GET_PROCESS_LINE(Data sequence reference, [Column], [STR_SUB[STITUTE]_VAR], [Row])
Syntax |
Beschreibung/Format |
---|---|
Datensequenz-Referenz |
Referenz auf die zu verarbeitende Datensequenz. |
Spalte |
Zugriff auf eine Spalte der Datensequenz-Zeile.
Dynamische Variablen (SQL, SQLI und Multi) können beliebig viele Spalten enthalten. Dies richtet sich nach der jeweiligen Datenquelle. Statische Variablen besitzen nur 6 Wertespalten ("1" bis "6"). "1" gibt den Wert des Keys zurück, "2" bis "6" geben die 5 Werte-Spalten zurück. "6" gibt daher den Wert der Spalte 5 zurück.. FILELIST-Variablen besitzen generell nur eine Spalte, die mit "1" anzusprechen ist. |
STR_SUBSTITUTE_VAR |
Innerhalb des Zeileninhalts der Datensequenz soll zusätzlich nach Script-Variablen gesucht und diese durch ihre Werte ersetzt werden. Wenn Sie diesen Parameter verwenden jedoch keine Spalte angeben, ist trotzdem deren Komma zu setzen. :SET&VALUE# = GET_PROCESS_LINE(&HND#, ,STR_SUB_VAR) |
Zeile | Zeile der Datensequenz, auf die zugegriffen werden soll. Format: Zahl ohne Hochkommate, Script-Literal oder Script-Variable |
Die Script-Funktion GET_PROCESS_LINE liest eine Zeile oder Spalten aus einer Datensequenz. Diese wird von folgenden Script-Sprachmitteln bereitgestellt:
Die Script-Funktion GET_PROCESS_LINE wird innerhalb der Script-Anweisungen :PROCESS und :ENDPROCESS verwendet, welche eine Schleife für die Bearbeitung der Datensequenz bilden und mit jedem Schleifendurchlauf eine neue Zeile der Datensequenz zur Verfügung stellen.
Bitte beachten Sie: Ab Version 9 muss sich GET_PROCESS_LINE in einer PROCESS-Schleife befinden.
Die einzelnen Zeilen einer Datensequenz können auch in Spalten unterteilt sein. Dies wird schon bei der Erstellung der Datensequenz mit den Parametern COL=LENGTH bzw. COL=DELIMITER definiert. Der Zugriff auf eine einzelne Spalte erfolgt durch deren Nummer (1 - erste Spalte) oder sofern festgelegt über den Spaltennamen.
Geben Sie die Spalte nicht an oder verwenden Sie "0", so wird die gesamte Zeile zurückgegeben, daher alle Spalten. Die Zeile wird nach 255 Zeichen abgeschnitten.
Wenn die Werte eines Variablen-Objektes ermittelt werden, enthält die aktuelle Zeile den Key (statische Variable) bzw. die Result-Spalte (dynamische Variable) plus die zugehörigen Werte. Mit dem Wert "1" für Spalte wird der Key/Result, mit "2" bis "6" (statische Variablen) die jeweilige Wertspalte gelesen. Die Result-Spalte entspricht der ersten Werte-Spalte, wenn im Variablen-Objekt (SQL, SQLI, MULTI) kein Ergebnis definiert ist.
Die Anzahl der Werte-Spalten, die in dynamischen Variablen mit den Quellen "SQL", "SQL - intern" oder „Multi verwendet werden, ist von den Einstellungen abhängig, die in den Variablen-Objekten vorgenommen wurden, sowie vom Datentyp.Die Kommentarspalten können auch einzeln gelesen werden.
Wird die Spaltennummer bei der Datensequenz von Variablen-Objekten nicht angegeben, so wird der Wert aller Spalten (inklusive Key/Result) getrennt durch die Zeichen "§§§" zurückgeliefert.
Für den Zugriff auf SAP-Monitore gilt ein besonderes Verfahren. Der SAP-Agent teilt die einzelnen Zeilen, welche ein SAP-Monitor liefert, in feste Spalten auf. Er hinterlegt Spaltennamen und Spaltenbreiten als erste Zeile in der Datei, die durch die Automation Engine verarbeitet wird. Mit GET_PROCESS_LINE kann auf folgende Spalten zugegriffen werden:
Sie können zusätzlich den Parameter STR_SUBSTITUTE_VAR angeben, wobei auch die Kurzform STR_SUB_VAR gültig ist. Dies hat zur Folge, dass innerhalb der Zeile Script-Variablen gesucht und diese durch ihre Werte ersetzt werden. Besonders hilfreich ist die Funktion in Verbindung mit PREP_PROCESS_FILE. Bereiten Sie in einer Datei einen Text vor, der an veränderbaren Stellen Script-Variablen enthält, um diesen leicht weiterverarbeiten zu können. Doch egal welcher Quelle die Datensequenz entstammt (Datei, Report, Variablen-Objekt,...), die Werte selbst sind im Script zu setzen (siehe Beispiel 5 unten).
Weiters ist der Zugriff auf eine bestimmte Zeile der Datensequenz möglich. Geben Sie dazu die Nummer der Zeile beim entsprechenden Parameter der Script-Funktion an. Die erste Zeile besitzt die Nummer 1. Zeilennummern von Datensequenzen können auch mit dem Sprachmittel GET_PROCESS_INFO ermittelt werden.
Beachten Sie, dass GET_PROCESS_LINE standardmäßig Leerzeichen am Ende der auszulesenden Zeile abschneidet! Dieses Verhalten kann jedoch der Administrator mit der Einstellung GET_PROCESS_LINE_RTRIM in der Variablen UC_SYSTEM_SETTINGS deaktivieren.
Im ersten Beispiel werden die Verzeichnisse eines Laufwerkes ermittelt und innerhalb der Prozess-Schleife mit der :PRINT-Anweisung in das Aktivierungsprotokoll ausgegeben.
:SET &HND# = PREP_PROCESS("PC01","WINCMD","*DIR*","CMD=DIR C:")
:PROCESS &HND#
: SET &LINE# = GET_PROCESS_LINE(&HND#)
: PRINT &LINE#
:ENDPROCESS
Im zweiten Beispiel werden die Werte einer Variablen ermittelt und innerhalb der Prozess-Schleife mit der :PRINT-Anweisung in das Aktivierungsprotokoll ausgegeben.
:SET &HND#=PREP_PROCESS_VAR(UC_CLIENT_SETTINGS)
:PROCESS &HND#
: SET &RET1# = GET_PROCESS_LINE(&HND#,1)
: SET &RET2# = GET_PROCESS_LINE(&HND#,2)
: PRINT "&RET1# &RET2#"
:ENDPROCESS
Das dritte Beispiel liest alle Zeilen aus einer Logdatei des UserInterfaces, welche Informationen über die Datenbank liefern. Dabei werden Spaltenbreiten und Spaltennamen vorgegeben. Die relevanten Informationen werden im Aktivierungsprotokoll ausgegeben. Die Zwischenräume (Spalten 2 und 4) werden ignoriert.
:SET &HND# = PREP_PROCESS_FILE(WIN21, "F:\AUTOMIC\DIALOG\TEMP\UCDJ_LOGG_01.TXT","*DB-INFO*","COL=LENGTH","LENGTH_TAB='8=DATUM,1,6=ZEIT,7,200=TEXT'")
:PROCESS &HND#
: SET &COL1# = GET_PROCESS_LINE(&HND#,1)
: SET &COL2# = GET_PROCESS_LINE(&HND#,3)
: SET &COL3# = GET_PROCESS_LINE(&HND#,"TEXT")
: PRINT "&COL1# &COL2#
&COL3#"
:ENDPROCESS
Das vierte Beispiel liest den SAP-Monitor "MON1" aus dem Monitorset "AUTOMIC" aus. Es soll auf die einzelnen Spalten der Monitordaten zugegriffen werden. Die Zeilen der Datensequenz werden im Aktivierungsprotokoll ausgegeben.
:SET &HND# = PREP_PROCESS("T01","R3MONITOR","*","MONSET=AE","MONNAM=MON1","COL=FILE","UC_USER_ID=AE","UC_SAPCLIENT=001")
:PROCESS &HND#
: SET &PATH# = GET_PROCESS_LINE(&HND#,"PATH")
: SET &NAME# = GET_PROCESS_LINE(&HND#,"NAME"")
: SET &VALUE# = GET_PROCESS_LINE(&HND#,"VALUE"")
: SET &STATUS# = GET_PROCESS_LINE(&HND#,"STATUS")
: SET &DATE# = GET_PROCESS_LINE(&HND#,"DATE")
: SET &TIME# = GET_PROCESS_LINE(&HND#,"TIME")
: PRINT "&PATH# &NAME#
&VALUE# &STATUS# &DATE# &TIME#"
:ENDPROCESS
Definition der Spaltenbreiten und Spaltennamen in der Datei (erste Zeile), die durch den SAP-Agenten bereitgestellt wird.
COL=LENGTH,LENGTH_TAB='74=PATH,25=NAME,5=VALUE,2=STATUS,9=DATE,7=TIME'
Im fünften Beispiel werden Zeilen einer Textdatei ausgelesen, um zunächst die darin befindlichen Script-Variablen durch ihren Wert zu ersetzen und die so modifizierten Zeilen dann in das Aktivierungsprotokoll auszugeben.
:SET &NAME# = SYS_ACT_ME_NAME()
:SET &DATE# = SYS_DATE_PHYSICAL("MM/DD/YYYY")
:SET &TIME# = SYS_TIME_PHYSICAL("HH:MM")
:SET &JPNAME# = SYS_ACT_PARENT_NAME()
:SET &HND# = PREP_PROCESS_FILE ("WIN01","C:\AUTOMIC\REPORT.TXT")
:PROCESS &HND#
: SET &RET# = GET_PROCESS_LINE (&HND#,,STR_SUB_VAR)
: PRINT &RET#
:ENDPROCESS
Auszug aus der vorgefertigten Textdatei REPORT.TXT:
&date#/&time#
Report for &NAME#:
Activated by workflow: &JPNAME#
Siehe auch:
Script-Sprachmittel - Datensequenzen
Beispielsammlung
Endstatus aufgrund des Reportinhaltes setzen
Aufruf eines MBeans
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 |