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: | 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. | 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. | 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. | service: Name des Moduls |
<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. | 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). | 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. | 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. |
<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). | source: Name einer Eingabe- oder Gestaltungskomponente oder #global (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. | 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. | keine |
<CONTAINS/> | Dient dem Vergleich der Inhalte von Eingabekomponenten der Typen CMS_INPUT_CHECKBOX und CMS_INPUT_LIST gegen | 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. | 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. | keine |
<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. | 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. | 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. | 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. | keine |
<NOT/> | Negation einer Bedingung innerhalb der Wertermittlung oder bei der Definition einer Vorbedingung. | 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. | 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/>). | 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/>). | keine |
<TEXT/> | Dient zur Angabe einer textuellen Konstanten innerhalb einer Gleichheitsprüfung (<EQUAL/> oder <CONTAINS/>). | 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. | 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. | name: Name des Parameters |