Startseite / Vorlagenentwicklung / Regeln / Handlungsanweisungen <DO/>

<DO/> Handlungsanweisungen definieren

Für jede Regel muss eine Handlungsanweisung definiert werden, die abhängig von den zuvor definierten Bedingungen oder von den zuvor ermittelten Werten agiert. In der Handlungsanweisung verknüpft der Vorlagenentwickler die Ergebnisse aus der Wertermittlung mit bestimmten Aktionen im Formular, beispielsweise dem Markieren einer Eingabekomponente oder dem Einblenden eines Korrekturhinweises. Dabei unterscheidet man:

  • einfache Handlungsanweisungen, die ausgeführt werden, solange alle zuvor definierten Bedingungen erfüllt sind und
  • Validierungen, deren Handlungsanweisungen ausgeführt werden, solange die zuvor definierten Bedingungen nicht erfüllt sind. Im Gegensatz zu einfachen Handlungsanweisung beziehen sich die Handlungsanweisungen in einer Validierung immer auf eine bestimmte Eingabekomponente des Formulars.

Handlungsanweisungen werden innerhalb eines <DO/>-Abschnitts definiert. Dieser Abschnitt muss nach den Tags definiert werden, die eine Wertermittlung einleiten.

Dabei gilt für die Definition einer Handlungsanweisung:

  • Für jede Regel muss eine Handlungsanweisung definiert werden.
  • Eine Handlungsanweisung reagiert auf das Ergebnis der Wertermittlung. Die Anweisungen innerhalb des <DO/>-Abschnitts müssen zu den übergebenen Werten aus dem <WITH/>-Abschnitt passen (siehe Tabelle).

Ergebnis der Wertermittlung

Handlungsanweisung <DO/>

Boolescher Wert

Anweisungen innerhalb des <DO/>-Abschnitts werden ausgeführt, solange die Bedingung der Wertermittlung erfüllt ist (TRUE). Ist die Bedingung nicht erfüllt (FALSE), wirken sich die Handlungsanweisung gegenteilig aus. Dazu ein Beispiel:

Wertermittlung:
Wert aus Komponente A ist gleich dem Wert aus Komponente B.
Handlungsanweisung:
Blende Komponente C im Formular ein.

Ergebnis:
TRUE (A == B) -> C wird im Formular eingeblendet
FALSE (A != B) -> C wird im Formular ausgeblendet

Beliebiger Wert (Datum, Text, Menge von Werten)

Anweisungen innerhalb des <DO/>-Abschnitts werden ausgeführt. Der übergebene Wert kann innerhalb der Handlungsanweisung weiter verwendet werden, z. B. um eine zweite Eingabekomponente zu füllen, z. B.:

Wertermittlung:

Wert aus Komponente A lesen und modifizieren.
Handlungsanweisung:
Den angepassten Wert in Komponente B übernehmen.

Ergebnis:
Der angepasste Wert aus Komponente A wird automatisch in die Komponente B übernommen.

  

Handelt es sich beim Ergebnis der Wertermittlung um einen Booleschen Wert, kann eine Negation über das Tag <NOT/> erreicht werden, und zwar in Verbindung mit

Beispiele

Beispiel 1) Formularbereiche abhängig von einer Bedingung ein- oder ausblenden

Nach der erfolgreichen Authentifizierung soll ein geschützter Bereich im Formular eingeblendet werden. Das Formular zeigt dem Redakteur initial nur ein Passwort-Eingabefeld (st_passwort). Beim Eintragen eines Wertes durch den Redakteur wird der dort eingetragene Wert vom FirstSpirit-Framework mit dem Wert innerhalb eines versteckten Formularfelds (st_master_passwort) verglichen. Sind beide Werte identisch, ist die Bedingung, die innerhalb der Wertermittlung definiert wurde, erfüllt. Damit werden die Anweisungen ausgeführt, die innerhalb der Handlungsanweisung definiert wurden. Im Formular wird eine Komponente vom Typ CMS_LABEL (st_secret) mit dem Hinweis „Authentifizierung erfolgreich“ und eine Komponente vom Typ CMS_GROUP (st_secret_group) mit „Geschützten Inhalten“ eingeblendet. Sind die Passwörter nicht identisch, greift der zweite Teil der Regeldefinition, der lediglich die allgemeinen zugänglichen Inhalte (st_public) anzeigt.

<RULES>

<!-- show secret area only when current password does match master password -->
<RULE>
<WITH>
<EQUAL>
<PROPERTY source="st_master_password" name="VALUE"/>
<PROPERTY source="st_password" name="VALUE"/>
</EQUAL>
</WITH>
<DO>
<PROPERTY source="#form.st_secret" name="VISIBLE"/>
<PROPERTY source="#form.st_secret_group" name="VISIBLE"/>
</DO>
</RULE>

<!-- show public area only when current password does not match master password -->
<RULE>
<WITH>
<NOT>
<EQUAL>
<PROPERTY source="st_master_password" name="VALUE"/>
<PROPERTY source="st_password" name="VALUE"/>
</EQUAL>
</NOT>
</WITH>
<DO>
<PROPERTY source="#form.st_public" name="VISIBLE"/>
</DO>
</RULE>

</RULES>

Beispiel 2) Negation

Regeln Negation boolescher Werte

In diesem Beispiel enthält die Vorlage 3 Textfelder:

  • Textfeld 1: „st_text_1“
  • Textfeld 2: „st_text_2“
  • Textfeld 3: „st_text_3“

Textfeld 1 wird immer angezeigt, Textfeld 2 wenn Textfeld 1 leer ist und Textfeld 3, wenn Textfeld 1 nicht leer ist.

<RULES>
<RULE>
<WITH>
<PROPERTY name="EMPTY" source="st_text_1"/>
</WITH>
<DO>
<PROPERTY name="VISIBLE" source="st_text_2"/>
<NOT>
<PROPERTY name="VISIBLE" source="st_text_3"/>
</NOT>
</DO>
</RULE>
<RULES>

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.4 | Datenschutz