PREP_PROCESS_VAR und PREP_PROCESS_VAR_XML
Verwenden Sie die Script-Funktion PREP_PROCESS_VAR, um eine Liste der VARA-Objektwerte abzurufen. Für XML VARA-Objekte können Sie auch PREP_PROCESS_VAR_XML verwenden. Mit den Script-Funktionen können Sie nach Schlüssel und Wert filtern. Die Script-Funktionen geben 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 eine bestimmte Zeile im VARA-Objekt zuzugreifen.
Mehr Informationen
- Benutzerdefinierte VARA-Objekte
- XML VARA-Objekte
- :PROCESS... :TERM_PROCESS... :ENDPROCESS
- GET_PROCESS_LINE
Hinweise:
- 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.
- Enthält die Datensequenz den gesuchten Inhalt nicht, führt das zu keiner Fehlermeldung. In diesem Fall wird die Datensequenz, die zwischen :PROCESS und :ENDPROCESS definiert ist, nicht verarbeitet.
SQL und SQLI VARA-Objekte mit vielen Einträgen
Die Anzahl der zurückgegebenen Zeilen kann in den Systemeinstellungen beschränkt werden. Wenn Sie einen bestimmten Wert mit PREP_PROCESS_VAR filtern, sucht das System nur nach dem Wert innerhalb der festgelegten maximalen Zeilenanzahl.
Mehr Informationen:
- UC_SYSTEM_SETTINGS - Systemübergreifende Einstellungen
- SQLVAR_MAX_ROWS
- SQL-VARA-Objekte
- SQLI VARA-Objekte
Tipp: Verwenden Sie den Schlüssel -Parameter in PREP_PROCESS_VAR, um die Anzahl der Zeilen einzuschränken, die zurückgegeben werden, wenn das VARA-Objekt viele Einträge enthält. Der Schlüsselwert wird an die Datenbank übergeben und für die Abfrage verwendet.
Beispiel
Ihr System ist so konfiguriert, dass die Anzahl der zurückgegebenen Zeilen beschränkt wird: SQLVAR_MAX_ROWS ist auf 1.000 festgelegt. Ihr SQL VARA-Objekt enthält über 1.000 Zeilen, und Sie suchen nach einem bestimmten Wert, der in einer beliebigen Zeile auftreten kann. Aufgrund der Einschränkung gibt PREP_PROCESS_VAR nur die ersten 1.000 Zeilen zurück. Möglicherweise finden Sie nicht alle Vorkommen des Werts. Geben Sie den Schlüssel-Parameter an, um die Anzahl der abgerufenen Zeilen zu reduzieren und nur diese Zeilen nur nach dem Wert zu durchsuchen.
Syntax
PREP_PROCESS_VAR (VARA-Objekt[,Schlüssel [,Wert [, Spalte]]])
PREP_PROCESS_VAR_XML (VARA-Objekt, Schlüssel, Wert)
Parameter
-
PREP_PROCESS_VAR oder PREP_PROCESS_VAR_XML
Ruft eine Liste mit Werten aus einem beliebigen VARA-Objekt oder aus einem XML VARA-Objekt ab. -
VARA-Objekt
Name des VARA-Objekts
Format: AE-Name, Script-Literal oder Script-Variable
Wichtig! Wenn der Name des VARA-Objekts eine Variable enthält, geben Sie den Namen in Anführungszeichen an. Wenn Sie keine Anführungszeichen verwenden, tritt ein Fehler auf. -
Schlüssel
(Optional) Filter für Werte in der Schlüssel-Spalte
Format: Script-Literal oder Script-Variable
Maximale Zeichenanzahl: 200
Standardwert: *
Hinweise:- Verwenden Sie das Platzhalterzeichen *, das für eine beliebige Anzahl von Zeichen steht, oder ? für ein einzelnes Zeichen in einem Filter.
- Bei dem Filter wird die Groß-/Kleinschreibung beachtet.
- Bei dynamischen VARA-Objekten entspricht die Schlüssel-Spalte immer der ersten Basisspalte (Wertespalte). Die Ergebnisspalte wird dynamisch erstellt, wenn der Inhalt gelesen wird.
-
Wert
(Optional) Filtert nach einem bestimmten Wert
Format:- (Nur XML VARA-Objekte) XPath (String-Format)
Das Format ist für PREP_PROCESS_VAR und PREP_PROCESS_VAR_XML dasselbe. - (Andere Typen von VARA-Objekten) Script-Literal oder Script-Variable
Standardwert: *
Hinweise:- Verwenden Sie das Platzhalterzeichen *, das für eine beliebige Anzahl von Zeichen steht, oder ? für ein einzelnes Zeichen, für Datentypen außer Zahlen.
- Wenn der Wert ein Zahl-Datentyp ist, verwenden Sie keine Platzhalter. Die Script-Funktion gibt alle Einträge (kein Filter) oder Einträge zurück, die genau den angegebenen Wert enthalten.
- Bei dem Filter wird die Groß-/Kleinschreibung beachtet.
- (Nur XML VARA-Objekte) XPath (String-Format)
-
Spalte
Filtert nach einer bestimmten Spalte in einem VARA-Objekt
Format: Script-Literal, Script-Variable oder Zahl ohne Anführungszeichen
Wichtig!- Sie müssen den Wert-Parameter angeben, wenn Sie eine Spalte angeben möchten.
- Verwenden Sie keine Platzhalterzeichen.
- Wenn Sie keine Spalte angeben, ruft das Script den Wert der ersten Spalte ab.
- Legen Sie das Komma vor dem Wert fest, wenn Sie nur nach dem Wert filtern möchten, ohne einen Schlüssel anzugeben.
- Spalten sind nummeriert. Statische VARA-Objekte enthalten 5 Spalten. Dynamische VARA-Objekte können eine beliebige Anzahl von Spalten enthalten, je nach Datenquelle und Einstellungen des VARA-Objekts.
- Der Parameter Spalte wird zum Filtern verwendet, aber es wird die ganze Zeile abgerufen, wenn eine Übereinstimmung vorliegt.
Tipp: Verwenden Sie GET_PROCESS_LINE, um nur eine bestimmte Spalte abzurufen.
- (Statische VARA-Objekte) 1 bis 5
- (Statische XML VARA-Objekte) 1
Hinweis: XML VARA-Objekte geben ein einzige Wertespalte zurück, deshalb kann dieser Parameter nur 1 sein. - (Dynamische VARA-Objekte) 1 bis n
Wichtig! Wenn Sie PREP_PROCESS_VAR verwenden, um auf Werte in einem XML VARA-Objekt zuzugreifen, geben Sie alle drei Parameter an (Schlüssel, Wert und Spalte).
Hinweise:
- Die Angabe eines leeren Strings hat die gleiche Wirkung wie die Angabe von * und gibt alle Werte zurück.
- Wenn Sie den Schlüssel und den Wert nicht angeben, gibt die Script-Funktion alle Einträge im VARA-Objekt zurück.
Beispiele
Ein VARA-Objekt namens DATABASE_MAINTENANCE enthält die folgenden Einträge in 2 Spalten (Schlüssel und Wert1):
-
Schlüssel: ARCHIVING
Wert1: Y -
Schlüssel: REORGANIZING
Wert1: N -
Schlüssel: UNLOADING
Wert1: N -
Schlüssel: CLIENT
Wert1: 3
Das folgende Script ruft alle Werte im VARA-Objekt ab. Das Script gibt die Werte aus beiden Spalten im Aktivierungsreport aus.
: SET &HND# = PREP_PROCESS_VAR (DATABASE_MAINTENANCE)
: PROCESS &HND#
: SET &VK# = GET_PROCESS_LINE ( &HND# ,1)
: SET &VALUE# = GET_PROCESS_LINE ( &HND# ,2)
: PRINT "&VK# &VALUE#"
: ENDPROCESS
: CLOSE_PROCESS &HND#
Der Aktivierungsreport sieht wie folgt aus:
2018-01-31 11:28:59 - U0020408 ARCHIVING Y
2018-01-31 11:28:59 - U0020408 REORGANIZING N
2018-01-31 11:28:59 - U0020408 UNLOADING N
2018-01-31 11:28:59 - U0020408 CLIENT 3
Das folgende Script ruft nur Einträge ab, bei denen der Schlüssel mit "Client" beginnt:
: SET &HND# = PREP_PROCESS_VAR (DATABASE_MAINTENANCE, "Client*" )
: PROCESS &HND#
: SET &VK# = GET_PROCESS_LINE ( &HND# ,1)
: SET &VALUE# = GET_PROCESS_LINE ( &HND# ,2)
: PRINT "&VK# &VALUE#"
: ENDPROCESS
: CLOSE_PROCESS &HND#
Der Aktivierungsreport würde nur die folgende Zeile enthalten:
2018-01-31 11:28:59 - U0020408 CLIENT 3
Im folgenden Beispiel werden Werte aus einem XML VARA-Objekt namens VARA.XML abgerufen. Der angegebene XPath filtert nach Elementen in der XML.
: SET &HND# = PREP_PROCESS_VAR_XML(VARA.XML, "KEY01", "A/B")
:PROCESS &HND#
: SET &GB# = GET_PROCESS_LINE(&HND#,1)
: SET &VALUE# = GET_PROCESS_LINE(&HND#,2)
: PRINT "&GB# &VALUE#"
:ENDPROCESS
Siehe auch: