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

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:

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
    Maximale Zeichenanzahl: 1024
    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.

  • 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.
    Hinweise:
    • 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.
    Zulässige Werte:
    • (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: