Für die Reihenfolge der Regelausführung gilt allgemein das Prinzip der Datenabhängigkeit (siehe Wann wird eine Regel ausgeführt? ).
Daneben haben Sie folgende Möglichkeiten, die Reihenfolge der Regelausführung direkt zu beeinflussen:
Sie formulieren Regelabhängigkeiten explizit mit dem Schlüsselwort DEPENDS in der Regeldefinition.
Syntax
RULE R1 DEPENDS R2, R3
IF ...
THEN ...
END
Hier wird die Regel R1 ausdrücklich in Abhängigkeit von den Regeln R2 und R3 gesetzt. Das bedeutet, daß der EH&S Expert zunächst versucht, R2 und R3 anzuwenden, noch bevor er die Datenabhängigkeit in R1 prüft und R1 ausführt.
Hinweis
Wenn Sie das Regelwerk mit Hilfe des Regeleditors erstellen, dann können Sie in der Regel R1 unter Depends on rules
die Regeln R2 und R3 angeben. Der Regeleditor erzeugt dann automatisch eine Regeldatei mit der korrekten Syntax (Siehe Regel bearbeiten ).
Das Schlüsselwort DEPENDS NOT ermöglicht Ihnen Regelabhängigkeiten zu unterdrücken und somit zirkulare Abhängigkeiten aufzubrechen.
Syntax
RULE R1 DEPENDS NOT R2, R3
IF ...
THEN ...
END
Sie ordnen Regeln einer Regelgruppe zu und beeinflussen die Reihenfolge der Regelausführung durch spezielle Aktionen im THEN-Teil der Regel (ToDos).
Die Zuordnung zu Regelgruppen erfolgt mit dem Schlüsselwort GROUPS in der Regeldefinition.
Syntax
RULE R1 GROUPS RuleGroup1
IF ...
THEN ...
END
Hinweis
Wenn Sie das Regelwerk mit Hilfe des Regeleditors erstellen, dann können Sie die Regeln unter Groups
einer Gruppe zuweisen. Der Regeleditor erzeugt dann automatisch eine Regeldatei mit der korrekten Syntax (Siehe Regel bearbeiten ).
Im THEN-Teil der Regel können Sie die Reihenfolge der Regelausführung dann mit Zuweisungen der allgemeinen Form <Kommando>(<Regelgruppenname>) beeinflussen .
Kommando | Auswirkung |
DISABLE(<Regelgruppenname>) | Alle der Regelgruppe zugeordneten Regeln werden deaktiviert, d.h. bei der weiteren Verarbeitung nicht berücksichtigt. |
ENABLE(<Regelgruppenname>) | Alle der Regelgruppe zugeordneten Regeln werden aktiviert. Da dies der Normalzustand ist, wirkt dieses Kommando nur nach einem vorangegangenen DISABLE . |
RESET(<Regelgruppenname>) | Alle der Regelgruppe zugeordneten Regeln werden in ihren Ausgangszustand zurückversetzt, d.h. sie gelten als noch nicht ausgeführt. Regeln werden im Normalfall nur einmal ausgeführt. Mit diesem Kommando können Sie dieses Verhalten durchbrechen. |