Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Info

Der Operator * ist immer wahr. Enthält eine Zeile also in einer Spalte den Wert '*', so erfüllt die Zeile die Bedingung dieser Spalte immer,

unabhängig von der Spaltenbedingung. Mehr dazu im nächsten Abschnitt.

Boolsche Operatoren in Regeln

 

Das R-S definiert einige boolsche Operatoren, mit denen Sie Vergleiche anstellen können.

Auch wenn Sie explizit keinen Operator angeben wird ein Operator verwendet, nämlich der Operator EQUAL:

Die Bedingung ist wahr, wenn Wert A = Wert B, also wenn die Spalte in der Zeile den gleichen Wert hat wie die Spalte.

Bisher sind wir in Regeln von diesem Verhalten ausgegangen: Der Wert in der Zeile muss identisch zum Wert der entsprechenden Spalte sein.

Dies ist aber nur das Standardverhalten, dass Sie durch boolsche Operatoren verändern können.

In der Praxis werden Sie oft mit Operatoren arbeiten, nämlich immer dann, wenn Werte nicht nur gleich sein sollen,

sondern in einer bestimmten Beziehung zueinander stehen sollen. Folgende Operatoren existieren im R-S:


*!=<><=>=[Wert1, Wert2, Wertn][Wert1, ..., Wert2]

 

ALWAYSTRUE Operator *

 

Den ALWAYSTRUE Operator * haben Sie bereits im obigen Abschnitt kennengelernt. Er erwartet keine zu vergleichenden Argumente und

hat immer den Wert TRUEist also immer wahr. Er wird oft benutzt, wenn eine Bedingung für die Zeile irrelevant ist, um einen Restbereich abzudecken,

der durch die anderen Zeilen nicht abgedeckt wurde oder um ein Alternatives Standardverhalten zu implementieren. Durch * trifft diese Bedingung dann immer zu.


Image Added
Beispielregel A

 

Die Bedingung in Beispielregel A ist 24.12.2013. Zeile #1 erhält das heutige Datum über die Datenstrom-Variable DS.TODAYS_DATE.

Ist das heutige Datum der 24.12.2013, so ist der Wert der Regel der STRING "Heute ist Weihnachten!". Ist heute nicht der 24.12.2013,

trifft die Bedingung nicht zu und die Zeile ist ungültig. Zeile #2 ist immer gültig, da der Operator * unabhängig von der Bedingung immer zutrifft.

An allen anderen Tagen ist der Wert der Regel also der STRING "Heute ist irgendein Tag, aber nicht Weihnachten!".

In Zeile #1 wird übrigens automatisch der EQUAL-Operator verwendet, da ja kein Operator angegeben wird.

Die interne Darstellung ist also =${DS.TODAYS_DATE} (der EQUAL-Operator darf aber nicht manuell angegeben werden).


NOTEQUAL Operator !=


Der NOTEQUAL Operator != ist die Verneinung des EQUAL-Operators. Er wird benutzt, wenn 2 Werte nicht identisch sein sollen.

Man könnte Beispielregel A also auch so implementieren:


Image Added
Beispielregel B

 

Diesmal ist die Bedingung der Spalte Weihnachten das heutige Datum, abgefragt durch die Datenstrom-Variable DS.TODAYS_DATE.

Hat die Spalte den Wert 24.12.2013, ist heute Weihnachten und Zeile #1 trifft zu (DS.TODAYS_DATE = 24.12.2013).

Ist heute ein anderer Tag als der 24.12.2013, ist Zeile #2 gültig: GET_TODAYS_DATE ist ungleich 24.12.2013.


LESS Operator < und GREATER Operator >

 

Die LESS < und GREATER > Operatoren überprüfen, ob ein Wert kleiner oder größer ist als der gegebene Wert.

Der LESS Operator ist wahr, wenn der Wert kleiner ist als der gegebene Wert.

Der GREATER Operator ist wahr, wenn der Wert größer ist als der gegebene Wert.

 

Image Added
Beispielregel C

 

Die Bedingung der Spalte ist der Preis eines Artikels, abgefragt über die Datenstrom-Variable DS.ARTICLE_PRICE.

Ist DS.ARTICLE_PRICE größer als 1000 ist Zeile #1 gültig, ist DS.ARTICLE_PRICE exakt 1000 ist Zeile #2 gültig und

wenn DS.ARTICLE_PRICE kleiner als 1000 ist, ist Zeile #3 gültig.

 

EQUALLESS Operator <= und EQUALGREATER Operator >=

 

Die EQUALLESS <= und EQUALGREATER >= Operatoren sind Erweiterungen der LESS und GREATER Operatoren.

Der EQUALLESS Operator ist wahr, wenn der Wert kleiner oder gleich dem gegebenen Wert ist.

Der EQUALGREATER Operator ist wahr, wenn der Wert größer oder gleich dem gegebenen Wert ist.

Beispielregel C ließe sich also mithilfe des EQUALGREATER-Operators einfach implementieren:

 

Image Added
Beispielregel D

 

Wenn der Wert von DS.ARTICLE_PRICE größer oder gleich 1000 ist, trifft Zeile #1 zu, ansonsten Zeile #2.

Die Verwendung von EQUALLESS verläuft analog.

 

INLIST Operator [Wert1, Wert2, Wertn]

 

 

 

Wertfindung innerhalb einer Regel

...