Startseite
Startseite

Startseite / Vorlagenentwicklung / Regeln / Wertermittlung <WITH/>

<WITH/> Werte ermitteln

Jede Regel ermittelt zunächst einen Wert, der beispielsweise auf einer oder auch mehreren Eigenschaften des Formulars („In welcher Redaktionssprache wird das Formular bearbeitet?“) oder eines einzelnen Formularelements („Ist der Wert der Komponente NULL?“) basieren kann. Die gewünschten Eigenschaften werden in der Wertermittlung der Regeldefinition berücksichtigt.

Eine Wertermittlung wird innerhalb eines <WITH/>-Abschnitts definiert. Dieser Abschnitt muss innerhalb der Tags definiert werden, die eine Restriktionsstufe festlegen und vor den Tags, die eine Handlungsanweisung einleiten. Sofern für die Regel eine Vorbedingung definiert ist, wird die Wertermittlung nach der Vorbedingung definiert.

Dabei gilt für die Definition einer Wertermittlung:

  • Für jede Regel muss eine Wertermittlung definiert werden.
  • im einfachsten Fall kann der Vorlagenentwickler eine Konstante (<TRUE/>, <FALSE/>, <TEXT/>, <NUMBER/>) innerhalb des <WITH/>-Abschnitts definieren.
  • Die Wertermittlung kann aber auch deutlich komplexer ausfallen und sich auf Werte oder Eigenschaften des Formulars oder eines Formularelements beziehen. Innerhalb der Tags zur Wertermittlung ist dann die Angabe eines <PROPERTY/>-Tags notwendig. Über:
    • logische (<AND/>, <NOT/>, <OR/>),
    • vergleichende (<EQUAL/>, <GREATER_THAN/>, <LESS_THAN/>, <NOT_NULL/>) oder
    • reguläre Ausdrücke (<MATCHES/>)
  • können weitere Werte abgeleitet werden. So kann der Wert der Eingabekomponente beispielsweise gegen bestimmte reguläre Ausdrücke oder gegen einen Vergleichswert geprüft werden.
  • Das Ergebnis der Wertermittlung (Boolescher Wert, Text, Datum,...) wird vom FirstSpirit-Framework bei der Regelausführung weitergereicht und kann vom Regel-Entwickler mit der passenden Handlungsanweisung verknüpft werden.

Beispiele

Beispiel 1) Booleschen Wert ermitteln und mit einer Validierung verknüpfen

In einem Formular gibt es je ein Eingabefeld für ein Erstellungsdatum („st_creationDate“), das automatisch vorbelegt wird und ein Ablaufdatum („st_endDate“), das von Redakteur gepflegt wird. Über ein dynamisches Formular soll sichergestellt werden, dass das vom Redakteur eingetragene Ablaufdatum nach dem Erstellungsdatum liegt.

Innerhalb des <WITH/>-Abschnitts wird zunächst der Wert der beiden Eingabekomponenten über ein <PROPERTY/>-Tag geholt und anschließend eine einfache <GREATER_THAN/>-Prüfung auf den beiden Werten ausgeführt. Das Ergebnis dieser Prüfung ist ein Boolescher Wert, der anschließend im <DO/>-Abschnitt mit einer Validierung verknüpft wird. Solange die Bedingung („Ablaufdatum liegt nach dem Erstellungsdatum“) nicht erfüllt ist, wird der <VALIDATION/>-Abschnitt der Regel ausgeführt.

<RULES>
<ON_RELEASE>
<WITH>
<GREATER_THAN>
<PROPERTY source="st_endDate" name="VALUE"/>
<PROPERTY source="st_creationDate" name="VALUE"/>
</GREATER_THAN>
</WITH>
<DO>
<VALIDATION>
<PROPERTY source="st_endDate" name="VALID"/>
<MESSAGE lang="*" text="Please enter a valid date"/>
<MESSAGE lang="DE" text="Bitte geben Sie ein gültiges Datum"/>
</VALIDATION>
</DO>
</ON_RELEASE>

</RULES>

Beispiel 2) Werte ermitteln und mit einer Handlungsanweisung verknüpfen

Statt eines Booleschen Wertes (siehe Beispiel 1) kann die Wertermittlung auch eine Ergebnismenge zurückliefern.

Das folgende Formular enthält zwei Eingabekomponenten vom Typ CMS_INPUT_COMBOBOX, deren Wertemenge automatisch aus einer Datenbanktabelle gefüllt wird. Das dynamische Formular soll nun sicherstellen, dass nach der Auswahl eines Lieferanten aus der Auswahlliste „st_supplier“ beim Ausklappen der Combobox „st_dish“ nur die Produkte des ausgewählten Lieferanten angezeigt werden. Die Auswahl aus der ersten Auswahlliste beeinflusst also die Auswahlmenge der abhängigen, zweiten Auswahlliste.

Innerhalb des <WITH/>-Abschnitts wird zunächst der Wert der ersten Eingabekomponenten über ein <PROPERTY/>-Tag geholt. Das Ergebnis dieser Wertermittlung wird anschließend im <DO/>-Abschnitt der Regel mit einer Handlungsanweisung verknüpft. In diesem Fall wird keine Validierung ausgeführt, sondern über ein weiteres <PROPERTY/>-Tag die Wertemenge der Eingabekomponente „st_dish“ dynamisch mit Werten aus einer Datenbanktabelle gefüllt (vgl. CMS_INCLUDE_OPTIONS). Der ermittelte Wert aus der Combobox „st_supplier“ dient dabei als Schlüssel.

<RULES>
<ON_EVENT>
<WITH>
<PROPERTY source="st_supplier" name="VALUE"/>
</WITH>
<DO>
<PROPERTY source="st_dish" name="query.supplier_id"/>
</DO>
</ON_EVENT>
</RULES>

© 2005 - 2015 e-Spirit AG | Alle Rechte vorbehalten. | Letzte Änderung: 2015-02-18