Verwendung von Prozessvariablen¶
Wir haben schon in einem Beispiel Expression(read-only) Question gesehen, wie ein Parameterreferenz zur Laufzeit ausgewertet wird. Zusätzlich zu den Ein- und Ausgabeparametern können auch Prozessvariablen zwischen Prozessschritten als auch in den Formularen eingesetzt werden. Mit diesen Variablen können wir den Ablauf des Prozesses steuern, z.B. indem die Aktivität einem bestimmten Agenten zuweisen, oder indem ein Schritt eine bestimmte Anzahl von Malen wiederholt wird usw. Eine Liste der Prozessvariablen, die im Survey verwendet werden können, finden Sie unter Documentation im SurveyJs Creator. Es sind Variablen bezüglich der Agenten, Instanzen, Knoten und Ausführung, die intern für den Prozess während der Ausführung notwendig sind. Für eine korrekte Funktionalität der Prozessvariablen ist bei der Eingabe in den Survey die folgende Anleitung zu beachten.
Die bisherige direkte Verwendung der Prozessvariablen (z. B. ${Node.name} als Titel) in Survey Fragen ist veraltet und sollte nicht weitergeführt werden.
Agentvariablen¶
Aufgrund einer Änderung der Datums- und Zeitformatierung werden die früheren Prozessvariablen ${Agent.dateFormat} und ${Agent.timeFormat} nicht mehr benötigt und aus den Prozessvariablen entfernt. Die gebietsschemaspezifische Formatierung erfolgt jetzt im Browser entsprechend der Sprache des Browsers. Da Datum und Uhrzeit nun immer im ISO Format vorliegen, ist die Eindeutigkeit dieser Informationen gewährleistet, auch unabhängig von der Zeitzone, in der die einzelnen Prozessschritte durchgeführt werden. Jedoch kann die Kompabilität mit älteren Versionen nicht mehr unterstützt werden, da die beiden Variablen ${Agent.dateFormat} und ${Agent.timeFormat} entfallen. Die aktuell unterstützten Prozessvariablen sind wie folgt:
Instanzvariablen¶
Knotenvariablen¶
Ausführungsvariablen¶
Verwendung von Prozessvariablen in Surveyformularen¶
SurveyJs Creator bietet Custom Variables an, in die wir unsere Prozessvariable einbinden können. Um Prozessvariablen in Surveyformularen zu verwenden, müssen Sie diese zunächst als Variable unter Conditions -> Custom Variables definieren und diese Variablen dann aus einzelnen Fragen referenzieren.
Prozessvariablen als Custom Variable¶
Die unter Custom Variables definierten Prozessvariablen gelten für den gesamten Survey. Wählen Sie dazu den Survey in der oberen rechten Ecke des Creators aus und geben Sie unter Custom Variables in der Survey / Conditions den Namen der Prozessvariablen (optional mit einem entsprechenden Expression) ein. Wir geben die Prozessvariablen genau so ein, wie sie vorgegeben sind, jedoch ohne Dollarzeichen und geschweifte Klammern, Z.B. ${Node.id} ->Node.id, ${Agent.userName} -> Agent.userName usw. Der Name von Custom Variable muss genau mit dem Namen der Prozessvariablen übereinstimmen und es muss kein Expression zugewiesen werden. Eigentlich spielt es keine Rolle, welchen Ausdruck Sie hier dieser Variablen zuweisen, da der aktuelle Wert der Prozessvariablen nur zur Laufzeit zugewiesen wird. Aus diesem Grund kann die Vorschau im Survey Creator die entsprechenden Werte nicht liefern und zeigt nur den unaufgelösten Namen der Variablen an. Wenn dem Ausdruck beispielsweise eine Konstante zugewiesen wird, so wird die Konstante in der Vorschau angezeigt und ein Test auf Auflösung wird möglich. Jedoch wenn die Prozessvariable falsch deklariert wird, kann sie nicht ausgewertet werden und wird zur Laufzeit ebenfalls so angezeigt wie in der Vorschau. Ein Beispiel für die Verwendung von Expression in SurveyJs finden Sie im Kapitel Example Expression(read-only) question.
Referenz auf Prozessvariablen¶
Nachdem Sie die Prozessvariable deklariert haben, müssen Sie sie in der Frage referenzieren, um ihren Wert anzuzeigen. Wie bei üblichen Variablen in SurveyJs benötigen Sie hier für die Referenz auch geschweifte Klammern. Um beispielsweise den Knotennamen als Fragentitel anzuzeigen, geben Sie {Node.name} in den Fragentitel ein. Um den Wert der Prozessvariablen als Standardwert der Frage zuzuweisen, müssen Sie ihn in Conditions -> Default value expression der Frage eintragen.
Beispiel: Titel und default value¶
Im nächsten Beispiel wird der Name des Prozessschritts als Titel für den Survey verwendet. Dazu definieren wir unter Conditions ->Custom Variables die Variable Node.name und tragen diese dann in den Titel des Surveys ein.
Um beispielsweise den Benutzernamen als Standardwert der Frage anzuzeigen, tragen wir nach der Deklaration unter Custom Variables die Variable {Agent.userName} in den Default value expression der Frage ein.
Als Ergebnis sehen Sie dann zur Laufzeit den Knotennamen als Titel des Surveys und den Benutzernamen als Standardwert in der Frage.
Prozessvariablen in Fragenlogik¶
Um die Funktionalität der Survey Elemente von den Prozessvariablen abhängig zu machen, können wir die in Custom Variables definierten Variablen in der bedingten Logik der Frage (Conditions) verwenden. Weitere Informationen zur bedingten Logik in SurveyJS finden Sie in der Dokumentation ⧉. Durch das Hinzufügen von Bedingungen zur Logik der Frage können wir die Frage entsprechend dem eingegebenen Ausdruck mit der Prozessvariablen sichtbar, editierbar oder obligatorisch machen. Beispielsweise wenn die aktuelle Knoten-ID „2“ ist, ist die Frage obligatorisch und editierbar. Dafür benötigen wir aber eine weitere Hilfsvariable, die den Ausdruck mit der bereits definierten Prozessvariablen auswertet. In diesem Beispiel definieren wir zunächst die Prozessvariable Node.id und dann eine weitere Variable var1, die als wahr ausgewertet wird, wenn Node.id den Wert „2“ hat.
Danach fügen wir der Frage die var1 unter der Bedingung Disable the read-only mode if und Make the question required if hinzu. Dies führt dann dazu, dass question1 zur Laufzeit editierbar und obligatorisch ist, wenn die Knoten-ID „2“ ist.
Formularmaster¶
Prozesse durchlaufen oft Schritte, in denen Informationen erfasst, geprüft und ergänzt werden. Wie im vorherigen Abschnitt können wir diese Informationen über die Prozessvariablen an die Elemente von Survey weitergeben, sodass ein Survey zur Laufzeit in jedem Schritt anders aussieht, obwohl es immer gleich ist.
Diese beschriebene Art von Survey nennen wir Formularmaster. Er enthält alle Eingabefelder und Informationen für den gesamten Prozess und passt sich im Laufe des Prozesses dem jeweiligen Schritt an. Der in einem Prozessschritt erstellte Formularmaster kann über das Kontextmenü Formular kopieren/einfügen in andere Prozessschritte eingefügt werden. Auf diese Weise erhalten alle Formulare beim Modellieren im Process Template Editor das gleiche Aussehen und wir können Änderungen an einer zentralen Stelle vornehmen. Ein Formularmaster kann beispielsweise erstellt werden, indem einige Survey Elemente ein- oder ausgeblendet werden. Ein kleines Beispiel für die Verwendung von Prozessvariablen in einem Formularmaster finden Sie im Tutorial Hide/Show parts of the form.