Startseite
jump to top

Startseite / Vorlagenentwicklung / Regeln / Regelsyntax (Übersicht)

Regeln erstellen: Regelsyntax

Die Definition einer Regel erfolgt über einfache Tags und Attribute im Register "Regeln" in der Vorlagen-Verwaltung.
Dabei folgt jede Regeldefinition einem bestimmten Aufbau:

Tipp: Die Funktionalität der Regeldefinitionen kann während des Entwicklungsprozesses über das Register „Formular“ im Bereich Integrierte Vorschau / AppCenter getestet werden. Ausnahme: Regeln mit den Ausführungszeitpunkten ONSAVE oder ONLOCK.

Tags

Kurzbeschreibung

Attribute

<!-- ... -->

Sollen Kommentare verwendet werden, werden diese mit der Zeichenfolge <!-- eingeleitet und mit der Zeichenfolge --> beendet. Sie dienen der Strukturierung oder Erläuterung der Syntax und werden bei der Regelausführung nicht ausgewertet.

 
 

1. Ebene der Regeldefinition

<RULES/>

Oberste Ebene der Regeldefinition:
Leitet eine Regeldefinition ein. Innerhalb einer Regeldefinition können beliebig viele Regeln für ein Formular definiert werden, wobei jede Regel immer mindestens eine Wertermittlung und eine Handlungsanweisung enthalten muss.
(mehr ...)

keine

 

2. Ebene der Regeldefinition (optional: Ausführungszeitpunkt)

<RULE/>

Jede Regel wird innerhalb eines <RULE/>-Tags definiert und muss immer mindestens eine Wertermittlung und eine Handlungsanweisung enthalten.

when: optionale Definition des Ausführungszeitpunktes der Regel (ONSAVE: beim Speichern des Formulars, ONLOCK: beim Wechsel in den Bearbeitungsmodus, ohne Angabe von „when“: immer)

 

3. Ebene der Regeldefinition – Vorbedingung, Wertermittlung, Handlungsanweisung

<IF/>

Leitet die Definition einer (optionalen) Vorbedingung ein. Die Definition einer Vorbedingung muss vor den Tags zur Wertermittlung und Handlungsanweisung erfolgen. Die nachfolgenden Abschnitte der Regel (Wertermittlung, Handlungsanweisung, Validierung) werden nur ausgeführt, wenn die Vorbedingung erfüllt ist. Innerhalb der Vorbedingung ist die Angabe weiterer Tags notwendig.
(mehr ...)

keine

<WITH/>

Leitet eine Wertermittlung ein. Die Wertermittlung muss nach der Definition einer (optionalen) Vorbedingung und vor den Tags zur Handlungsanweisung erfolgen. Das Ergebnis der Wertermittlung wird in den nachfolgenden Abschnitten der Regel (Handlungsanweisung und Validierung) ausgewertet. Innerhalb der Wertermittlung ist die Angabe weiterer Tags notwendig.
(mehr ...)

keine

<SCHEDULE/>

Leitet die asynchrone Ausführung einer Regel ein. Dabei wird das <SCHEDULE/>-Tag verwendet, um die Wertermittlung vom SiteArchitect auf ein FirstSpirit-Modul zu verlagern.
Voraussetzung: Das entsprechende Modul muss zuvor auf dem Server installiert worden sein.
Die asynchrone Wertermittlung muss vor den Tags zur Handlungsanweisung erfolgen. Innerhalb der Wertermittlung ist die Angabe weiterer Tags notwendig. Optional kann eine Bedingung über das Tag <CONDITION/> definiert werden, die eine Ausführung der Wertermittlung über das Modul anstößt oder unterbindet. Zusätzlich können dem Modul Parameter über ein oder mehrere <PARAM/>-Tags übergeben werden, beispielsweise die Werte aus einer Eingabekomponente des Formulars. Die Handlungsanweisung wird nach Ausführung der asynchronen Wertermittlung mit dem vom Modul ermittelten Rückgabewert ausgeführt.
(mehr ...)

service: Name des Moduls

id: Zusätzliche Angabe eines Kürzels, um die Validierungs-Anfragen unterschiedlicher Formulare an das Modul eindeutig zu gestalten.

delay: (Optionale) Angabe einer Wartezeit in Millisekunden. Ohne Angabe wird der Wert 0 übernommen. Ist ein Wert größer 0 angegeben, wird die Ausführung der Validierung auf dem Modul, um die entsprechende Zeit verzögert.

<DO/>

Leitet eine Handlungsanweisung ein. Die Handlungsanweisung muss nach der Definition einer (optionalen) Vorbedingung und einer Wertermittlung erfolgen. Das Ergebnis der Wertermittlung wird in diesem Abschnitt ausgewertet.
Dabei gilt: Sind die zuvor in der Wertermittlung definierten Bedingungen erfüllt, werden die Anweisungen innerhalb des <DO/>-Abschnitts ausgeführt.
Sonderfall: Der <VALIDATION/>-Abschnitt innerhalb des <DO/>-Abschnitts wird ausgeführt, solange die in der Wertermittlung definierten Bedingungen nicht erfüllt sind (d.h. solange die Wertermittlung FALSE zurückliefert)
Innerhalb der Handlungsanweisung ist die Angabe weitere Tags notwendig.
(mehr ...)

keine

 

4. Ebene der Regeldefinition – innerhalb einer Handlungsanweisung

<VALIDATION/>

Leitet eine Validierung ein. Die Validierung muss innerhalb einer Handlungsanweisung erfolgen. Die Validierung bezieht sich immer auf eine bestimmte Eigenschaft des Formulars oder einer Eingabekomponente, die innerhalb der Wertermittlung geprüft wird. Diese Eigenschaft wird innerhalb der Validierung auf ihre Gültigkeit geprüft. Dazu ist die Angabe eines <PROPERTY/>-Tags mit dem Attribut VALID notwendig. Alle nachfolgenden Handlungsanweisungen innerhalb des Validierungs-Abschnitts werden anschließend ausgeführt, solange die in der Wertermittlung definierten Bedingungen nicht erfüllt sind (d.h. solange die Wertermittlung FALSE zurückliefert).
(mehr ...).

scope: Definition der Restriktionsstufe der Validierung (SAVE: Unterbinden des Speicherns des Formulars, RELEASE: Unterbinden einer Freigabe des Formulars, INFO (Standard): nur Anzeige eines Hinweistextes)

 

Innere Tags zur Wertermittlung oder zur Ausgabe von Korrekturhinweisen:

<MESSAGE/>

Dient zur Definition sprachabhängiger Hinweistexte, die bei einer Regelverletzung direkt unterhalb der entsprechenden Eingabekomponente im Formular eingeblendet werden. Das Tag kann innerhalb der Validierung eingesetzt werden.
(mehr ...)

lang: Angabe eines Sprachkürzel, das in den Servereigenschaften im Feld „Abkürzung“ eingetragen ist, um festzulegen für welche Projektsprachen die Definitionen gelten sollen. Alternativ kann * für Rückfallwerte verwendet werden.

text: Angabe eines sprachabhängigen Hinweistexts.

<PROPERTY/>

Das Tag kann in allen Bereichen der Regeldefinition eingesetzt werden und dient dazu die Eigenschaften einer Eingabekomponente oder allgemeine Informationen zu einem Formular auszuwerten (z. B. Ist die Eingabekomponente leer?) oder Eigenschaften für eine Eingabe- oder Gestaltungskomponente zu definieren (z. B. Eingabekomponente soll im Formular ausgeblendet werden).
(mehr ...)

source: Name einer Eingabe- oder Gestaltungskomponente oder #global (mehr ...)

name: Angabe der Eigenschaft
(mehr ...)

<MATCHES/>

Dient zur Definition eines regulären Ausdrucks. Der reguläre Ausdruck wird über den Parameter regex übergeben. Neben dem regulären Ausdruck muss ein Vergleichswert über ein innen liegendes <PROPERTY/>-Tag angegeben werden. Das Tag kann innerhalb der Wertermittlung (oder bei der Definition einer Vorbedingung) eingesetzt werden.
(mehr ...).

Achtung: Nur möglich für einfache Werte (z. B. aus CMS_INPUT_TEXT), nicht für komplexere Werte (z. B. aus CMS_INPUT_DOM).

regex: Angabe des regulären Ausdrucks

<EQUAL/>

Dient zum Vergleich von Werten. Das Tag kann innerhalb der Wertermittlung (oder bei der Definition einer Vorbedingung) eingesetzt werden. Innerhalb des Tags müssen dazu mindestens zwei Werte zum Vergleich angegeben werden.
(mehr ...)

keine

<CONTAINS/>

Dient dem Vergleich der Inhalte von Eingabekomponenten der Typen CMS_INPUT_CHECKBOX und CMS_INPUT_LIST gegen
einen textuellen Vergleichswert oder eine Eigenschaft des Formulars.
(mehr ...)

source: Name der Eingabekomponente

<GREATER_THAN/>

Dient zur "Größer als"-Prüfung eines numerischen Wertes mit einem Vergleichswert. Das Tag kann innerhalb der Wertermittlung (oder bei der Definition einer Vorbedingung) eingesetzt werden. Innerhalb des Tags müssen dazu zwei Werte zum Vergleich angegeben werden.
(mehr ...)

keine

<LESS_THAN/>

Dient zur "Kleiner als"-Prüfung eines numerischen Wertes mit einem Vergleichswert. Das Tag kann innerhalb der Wertermittlung (oder bei der Definition einer Vorbedingung) eingesetzt werden. Innerhalb des Tags müssen dazu zwei Werte zum Vergleich angegeben werden.
(mehr ...)

keine

<NULL/> /
<NOT_NULL/>

Prüft, ob eine Eingabekomponente einen Wert enthält oder nicht. Die Tags können innerhalb der Wertermittlung (oder bei der Definition einer Vorbedingung) eingesetzt werden. Die Prüfung bezieht sich immer auf den Wert einer Eingabekomponente. Dazu ist innerhalb des Tags zusätzlich die Angabe eines <PROPERTY/>-Tags mit dem Attribut VALUE notwendig.
(mehr ...)

keine

<IN_GROUP/>

Dient zur Prüfung der Gruppenzugehörigkeit des Redakteurs. Das Tag kann innerhalb der Wertermittlung (oder bei der Definition einer Vorbedingung) eingesetzt werden.
(mehr ...)

name: Name der Gruppe

<AND/>

Dient zur logischen Und-Verknüpfung mehrerer Bedingungen innerhalb der Wertermittlung oder bei der Definition einer Vorbedingung. Werden mehrere Bedingungen mittels <AND/> verknüpft, ist der zusammengesetzte Ausdruck genau dann wahr, wenn alle verknüpften Ausdrücke wahr sind.
(mehr...)

keine

<OR/>

Dient zur logischen Oder-Verknüpfung mehrerer Bedingungen innerhalb der Wertermittlung oder bei der Definition einer Vorbedingung. Werden mehrere Bedingungen mittels <OR/> verknüpft, ist der zusammengesetzte Ausdruck genau dann wahr, wenn mindestens einer der verknüpften Ausdrücke wahr ist.
(mehr...)

keine

<NOT/>

Negation einer Bedingung innerhalb der Wertermittlung oder bei der Definition einer Vorbedingung.
(mehr...)

keine

<ADD/>

Dient zum Rechnen mit Werten in dynamischen Formularen. Das Tag kann innerhalb der Wertermittlung eingesetzt werden, um beispielsweise ganzzahlige Werte zu einem bestehenden Wert zu addieren oder eine zu definierende Zeitspanne zu einem bestehenden Datum zu addieren.
(mehr ...)

value: Über das Attribut kann ein ganzzahliger Wert oder eine Zeiteinheit, getrennt durch ein Leerzeichen, übergeben werden (mehr ...)

 

Innere Tags zur Angabe von Konstanten:

<DATE/>

Dient zur Angabe eines konstanten Datums innerhalb einer Prüfung auf Gleichheit (<EQUAL/>), Größer als (<GREATER_THAN/>) oder Kleiner als (<LESS_THAN/>).

Die Definition eines Datums erfolgt nach folgendem Schema: <DATE>Datum Zeit Zone</DATE>
Beispiel:
<DATE>2012-12-01 00:00:00 +0100</DATE>

Formatdefinitionen:
Datum hat das Format: jjjj-mm-dd mit
jjjj = Jahr, mm = Monatszahl, dd = Tag im Monat
(Bsp: 2011-12-15)
Zeit hat das Format: hh:mm:ss mit
hh = Stunde, mm = Minute, ss = Sekunde
(Bsp: 14:18:23)
Zone hat das Format: +zzzz oder -zzzz mit zzzz = Abweichung in Stunde-Minute-Angabe zur UTC
(Bsp: +0100) Die Abweichungen zur Sommer- bzw. Winterzeit müssen entsprechend berücksichtigt werden.

Kombinationsmöglichkeiten:
1) Datum Zeit Zone
2) Datum Zone – die Zeit wird hier auf 00:00:00 gesetzt
3) Zeit Zone – das Datum wird hier auf 01.01.1970 gesetzt (analog zur Datumskomponente)
4) Jeweils ohne Angabe von Zone – verwendet wird dann die aktuelle Zeitzone, die bei der Regelauswertung im SiteArchitect vorliegt.

Hinweis:
In der Kombination Datum-Zeit werden Datum und Uhrzeit als UTC gespeichert, wohingegen sie im SiteArchitect in der lokalen Zeitzone dargestellt werden. In diesem Fall sollte bei einer Regeldefinition kein Offset angegeben werden.
(mehr ...)

keine

<NUMBER/>

Dient zur Angabe einer numerischen Konstanten innerhalb einer Prüfung auf Gleichheit (<EQUAL/>), Größer als (<GREATER_THAN/>) oder Kleiner als (<LESS_THAN/>).
(mehr ...)

keine

<TEXT/>

Dient zur Angabe einer textuellen Konstanten innerhalb einer Gleichheitsprüfung (<EQUAL/> oder <CONTAINS/>).
(mehr ...)

keine

 

Innere Tags zur Übergabe von Informationen an ein FirstSpirit-Modul:

<CONDITION/>

Leitet die Definition einer (optionalen) Vorbedingung für eine asynchrone Regelausführung ein. Die Definition der Vorbedingung muss innerhalb eines <SCHEDULE/>-Tags und vor den Tags zur Handlungsanweisung erfolgen. Die nachfolgenden Abschnitte der Regel (Wertermittlung über ein externes Modul, Handlungsanweisung, Validierung) werden nur ausgeführt, wenn die Vorbedingung erfüllt ist. Innerhalb der Vorbedingung ist die Angabe weiterer Tags notwendig.
(mehr ...)

keine

<PARAM/>

Übergabe von Parametern an ein FirstSpirit-Modul. Wird die Wertermittlung vom SiteArchitect auf ein FirstSpirit-Modul übertragen, können innerhalb eines <SCHEDULE/>-Tags Parameter an das entsprechende Modul übergeben werden, beispielsweise der aktuelle Werte aus einer Eingabekomponente des Formulars. Innerhalb eines <PARAM/>-Tags ist dazu die Angabe weiterer Tags notwendig.
(mehr..)

name: Name des Parameters

   

© 2005 - 2019 e-Spirit AG | Alle Rechte vorbehalten. | FirstSpirit 2019-11 | Datenschutz | Impressum | Kontakt