SQLI-VARA-Objekte
SQLI- oder SQL-interne Variablenobjekte rufen Werte mithilfe von SQL-Statements aus der Automation Engine-Datenbank ab. Sie müssen kein Verbindungs- oder Login-Objekt angeben, da der Datenbankzugriff intern bleibt. Für die Länge der Werte gibt es keine Beschränkung. Wenn Sie einen Wert einstellen, gilt dieser Wert nur für die erste Wertspalte. Einträge, die dieses Limit überschreiten, werden ausgeschlossen.
Die maximale Anzahl der zurückgelieferten Zeilen ist mit der Einstellung SQLVAR_MAX_ROWS in der Variable UC_SYSTEM_SETTINGS - Systemweite Einstellungen festgelegt.
Dieses Thema beinhaltet Folgendes:
Vorbedingungen
- Setzen Sie SQLVAR_INTERNAL in der Variable UC_SYSTEM_SETTINGS - Systemweite Einstellungen auf „Ja“.
- Ihr Benutzer muss über das Recht SQL-interne Variablen anlegen und ändern verfügen.
SQLI-VARA-Objekte definieren
Eine SQLI-VARA-Objektdefinition besteht aus den folgenden Seiten:
- Seite „Allgemein“
-
Variablen
Hier legen Sie die objektspezifischen Einstellungen fest. Einige Abschnitte dieser Seite gelten für alle VARA-Objekte und werden für all diese in eigenen Themen beschrieben:
- Variablen-Einstellungen, siehe unten
- Parameter
- Datentypen und Formatierung
- Scriptzugriff
- Mandant-0-VARA-Objekte in anderen Mandanten
- Vorschau, siehe unten
- Seite „Versionsmanagement“
- Seite „Dokumentation“
Wichtige Hinweise
Bei der Verwendung von SEC_SQLI-VARA-Objekten ist Folgendes zu beachten:
-
Datenbank-VARA-Objekte (SEC_SQLI, SEC_SQL, SQLI und SQL-Typen) unterstützen keine Binärfelder. Liefert die SQL-Abfrage Binärdaten zurück, so kommt es zu einem Fehler bei der Vorschau oder der Ermittlung der Werte zur Laufzeit.
-
In Datenbank-VARA-Objekten (SEC_SQLI, SEC_SQL, SQLI und SQL) prüft das System die SQL-Statements, die aus technischen Gründen verarbeitet werden, nicht. Sie können Datensätze mit Hilfe von VARA-Objekten ändern oder löschen. Aus Sicherheitsgründen sollten Sie den Benutzerzugriff entsprechend einschränken. Bei VARA-Objekten, die auf eine externe Datenbank zugreifen (SQL, SQL SECURE), sollte ein Datenbankbenutzer verwendet werden, der nur Leserechte besitzt. Bei internen SQL-Variablen (SQLI, SQLI SECURE), kann der Zugriff auf das Objekt durch ein Recht (SQL-interne Variablen anlegen und ändern) eingeschränkt werden.
-
Abhängig vom Datentyp liefern Datenbank-VARA-Objekte (SEC_SQLI, SEC_SQL, SQLI und SQL) den Wert "" (Zeichenfolge, Datum, Zeit, Zeitstempel) oder 0 (Zahl) für NULL-Werte zurück.
Wichtig! Kommt es beim Ausführen von SQL-Kommandos auf MS SQL Server-Datenbanken zu einem Conversion-Fehler, kann dies zu einem Deadlock oder einer inkonsistenten Transaktion mit einem unvorhersehbaren Ergebnis führen. Es ist empfehlenswert, die Befehle in SQLI-Variablen sorgfältig zu überprüfen, da die Automation Engine einen solchen Fehler nicht abfangen kann.
-
PromptSet-Variablen werden in ausgewählten Feldern für Variablen des Typs BACKEND, EXEC, DATEILISTE, SEC_SQLI, SEC_SQL, SQLI, SQL, und XML unterstützt. Die Verwendung von PromptSet-Variablen ist notwendig, wenn die Funktion Dynamisch aktualisieren (Combobox-Prompts) verwendet wird.
-
Wenn Sie die Funktion Dynamisch aktualisieren (Combobox-Prompts) für Combobox-Prompts verwenden, können Sie hier PromptSet-Variablen hinzufügen. Wenn Sie PromptSet-Variablen in einem dynamischen VARA-Objekt verwenden, gibt die Funktion Vorschau einen Fehler zurück. Der Grund hierfür ist, dass PromptSet-Variablen im dynamischen VARA-Objekten nicht existieren. Die PromptSet-Variablen werden jedoch aufgelöst, wenn Objekte, die PromptSet beinhalten, ausgeführt werden.
Abschnitt „Variablen-Einstellungen“
-
Typ
Schreibgeschützt, immer SQL.
-
Oracle Statement / SQL Server Statement / DB2 Statement / PostgreSQL Statements
SQL-Statements zur Auswahl von Einträgen der Datenbank, welche als Variablenwerte zurückgeliefert werden sollen. Zum Beispiel
select * from OH
.Maximale Länge: 4096 Zeichen.
Um einen Zellen-Editor für die Definition Ihrer Variable zu nutzen, klicken Sie auf das Symbol auf der rechten Seite des Feldes.
Wichtig! SQL-Statements können nicht überprüft werden. Sie können Datenbankeinträge ändern oder löschen.
Hinweise:
- Die SQL-Kommandos werden von der Automation Engine nicht auf Fehler oder gefährliche Kommandos überprüft. Sie werden wie angegeben an die Datenbank weitergegeben. Zu einem Fehler bei der Ausführung kommt es daher erst beim Datenbankzugriff, der zum Zeitpunkt der Auflösung von Variablen stattfindet.
- Beachten Sie, dass für die Verwendung von Variablen in Objekte und Scripts einfügen bzw. anderen Variablenobjekten in den SQL-Statements die Einstellung VAR_SECURITY_LEVEL in der Variable UC_SYSTEM_SETTINGS - Systemweite Einstellungen entsprechend zu setzen ist. Ansonsten erfolgt keine Ersetzung (Standard) und es kommt zu einem Datenbank-Fehler.
-
Wenn Sie die Funktion Dynamisch aktualisieren (Combobox-Prompts) für Combobox-Prompts verwenden, können Sie hier PromptSet-Variablen hinzufügen. Wenn Sie PromptSet-Variablen in einem dynamischen VARA-Objekt verwenden, gibt die Funktion Vorschau einen Fehler zurück. Der Grund hierfür ist, dass PromptSet-Variablen im dynamischen VARA-Objekten nicht existieren. Die PromptSet-Variablen werden jedoch aufgelöst, wenn Objekte, die PromptSet beinhalten, ausgeführt werden.
Um ein Kommando auszuführen, wählen Sie dieses aus und klicken Sie auf Vorschau. Die Statements werden ausgeführt und die jeweiligen Ergebnisse angezeigt. Die Vorschaufunktion dient der Überprüfung auf mögliche Fehler in den Datenbank-Statements (z. B. ob der Datentyp des VARA-Objekts und der Datenbank nicht übereinstimmen).
Beispiel:
select oh_name from oh
where oh_otype = 'JOBI'
and oh_deleteflag = 0
and oh_client = &$CLIENT#
order by oh_name asc
Siehe auch: