SQLI-VARA-Objekte
SQLI- oder SQL-interne Variablenobjekte rufen Werte mithilfe von SQL-Anweisungen 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 eine solche festlegen, gilt dieser Wert nur für die erste Wertspalte. Einträge, die dieses Limit überschreiten, werden ausgeschlossen.
Um die maximale Anzahl der zurückgegebenen Zeilen zu bestimmen, verwenden Sie die Einstellung SQLVAR_MAX_ROWS in der Variablen UC_SYSTEM_SETTINGS. Weitere Informationen finden Sie unter SQLVAR_MAX_ROWS.
Voraussetzungen
Um SQLI VARA-Objekte definieren zu können, muss Folgendes zutreffen:
- SQLVAR_INTERNAL ist auf YES gesetzt, siehe SQLVAR_INTERNAL
- Ihr Benutzer muss über das Recht SQL-interne Variablen anlegen und ändern verfügen
Wichtige Hinweise
-
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-Typen) prüft das System die verarbeiteten SQL-Anweisungen aus technischen Gründen 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 geben Datenbank-VARA-Objekte (SEC_SQLI-, SEC_SQL-, SQLI- und SQL-Typen) den Wert "" (String, 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, FILELIST, SEC_SQLI, SEC_SQL, SQLI, SQL und XML unterstützt. Die Verwendung von PromptSet-Variablen ist notwendig, wenn die Funktion Dynamisch aktualisieren (Kombinationsfeld-Prompts) verwendet wird.
-
Wenn Sie die Funktion für das Dynamisch aktualisieren (Kombinationsfeld-Prompts) für Kombinationsfeld-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.
SQLI-VARA-Objekte definieren
Eine SQLI-VARA-Objektdefinition besteht aus den folgenden Seiten:
-
Gemeinsam für alle Objekttypen definieren Sie hier grundlegende Objektinformationen und wenden benutzerdefinierte Werte auf sie an.
-
Variablen
Hier legen Sie die objektspezifischen Einstellungen fest. Einige Abschnitte dieser Seite gelten für alle VARA-Objekte und werden in jeweils eigenen Themen beschrieben. In diesem Abschnitt sind die SQLI-spezifischen Einstellungen für die Seite Variablen beschrieben.
-
Allgemein für alle Objekttypen finden Sie hier eine Liste aller Versionen des Objekts.
-
Hier geben Sie die Informationen ein, die Sie als wichtig erachten, um die Konfiguration und das Verhalten des Objekts zu verstehen.
Die Seite "Variablen" definieren
-
Geben Sie im Abschnitt Variableneinstellungen Folgendes an:
-
Typ
Schreibgeschützt, immer SQL
-
Oracle-Anweisung / SQL Server-Anweisung / DB2-Anweisung / PostgreSQL-Anweisungen
SQL-Anweisungen zur Auswahl von Einträgen der Datenbank, welche als Variablenwerte dienen. Sie haben dafür zwei Möglichkeiten:
- Geben Sie Ihre Anweisung in das Eingabefeld ein
- Klicken Sie auf das Symbol, um den Zellen-Editor zu öffnen, und geben Sie Ihre SQL-Anweisung ein
Beispiel:
select * from OH
Maximale Länge: 4096 Zeichen
Hinweise:
- SQL-Anweisungen können nicht überprüft werden. Sie können Datenbankeinträge ändern oder löschen
- 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/VARA-Objekte in Objekte und Scripts einfügen bzw. anderen VARA-Objekten die Einstellung VAR_SECURITY_LEVEL in UC_SYSTEM_SETTINGS - Systemübergreifende Einstellungen entsprechend zu setzen ist. Ansonsten erfolgt keine Ersetzung (Standard) und es kommt zu einem Datenbank-Fehler.
-
Wenn Sie die Funktion für das Dynamisch aktualisieren (Kombinationsfeld-Prompts) für Kombinationsfeld-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.
-
-
Definieren Sie Datentypen und Formatierung.
- Definieren Sie den Script-Zugriff.
- Wenn Sie bei Mandant 0 angemeldet sind, ist ein zusätzlicher Abschnitt verfügbar. Weitere Informationen finden Sie unter Mandant-0-VARA-Objekte in anderen Mandanten.
-
Um ein Kommando auszuführen, wählen Sie dieses aus und klicken Sie auf Vorschau. Die Anweisungen werden ausgeführt und die jeweiligen Ergebnisse angezeigt. Die Vorschaufunktion dient der Überprüfung auf mögliche Fehler in den Datenbank-Anweisungen (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
- Speichern Sie Ihre Änderungen.
Siehe auch: