Anfang des InhaltsbereichsHintergrunddokumentationWann wird eine Regel ausgeführt? Dokument im Navigationsbaum lokalisieren

Allgemeine Kriterien

Eine Regel im EH&S Expert wird ausgeführt,

Hinweis

Der explizite Eingriff in den Regelwerkablauf mittels Enable/Disable-Kommandos kann dazu führen, daß Fakten bereits ausgeführter Regeln nachträglich geändert werden. Dies hat zur Folge, daß die Regel erneut ausgeführt wird.

Ausnahmen:

Ausnahme: ToDo’s die nur direkte Zuweisungen der Art X:=Y machen, gelten auch als ausführbar, wenn Y den Wert NULL, d.h. keinen echten Wert hat.

Die Auswertung ist beendet, wenn keine Regel mehr diesen Bedingungen genügt.

Beispiel

 

X := 1

Vorgabe: Die Fakten X und Y haben Daten, Z ist leer (NULL).

 

Y := 2

 

Z

 

RULE R1

Die Bedingung X=1 ist wahr. Somit wird die Regel ausgeführt und Regeln der Regelgruppe Gruppe1 werden deaktiviert.

   

IF X = 1

   

THEN DISABLE(GRUPPE1)

 

END

 

RULE R2 GROUPS GRUPPE1

Die Regel wurde durch die Regel R1 deaktiviert und kann daher nicht angewendet werden.

   

IF X > 0

   

THEN Z := 1

 

END

 

RULE R3

Diese Regel kann angewendet werden, da das leere Z nicht in einem komplexen Ausdruck auftritt.

   

IF TRUE()

   

THEN Y := Z

 

END

 

RULE R4

Regel kann nicht angewendet werden, da Z innerhalb des Ausdrucks Z + 1 ohne Wert ist.

   

IF TRUE()

   

THEN Z := Z + 1

 

END

 

RULE R5

Das leere Z kommt in der Bedingung vor, die Regel kann also nicht angewendet werden.

   

IF Z = 0

   

THEN Y := Z

 

END

 

RULE R6

Diese Regel kann angewendet werden, da das leere Z innerhalb der IsNull()-Funktion auftritt.

   

IF IsNull(Z)

   

THEN Z = X

 

END

 

RULE R7

Diese Regel kann nicht ausgeführt werden, da die Bedingung nicht wahr ist.

   

IF X > 10

   

THEN X := X + 1

 

END

Datenabhängige Regelausführung

Für die Reihenfolge der Regelausführung gilt die Strategie der Datenabhängigkeit. D.h., wenn eine Regel A nach den Kriterien noch nicht ausgeführt und nicht deaktiviert für ausführbar befunden wird, dann werden vor Prüfung der restlichen datenbezogenen Kriterien zunächst alle Regeln ausgeführt, die Werte von Fakten ändern können, die in A als Eingabedaten benutzt werden. Dies sind diejenigen Fakten, die in der Bedingung oder auf der rechten Seite von Zuweisungen vorkommen.

Die datenabhängige Regelausführung erfolgt rekursiv. D.h., wenn bei Prüfung von Regel A festgestellt wird, daß Regel A Daten von Regel B braucht, Regel B jedoch wiederum von in Regel C geänderten Daten abhängt, dann wird zunächst Regel C, dann Regel B und zuletzt Regel A ausgeführt.

Der Regeleditor zeigt Ihnen Abhängigkeiten, die zwischen Regeln bestehen über die folgende Farbkonvention an. Wählen Sie den gewünschten Präsentationsmodus über Debug ® Visualize Recursive Rule Dependencies.

Farbe

Modus singlelevel dependency

Modus multilevel dependency

blau

selektierte Regel

selektierte Regel

rot

Regel, von der die selektierte Regel direkt abhängt

alle Regeln, von denen die selektierte Regel abhängt

grün

Regel, die von der selektierten Regel direkt abhängt

alle Regeln, die von der selektierten Regel abhängen

grau

Alle Regeln die nicht direkt mit der selektierten Regel in Zusammenhang stehen

Regel, die mit der selektierten Regel in keinerlei Zusammenhang stehen

Wenn bei dieser Abhängigkeitsprüfung festgestellt wird, daß die Suche wieder bei der Ausgangsregel ankommt, dann wird die Suche abgebrochen und mit der Ausführung der zuletzt identifizierten Regel begonnen, um eine Endlosschleife zu verhindern.

Der Regeleditor bietet Ihnen die Möglichkeit eine Prüfung auf zirkulare Abhängigkeiten durchzuführen. Wählen Sie hierzu Tools ® Check Circular Dependencies.

Beispiel

Eine datenabhängige Regelausführung könnte folgendermaßen aussehen:

 

X := 1

Vorgabe: Die Fakten X und Y haben Daten, Z ist leer (NULL).

 

Y := 2

 

Z

 

RULE R1

Vor Prüfung der Bedingung dieser Regel sucht der EH&S Expert zunächst nach Regeln, die den Wert von X verändern können. X wird sowohl in der Bedingung als auch auf der rechten Seite einer Zuweisung verwendet.

   

IF X = 1

   

THEN Y := X

 

END

 

RULE R2

Diese Regel verändert X (X steht auf der linken Seite einer Zuweisung), hängt jedoch vom Wert von Z ab. Also wird nach Regeln gesucht, die Z verändern.

   

IF Z > 0

   

THEN X := 1

 

END

 

RULE R3

Diese Regel setzt den Wert von Z und hängt von keinen weiteren Eingabedaten ab. D.h., die Abhängigkeitsprüfung ist zu Ende. Der EH&S Expert führt R3 aus und danach R2, da keine weiteren Regeln Z verändern können. Zum Schluß wird R1 ausgeführt, da nun der Wert von X feststeht.

   

IF TRUE()

   

THEN Z := 5

 

END

Explizite Abhängigkeit

Sie haben außerdem mehrere Möglichkeiten, den Ablauf der Regelausführung direkt zu beeinflussen (siehe Ablaufkontrolle der Regelausführung).

Hinweis

Die Reihenfolge der Regeln im Regelwerk ist somit nur sehr bedingt relevant.

Ende des Inhaltsbereichs