Versionen im Vergleich

Schlüssel

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

...

Im Formular-Bereich SERVICE_LINE wird dann die entsprechende Flagge angezeigt.

Wertfindung innerhalb einer Regel

 

Gibt es in der Regel mehrere Spalten, die alle Spaltenbedingungen erfüllen, dann ist die oberste Regel in der Liste die zutreffende Regel

und ihr Rückgabewert der Wert der Regel. Alle danach kommenden Zeilen werden nicht beachtet.

(Das ist auch in Abb. A der Fall, denn Zeile #4 erfüllt ebenfalls alle Spaltenbedingungen, Zeile #3 steht jedoch weiter oben).

Nachfolgend ist dargestellt, wie der Wert einer Regel bestimmt wird:

 

Image Added
Abbildung B: Durchlauf Wertbestimmung der Regel

 

Die Regel in Abb. B hat 3 Spalten und 3 Zeilen. Jede Spalte definiert eine Bedingung, jede Zeile einen Wert pro Spalte.

Die Prüfung beginnt in Zeile 1, Spalte 1. Ist der Wert von Zeile 1 in Spalte 1 identisch zum Spaltenwert,

wird mit der Prüfung von Spalte 2 in Zeile 1 fortgefahren. Ist der Wert von Zeile 1 in Spalte 2 wieder identisch

zum Spaltenwert der 2. Spalte, wird mit der Prüfung von Spalte 3 in Zeile 1 fortgefahren.

Ist auch der Wert von Zeile 1 in Spalte 3 identisch zum Spaltenwert, trifft die gesamte Zeile zu und der Rückgabewert der Zeile

ist der Wert der Regel (grüne Pfeile). Hat eine der Spalten in Zeile 1 einen anderen Wert als die zugehörige Spaltenbedingung,

trifft also nicht auf die Bedingung zu, wird die Prüfung der Zeile abgebrochen und mit der Prüfung der nächsten Zeile fortgefahren.

Dort wird dann wieder in der 1. Spalte begonnen. Wurden alle Zeilen geprüft und keine davon erfüllt alle Spaltenbedingungen,

ist der Wert der Regel undefiniert, da kein Rückgabewert ausgewählt werden kann (rote Pfeile).

 

In Abb. A ist der Verlauf also folgendermaßen:

Image Added
Abbildung C: Wertfindung bei Abb. A

 

Der Wert der Regel ist also der Rückgabewert von Zeile #3.

Um zu verhindern, dass der Wert einer Regel undefiniert (leer) ist, falls keine der Zeilen alle Bedingungen erfüllt,

können Sie unter den regulären Zeilen eine weitere Zeile einfügen, die in allen Spalten den Operator * als Wert hat,

also immer gültig ist (Der Operator * wurde oben erklärt). In dieser Zeile definieren Sie dann als Rückgabewert einen Standard-Wert.

Trifft keine der regulären Auswahlmöglichkeiten zu, wird diese Standardzeile ausgewählt und der Wert der Regel ist der Standard-Wert.

Dieses Vorgehen wurde in Abb. C durch Zeile #4 verwirklicht.


 

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 Operator EQUAL:

 

Die Bedingung ist wahr, wenn 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 Den ALWAYSTRUE Operator  Operator * haben  haben Sie bereits im obigen Abschnitt kennengelernt. Er erwartet keine zu vergleichenden Argumente und

 

hat immer den Wert 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 Durch * trifft  trifft diese Bedingung dann immer zu.

 


 


Beispielregel A

 

 

 

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

 

Ist das heutige Datum der 24.12.2013, so ist der Wert der Regel der 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 Operator * unabhängig  unabhängig von der Bedingung immer zutrifft.

 

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

 

In Zeile #1 wird übrigens automatisch der 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 Der NOTEQUAL Operator  Operator != ist  ist die Verneinung des des EQUAL-Operators. Er wird benutzt, wenn 2 Werte nicht identisch sein sollen.

 

Man könnte könnte Beispielregel A also  also auch so implementieren:

 


 


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 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  ist ungleich 24.12.2013.

 


 

LESS Operator < und GREATER Operator >

 

 

 

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

 

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

 

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

 

 

 


Beispielregel C

 

 

 

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

 

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

 

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

 

 

 

EQUALLESS Operator <= und EQUALGREATER Operator >=

 

 

 

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

 

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

 

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

 

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

 

 

 


Beispielregel D

 

 

 

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

 

Die Verwendung von EQUALLESS verläuft  EQUALLESS verläuft analog.

 

 

 

INLIST Operator [Wert1, Wert2, Wertn]

 

 

 

Mit dem dem INLIST Operator  Operator [W1, W2, Wn] können Sie beliebig viele Werte angeben, die geprüft werden sollen.

 

Die einzelnen Werte werden durch ein Komma getrennt. Trifft einer der Werte zu, ist die Bedingung erfüllt.

 

 

 


Beispielregel E

 

 

 

Die Bedingung der Spalte ist die Herkunftsstadt des Kunden, abgefragt über die Datenstrom-Variable Variable DS.CUST_CITY.

 

In jeder Zeile werden per per INLIST-Operator 4 mögliche Werte angegeben. Trifft einer der Werte zu, ist die Zeile gültig.

 

Es ist auch möglich, innerhalb des des INLIST-Operators den != Operator zu verwenden

 

 

 

INRANGE Operator [Wert1, ..., Wert2]

 

 

 

Mit dem INRANGE Operator können Sie einen Wertebereich angeben. Liegt der Wert innerhalb des Bereichs, ist die Bedingung erfüllt.

 

Wert1 bildet die Untergrenze des Wertebereichs, Wert2 die Obergrenze. Die Werte zählen zum Wertebereich dazu.

 

 

 


Beispielregel F

 

 

 

Wenn der Wert von DS.ARTICLE_PRICE größer als 10.000 ist, trifft Zeile #1 zu.

 

Liegt der Wert zwischen 2.500 und 10.000, trifft Zeile #2 zu. Liegt der Wert zwischen 1.000 und 2.500, trifft Zeile #3 zu.

 

Ist der Wert kleiner als 1000, trifft Zeile #4 zu.

 

 

 

Einen Überblick der Operatoren finden Sie auch im im Abschnitt über EVAL-Anweisungen.

 

Wertfindung innerhalb einer Regel

 

Gibt es in der Regel mehrere Spalten, die alle Spaltenbedingungen erfüllen, dann ist die oberste Regel in der Liste die zutreffende Regel

und ihr Rückgabewert der Wert der Regel. Alle danach kommenden Zeilen werden nicht beachtet.

(Das ist auch in Abb. A der Fall, denn Zeile #4 erfüllt ebenfalls alle Spaltenbedingungen, Zeile #3 steht jedoch weiter oben).

Nachfolgend ist dargestellt, wie der Wert einer Regel bestimmt wird:

 

Image Removed
Abbildung B: Durchlauf Wertbestimmung der Regel

 

Die Regel in Abb. B hat 3 Spalten und 3 Zeilen. Jede Spalte definiert eine Bedingung, jede Zeile einen Wert pro Spalte.

Die Prüfung beginnt in Zeile 1, Spalte 1. Ist der Wert von Zeile 1 in Spalte 1 identisch zum Spaltenwert,

wird mit der Prüfung von Spalte 2 in Zeile 1 fortgefahren. Ist der Wert von Zeile 1 in Spalte 2 wieder identisch

zum Spaltenwert der 2. Spalte, wird mit der Prüfung von Spalte 3 in Zeile 1 fortgefahren.

Ist auch der Wert von Zeile 1 in Spalte 3 identisch zum Spaltenwert, trifft die gesamte Zeile zu und der Rückgabewert der Zeile

ist der Wert der Regel (grüne Pfeile). Hat eine der Spalten in Zeile 1 einen anderen Wert als die zugehörige Spaltenbedingung,

trifft also nicht auf die Bedingung zu, wird die Prüfung der Zeile abgebrochen und mit der Prüfung der nächsten Zeile fortgefahren.

Dort wird dann wieder in der 1. Spalte begonnen. Wurden alle Zeilen geprüft und keine davon erfüllt alle Spaltenbedingungen,

ist der Wert der Regel undefiniert, da kein Rückgabewert ausgewählt werden kann (rote Pfeile).

 

In Abb. A ist der Verlauf also folgendermaßen:

Image Removed
Abbildung C: Wertfindung bei Abb. A

 

Der Wert der Regel ist also der Rückgabewert von Zeile #3.

Um zu verhindern, dass der Wert einer Regel undefiniert (leer) ist, falls keine der Zeilen alle Bedingungen erfüllt,

können Sie unter den regulären Zeilen eine weitere Zeile einfügen, die in allen Spalten den Operator * als Wert hat,

also immer gültig ist (Der Operator * wurde oben erklärt). In dieser Zeile definieren Sie dann als Rückgabewert einen Standard-Wert.

Trifft keine der regulären Auswahlmöglichkeiten zu, wird diese Standardzeile ausgewählt und der Wert der Regel ist der Standard-Wert.

Dieses Vorgehen wurde in Abb. C durch Zeile #4 verwirklicht.

 

Section
Column
width600px
Panel
borderColorLightGray
bgColorGhostWhite
borderWidth2
borderStyledotted

 Um mit den physikalischen Beilegern fortzufahren, klicken Sie bitte hier.

Column