Benutzerhandbuch > Objekte > Alphabetische Auflistung > Dynamischer PromptSet-Dialog

Dynamische PromptSet-Dialoge

Die AE stellt zusätzliche Möglichkeiten zur Verfügung, um Eingabemasken von Aufgaben dynamisch aufzubauen. Dabei handelt es sich speziell um Kombinationsfelder und die Eingabehilfe von Textfelder, deren Inhalt vom Wert anderer PromptSet-Elemente variieren kann.

Die Erstellung eines PromptSet-Dialoges mit einem dynamischen Kombinationsfeld bzw. einer Textfeld-Eingabehilfe erfolgt in folgenden Schritten:

  1. PromptSet-Objekt mit zumindest einem Textfeld oder Kombinationsfeld und einem beliebigen Element erstellen
  2. Beim Textfeld die Eigenschaft "Eingabehilfe" verwenden.
  3. Beim Kombinationsfeld die Eigenschaft "Dynamisch" setzen
  4. Variablen-Objekt mit der Quelle EXEC, SQL, SQLI, FILELIST oder BACKEND als Datenreferenz für das Textfeld / Kombinationsfeld verwenden
  5. In diesem Referenz-Variablenobjekt ein oder mehrere PromptSet-Variablen von anderen Elementen des selben PromptSets eintragen.
    PromptSet-Variablen können dabei in folgenden Feldern in der Registerkarte Variable der Referenzvariable verwendet werden:
    VARA.EXEC: Parameter
    VARA.SQL, VARA.SEC_SQL
    : Verbindung, Login, SQL-Anweisungen
    VARA.SQLI, VARA.SEC_SQLI: SQL-Abfrage (AE DB)
    VARA.FILELIST: Host, Login, Verzeichnis
    VARA.BACKEND: Host, Login, Befehl

Bei der Eingabehilfe ist keine spezielle Einstellung erforderlich, da die Auflösung der Referenzvariable immer erst beim Zugriff erfolgt!

Beachten Sie, dass PromptSet-Variablen, die als Array (Mehrfachselektion) definiert wurden, nicht in Referenzvariablen verwendet werden können!

Für die Verwendung der PromptSet-Variablen in Variablen-Objekten, muss die Einstellung VAR_SECURITY_LEVEL (UC_SYSTEM_SETTINGS) auf den Wert "3" gesetzt sein! Diese Einschränkung gilt allerdings nicht für die SQL-Anweisungen von VARA-Objekten mit der Quelle SQL SECURE und SQLI SECURE.

Im PromptSet-Objekt muss für jene Elemente, deren Werte in Mussfeldern von VARA-Objekten (z.B.: Host, Login) verwendet werden, ein Standardwert gesetzt sein!

Beispiele:

Folgendes Beispiel zeigt die Erstellung eines PromptSet-Dialoges, mit einem dynamischen Kombinationsfeld, deren Inhalt von einem Optionsfeld abhängt. Über das Optionsfeld soll ein Mandant spezifiziert werden können. Im Kombinationsfeld werden dann immer die Aufgaben des gewählten Mandanten aufgelistet.
Die Referenzwerte beider PromptSet-Elemente werden über SQLI-Variablen direkt aus der Datenbank bezogen.

Referenzvariablen

Zuerst erstellen wir die Referenzquellen für das PromptSet-Objekt. Legen Sie dazu zwei Variablen-Objekte mit der Quelle SQLI an.

Die erste Variable soll uns die Mandanten des Automation Engine Systems liefern. Dazu ist folgender SQL-Befehl in die Registerkarte Variable des VARA-Objektes einzufügen (MS SQL Server):

select distinct EH_Client from EH

Bei der zweiten Variable sollen die Namen der Aufgaben ermittelt werden, abhängig vom gewählten Mandanten. Dazu verwenden wir im SQL-Befehl den voraussichtlichen Variablennamen des Optionsfeldes als Wert für den Mandanten. Dadurch erhalten wir folgenden Befehl:

select distinct EH_Name from EH where EH_Client=&CLIENT#

Überprüfen Sie die erste Variable auf Funktionalität, indem Sie die Schaltfläche "Vorschau" in der Registerkarte Variable aufrufen. Die zweite Variable kann nicht getestet werden, da die PromptSet-Variable &CLIENT# noch nicht aufgelöst werden kann!

Stellen Sie sicher, dass die Systemeinstellung (UC_SYSTEM_SETTINGS - SQL_VAR_INTERNAL) und das Privileg für interne SQL-Variablen vorhanden ist.

PromptSet-Objekte

Im nächsten Schritt erstellen wir das PromptSet-Objekt mit einem Optionsfeld und einem Kombinationsfeld.

Weisen Sie dem Optionsfeld als Datenreferenz jene SQL-Variable zu, welche die Mandanten ermittelt. Achten Sie darauf, dass der Variablenname dieses Elementes mit jenem übereinstimmt, der im SQL-Befehl des anderen Variablen-Objektes verwendet wurde (siehe oben). In unserem Fall tragen wir als Variablenname CLIENT# ein (ohne führendes &).

Dem Kombinationsfeld ist das andere Referenzvariablen-Objekt zuzuweisen.
Wichtiger Hinweis: Setzen Sie unbedingt die Option Dynamisch! Ansonsten kommt es beim Aufruf, des PromptSet-Dialoges zu einem SQL-Fehler!
Grund: Durch diese Option wird die Referenzvariable erst dann aufgelöst, wenn das Kombinationsfeld aufgerufen wird. Andernfalls erfolgt die Auflösung schon bevor die PromptSet-Variablen zur Verfügung stehen.

Beachten Sie, dass es beim Öffnen des Kombinationsfeldes auch dann zu einem Fehler kommt, wenn das Element von dem es abhängt, keinen oder einen ungültigen Wert besitzt. Setzen Sie daher zur Sicherheit einen Standardwert für das Element, welches den Wert vorgibt.

Rufen Sie abschließend die PromptSet-Vorschau auf, um die Funktionalität der Eingabemaske zu testen.

 


Automic Documentation - Tutorials - Automic Blog - Resources - Training & Services - Automic YouTube Channel - Download Center - Support

Copyright © 2016 Automic Software GmbH