PREP_PROCESS_VAR und PREP_PROCESS_VAR_XML

Script-Funktionen: Über die Auswahlkriterien wird eine Liste von Werten eines VARA-Objekts abgerufen und stellt diese als interne Auflistung (Datensequenz) für die weitere Verarbeitung zur Verfügung. 

Syntax

PREP_PROCESS_VAR (Variable [,Key [,Value [, Column]]])
PREP_PROCESS_VAR_XML (Variable, Key ,Value)

Syntax

Beschreibung/Format

Variable

Name des Variablen-Objektes, dessen Werte ausgelesen werden sollen.
Format: AE-Name, Script-Literal oder Script-Variable

Key

Filter für die Schlüssel-Spalte.
Format: Script-Literal oder Script-Variable
Es sind maximal 64 Zeichen zugelassen.
Standardwert: „*“

Bei dynamischen Variablen entspricht die Schlüssel-Spalte immer der ersten Basisspalte (Wertespalte). Die Ergebnisspalte wird erst nach dem Abrufen der Variablenwerte aufgebaut.

Die Wildcardzeichen „*“ und „?“ können verwendet werden. "*" steht dabei für beliebige, "?" für genau ein Zeichen.

Value

Filter für den Wert.
Format: Script-Literal oder Script-Variable
Format für XML-Variablenobjekt: XPath (Format string)
Es sind maximal 64 Zeichen zugelassen.
Standardwert: „*“

Die Wildcardzeichen „*“ und „?“ können verwendet werden. „*“ steht dabei für beliebige, „?“ für genau ein Zeichen.

Das Format für das XML-Variablenobjekt muss für beide Script-Funktionen gleich sein.

Column

Wertespalte, auf welche sich der Filter für den Wert bezieht.
Format: Script-Literal, Script-Variable oder Zahl ohne Hochkommata

Wildcardzeichen sind nicht erlaubt.

Erlaubte Werte:
Static-VARA-Objekte: „1“ bis „5“
Statische XML-VARA-Objekte: „1“
Dynamische VARA-Objekte: "1" bis n

Wenn Sie nur nach dem Wert filtern möchten, müssen Sie auch das vorherige Komma setzen.

Beispiel

:SET &HND# = PREP_PROCESS_VAR("DB.MAINTENANCE",,"CLIENT", 1)


Rückgabewert

Verweis auf die Datensequenz des Variablen-Objektes.

Diese Script-Funktionen liefern die Werte eines Variablenobjekts. Dabei können die ausgelesenen Werte durch die optionalen Parameter Key und Wert eingeschränkt werden. Bei diesen Parametern ist die Verwendung der Wildcardzeichen "*" und "?" möglich. Groß- und Kleinschreibung wird beachtet.

Für die Script-Funktion PREP_POCESS_VAR_XML müssen alle drei Parameter angegeben werden.

Wert bezieht sich auf den Inhalt einer Wertespalte. Mit Spalte legen Sie dabei die Nummer jener Wertespalte fest, die durchsucht werden soll. Wird keine Spalte angegeben, so wird automatisch die erste Wertespalte verwendet. Statische Variablen besitzen 5 Wertespalten. Die Spalten-Anzahl von dynamischen Variablen ist nicht begrenzt und richtet sich nach der Datenquelle bzw. den Einstellungen im Variablenobjekt.

Die Script-Funktion PREP_PROCESS_VAR_XML darf nur mit dem XML-Variablenobjekt verwendet werden, das nur eine Wertespalte bereitstellt.

Die Verwendung des Parameters Spalte ist nur in Kombination mit Wert möglich. Die Spaltenangabe ist ungültig, wenn Sie den Filterwert nicht angeben.

Mit dem Sprachmittel ist es nicht möglich, bestimmte Spalten auszuwählen. Jeder ausgewählte Variableneintrag, der zurückgegeben wird, enthält die Werte aller Spalten (einschließlich der Schlüssel- oder Ergebnisspalte).

Beachten Sie, dass Sie in Wert keine Wildcardzeichen verwenden können, wenn die Variable ein Datentyp vom Typ "Zahl" ist. Die Funktion gibt entweder alle Einträge aus oder jene die genau den angegebenen Wert aufweisen.

Die Verwendung einer leeren Zeichenkette ("") als Filterspezifikation hat die gleiche Wirkung wie die Verwendung von "*". Alle Werte werden zurückgegeben.

Alle Einträge des Variablenobjekts werden verwendet, wenn Sie keinen Schlüssel und Wert angeben.

Der Rückgabewert der Script-Funktion ist eine Datensequenz-Referenz. Sie wird den Script-Anweisungen :PROCESS und :ENDPROCESS als Startparameter übergeben. In Kombination mit der Script-Funktion GET_PROCESS_LINE kann nun auf jede einzelne Zeile des Variablenobjekts zugegriffen werden.

Enthält das Variablen-Objekt die gesuchten Werte nicht, führt das zu keiner Fehlermeldung. Die Bearbeitung der Datensequenz, definiert zwischen :PROCESS und :ENDPROCESS, wird einfach nicht durchlaufen.

Namen von VARA-Objekten, die eine Variable enthalten, müssen in Anführungszeichen angegeben werden, ansonsten wird eine Fehlermeldung ausgegeben. Andernfalls wird eine Fehlermeldung angezeigt.

Der Script-Variablen, die die Datensequenzreferenz enthält, kann kein neuer Wert zugewiesen werden. Erst wenn Sie die Datensequenz mit der Script-Anweisung CLOSE_PROCESS explizit verwerfen, kann die Variable erneut verwendet werden.

Hinweis zu SQL-Variablen (SQL, SQLI): Die Anzahl der Zeilen, die mit der Einstellung SQLVAR_MAX_ROWS(UC_SYSTEM_SETTINGS - Systemweite Einstellungen) zurückgegeben werden, ist begrenzt. Ist diese Einstellung beispielsweise auf den Wert 1000 gesetzt, so werden nur die ersten 1000 Zeilen zurückgeliefert.
Sie können die zurückgegebenen Zeilen mit dem Schlüssel begrenzen, aber nicht mit dem angegebenen Wert. Das bedeutet, dass das System bei der Definition eines Filters für einen bestimmten Wert in Kombination mit dem Script-Sprachmittel PREP_PROCESS_VAR nur innerhalb der definierten maximalen Zeilenanzahl nach diesem Wert sucht. Wenn Sie jedoch einen Schlüssel angeben, wird es an die Datenbank weitergegeben und für die Abfrage verwendet. Filtern Sie mit Hilfe des Schlüssels anstelle des Wertes, wenn Sie Tabellen mit vielen Einträgen haben, da Sie sonst das Risiko eingehen könnten, dass keine Einträge zurückgegeben werden.

Beispiele

Gegeben ist das folgende Variablen-Objekt:

Beispiel 1 ruft alle Werte ab und gibt sie innerhalb der Prozessschleife mit der Script-Anweisung :PRINT an den 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#

Beispiel 2 liest nur jene Einträge aus, deren Schlüssel mit „Mandant“ 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#

Beispiel für die Verwendung von PREP_PROCESS_VAR_XML. In diesem Beispiel wird der Wert der durch die Script-Variablen &VALUE# und &GB# dargestellten Datensequenzzeilen gelesen, die wiederum die Werte „A/B“ des Schlüssels „KEY01“ des XML-VARA-Objekts „VARA.XML“ auslesen:

: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:

auch

Script-Sprachmittel für Datensequenzen