GET_PROCESS_LINE
Script-Funktion: Ermittelt den aktuellen Zeileninhalt einer Datensequenz.
Syntax
GET_PROCESS_LINE (Data sequence reference [, [Column] [, [STR_SUBSTITUTE_VAR] [, Row ] ] ])
Syntax |
Beschreibung/Format |
---|---|
Data sequence reference |
Verweis auf die zu verarbeitende Datensequenz. |
Column |
Zugriff auf eine Spalte der Datensequenzzeile.
Dynamische Variablen (SQL, SQLI und Multi) können je nach Datenquelle beliebig viele Spalten enthalten. Statische Variablen besitzen 6 Werte-Spalten ("1" bis "6"). "1" gibt den Wert des Schlüssels zurück, "2" bis "6" die 5 Wertspalten. "6" gibt also den Wert von 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. Beispiel :SET &VALUE# = GET_PROCESS_LINE(&HND#, ,STR_SUB_VAR) |
Row | Zeile der Datensequenz, auf die zugegriffen werden soll. Format: Zahl ohne Hochkommata, 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:
- CREATE_PROCESS
- LOAD_PROCESS
- PREP_PROCESS
- PREP_PROCESS_AGENTGROUP
- PREP_PROCESS_COMMENTS
- PREP_PROCESS_DOCU
- PREP_PROCESS_FILE
- PREP_PROCESS_FILENAME
- PREP_PROCESS_PROMPTSET
- PREP_PROCESS_REPORT
- PREP_PROCESS_VAR
- PREP_PROCESS_VAR_XML
Die Script-Funktion GET_PROCESS_LINE wird innerhalb der Script-Anweisungen :PROCESSund :ENDPROCESS verwendet. Diese Script-Anweisungen bilden eine Schleife für die zeilenweise Verarbeitung der Datensequenz.
Bitte beachten Sie: Bitte beachten Sie, dass GET_PROCESS_LINE sich ab v9 in einer PROCESS-Schleife befinden muss.
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.
Die gesamte Zeile wird zurückgegeben, wenn die Spalte nicht angegeben ist oder wenn Sie „0“ verwenden. Die Zeile wird nach 255 Zeichen abgeschnitten.
Wenn die Werte eines Variablen-Objektes ermittelt werden, enthält die aktuelle Zeile die Schlüssel- (statische Variable) bzw. die Ergebnisspalte (dynamische Variable) plus die zugehörigen Werte. Der Wert „1“ für Spalte liest den/das Schlüssel/Ergebnis aus, die Werte "2" bis "6" (statische Variablen) lesen die entsprechende Wertspalte aus. Ist im Variablen-Objekt (SQL, SQLI, MULTI) kein Resultat-Format definiert, so entspricht die Resultat-Spalte der ersten Wertspalte.
Die Anzahl der Wertspalten, die in dynamischen Variablen mit den Quellen „SQL“, „SQL - intern“ oder „Multi“ verwendet wird, ist nicht begrenzt und hängt von den Einstellungen ab, die in den Variablenobjekten und dem Datentyp vorgenommen wurden.
Wird die Spaltennummer von Variablen-Objekten nicht angegeben, so wird der Wert aller Spalten (inklusive Schlüssel/Ergebnisspalte) 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:
- CONTEXT - Name des Monitoring-Kontextes
- PATH - Pfadangabe eines Wertes
- NAME -Name des Wertes
- VALUE - Aktueller Wert
- STATUS - Status: 1 = grün, 2 = gelb, 3 = rot
- DATE - Datum der Prüfung
- TIME - Zeitpunkt der Prüfung
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).
Weiterhin 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_SETTING deaktivieren.
Beispiele
Im ersten Beispiel werden die Verzeichnisse eines Laufwerkes ermittelt und innerhalb der Prozess-Schleife mit der :PRINT-Anweisung in den Aktivierungsreport 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 den Aktivierungsreport 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
Beispiel 3 liest alle Zeilen der Automic Web InterfaceLogdatei, die Informationen über die Datenbank liefern. Es werden Spaltengröße und Spaltennamen vorgegeben und die entsprechenden Informationen im Aktivierungsreport 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
Beispiel 4 liest den SAP-Monitor „MON1“ aus der Monitorsammlung „AE“. Es soll auf die einzelnen Spalten der Monitordaten zugegriffen werden. Die Zeilen der Datensequenz werden im Aktivierungsreport 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 Spaltengrößen und -namen in der Datei (erste Zeile), die vom SAP-Agenten bereitgestellt wird.
COL=LENGTH,LENGTH_TAB='74=PATH,25=NAME,5=VALUE,2=STATUS,9=DATE,7=TIME'
Beispiel 5 liest die Zeilen einer Textdatei aus und ersetzt die eingebundenen Script-Variablen durch ihre Werte. Die geänderten Zeilen werden dann in den Aktivierungsreport geschrieben.
: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: