Automation Engine Script-Leitfaden > Funktionelle Gliederung > Datensequenzen > PREP_PROCESS_VAR

PREP_PROCESS_VAR
PREP_PROCESS_VAR_XML

Script-Funktionen: Ermittelt mit Auswahlkriterien eine Liste von Werten eines Variablenobjektes 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 Spalte Key.
Format: Script-Literal oder Script-Variable
Standardwert: "*"

Bei dynamischen Variablen ist die Key-Spalte immer die erste Wertespalte. Die Result-Spalte wird erst nach der Ermittlung der Variableneinträge gebildet.

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

Wert

Filter für den Wert.
Format: Script-Literal oder Script-Variable
Format für Variablen-Objekt XML: XPath (Format: Zeichenkette)
Maximal 64 Zeichen.
Standardwert: "*"

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

Das Format des Variablen-Objekts XML muss für beide Script-Funktionen identisch sein.

Spalte

Werte-Spalte, 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:
Statische Variablen: "1" bis "5"
Statische Variable XML: "1"
Dynamische Variablen: "1" bis n

Wenn Sie nur nach dem Wert filtern wollen, so ist das vorige Komma auch zu setzen.
Beispiel: 

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


Rückgabewert

Referenz auf die Datensequenz des Variablen-Objektes.

Kommentare

Diese Skript-Funktion liest Werte eines Variablen-Objektes. 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 definiert werden.

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

Die Script-Funktion PREP_PROCESS_VAR_XML darf nur mit dem Variablen-Objekt XML verwendet werden, das nur eine Werte-Spalte liefert.

Die Verwendung des Parameters Spalte ist nur in Kombination mit Wert möglich! Wird der Filter Wert nicht spezifiziert, so ist auch die Angabe einer Spalte ungültig!

Mit dem Sprachmittel ist es nicht möglich, bestimmte Spalten auszuwählen! Die gefilterten Variablen-Einträge werden mit den Werten aller Spalten, inklusive Key bzw. Result-Spalte, zurückgeliefert.

Beachten Sie, dass beim Wert keine Wildcardzeichen verwendet werden können, wenn es sich um eine Variable mit dem Datentyp "Zahl" handelt. Die Funktion gibt entweder alle Einträge aus oder jene die genau den angegebenen Wert aufweisen.

Beachten Sie, dass ein Leerstring "" als Filterangabe genauso wirkt wie "*", d.h. alle Werte werden zurückgeliefert.

Geben Sie Key und Wert nicht an, so werden alle Einträge des Variablen-Objektes verwendet.

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 Variablen-Objektes 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, sonst wird eine Fehlermeldung ausgegeben.

Der Script-Variable, welche die Datensequenz-Referenz 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.

Beachten Sie bei SQL-Variablen (SQL, SQLI), dass die Anzahl der zurückgelieferten Zeilen mit der Einstellung SQLVAR_MAX_ROWS (UC_SYSTEM_SETTINGS) beschränkt ist. Ist diese Einstellung beispielsweise auf den Wert 1000 gesetzt, so werden nur die ersten 1000 Zeilen zurückgeliefert.
Die zurückgelieferten Zeilen können durch den Key, nicht aber durch angegebenen Wert eingeschränkt werden. Das bedeutet: Geben Sie beim Sprachmittel PREP_PROCESS_VAR einen Filter auf einen bestimmten Wert an, wird nach diesem nur innerhalb der maximalen Zeilenanzahl gesucht. Wird allerdings ein Key angegeben, so wird dieser der Datenbank übergeben und für die Abfrage verwendet. Bei Tabellen mit vielen Einträgen ist es daher empfehlenswert, über den Key anstelle des Werts zu filtern, da ansonsten eventuell keine Einträge zurückgeliefert werden.

Beispiele

Gegeben ist das folgende Variablen-Objekt:

Im ersten Beispiel werden alle Werte ermittelt und innerhalb der Prozess-Schleife mit der :PRINT-Anweisung in das Aktivierungsprotokoll ausgegeben.

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

Im zweiten Beispiel werden nur jene Einträge gelesen, deren Key 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#

Beispiele für die Verwendung von PREP_PROCESS_VAR_XML. In diesem Beispiel werden die Werte der Datensequenzzeilen, repräsentiert durch &VALUE# und &GB#, gelesen. Dies führt zur Rückgabe der "A/B"-Werte des Keys "KEY01" des Variablen-Objektes XML, genannt "VARA.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# &WERT#"
:ENDPROCESS

 

 

Siehe auch:

Script-Sprachmittel Beschreibung

:CLOSE_PROCESS

Verwirft eine Datensequenz innerhalb eines Scripts.

:PROCESS... :TERM_PROCESS... :ENDPROCESS

Definition einer Schleife zur zeilenweisen Bearbeitung einer Datensequenz, wie beispielsweise den Inhalt einer sequentiellen Datei oder das textmäßige Ergebnis eines Kommandos.

GET_PROCESS_LINE

Ermittelt den aktuellen Zeileninhalt einer Datensequenz.

Script-Sprachmittel - Datensequenzen

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