Bedingte Sektionen

Es ist möglich, Sektionen aus einer Scriptausführung zu entfernen, indem man einen Ausdruck zu Beginn der Ausführung bewertet: Ist die Sektion nicht sichtbar, so wird sie im Sektionsfenster nicht aufgeführt und der Ausdruck während der Scriptausführung nicht erneut bewertet.

Mithilfe eines vorab gefüllten DS wie unter Scripts vorab mit erfassten Daten füllen beschrieben kann man, abhängig von den Bedingungen außerhalb des Scripts, eine Markierung für eine Entität setzen. Beispiel: Es ist eine Entität "IntakeInformation" mit dem booleschen Attribut "collectIncomeInformation" vorhanden. In diesem Fall kann im Script eine Sektion zum Einkommen angegeben werden:

Abbildung 1. Sichtbares Attribut einer Sektion
...
<section visible="IntakeInformation.collectIncomeInformation==true">
   ...
</section>
...

Damit wird, wenn das Attribut "collectIncomeInformation" den Wert "false" hat, die Sektion zum Einkommen ausgeblendet, so als wäre sie in der Scriptdefinition nicht vorhanden.

Muss eine Sektion abhängig von den Antworten aus vorhergehenden Sektionen aktiviert oder inaktiviert werden, so ist es möglich, alle Seiten einer Sektion in einer einzigen Bedingung einzuschließen. Anders als das sichtbare Attribut kann diese Bedingung bei jedem Vorkommen der Sektion bewertet werden, weshalb es möglich ist, zurückzugehen und eine Antwort zu ändern, die die Navigierbarkeit einer Sektion beeinflusst. Die Sektion erscheint weiterhin im Sektionsfenster, jedoch abgeblendet, so dass der Benutzer dort nichts anklicken kann.

Das vorhergehende Beispiel kann so modifiziert werden, dass die Frage "collectIncomeInformation" gleich zu Anfang des Scripts gestellt wird. Die Sektion zum Einkommen kann daraufhin wie folgt geändert werden:

Abbildung 2. Bedingte Sektion
...
<section>
   <condition
     expression="IntakeInformation.collectIncomeInformation">
     ...
   </condition>
</section>
...