Zum Inhalt

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.

Dokumentation im SurveyJs Creator

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 Calculated Values an, in die wir unsere Prozessvariable einbinden können. Um Prozessvariablen in Surveyformularen zu verwenden, müssen Sie diese zunächst als Variable unter Calculated Values definieren und diese Variablen dann aus einzelnen Fragen referenzieren.

Prozessvariablen in Calculated Values

Die unter Calculated Values 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 Calculated Values in der Survey / Logic 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 Calculated Value 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 zur Laufzeit automatisch zugewiesen wird. Ein Beispiel für die Verwendung von Expression in SurveyJs finden Sie im Kapitel Example Expression(read-only) question.

Wenn die Prozessvariable falsch deklariert wird, kann sie nicht ausgewertet werden und wird zur Laufzeit ebenfalls so angezeigt wie in der Vorschau.

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 Logic -> 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 Calculated Values die Variable Node.name und tragen diese dann in den Titel des Surveys ein.

Definition
Referenz der Variable

Um beispielsweise den Benutzernamen als Standardwert der Frage anzuzeigen, tragen wir nach der Deklaration unter Calculated Values die Variable {Agent.userName} in den Default value expression der Frage ein.

Definition
Default value expression

Als Ergebnis sehen Sie dann zur Laufzeit den Knotennamen als Titel des Surveys und den Benutzernamen als Standardwert in der Frage.

Ergebnis

Prozessvariablen in Fragenlogik

Um die Funktionalität der Survey Elemente von den Prozessvariablen abhängig zu machen, können wir die in Calculated Values definierten Variablen in der bedingten Logik der Frage 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.

Calculated Values

Danach fügen wir der Frage die var1 unter der Bedingung Editable if und 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.