Freigeben über


Agenda und Priorität

Um zu verstehen, wie die Geschäftsregel-Engine Regeln auswertet und Aktionen ausführt, müssen Sie die Konzepte von Agenda und Priorität verstehen.

Agenda

Die Agenda ist ein Zeitplan, der von der Engine dazu verwendet wird, Regeln für die Ausführung in eine Warteschlange zu stellen. Die Agenda existiert für eine Engine-Instanz und agiert auf der Basis einer einzelnen Richtlinie, nicht einer Reihe von Richtlinien. Wenn ein Fakt an den Arbeitsspeicher übergeben wird und die Bedingungen einer bestimmten Regel erfüllt sind, wird die Regel in der Agenda abgelegt und nach Priorität ausgeführt. Die Aktionen einer Regel werden der Reihe nach von oben nach unten ausgeführt. Anschließend werden die Aktionen der nächsten Regel in der Agenda ausgeführt.

Die Aktionen, die zu einer Regel gehören, werden als Block behandelt. Daher werden alle Aktionen ausgeführt, bevor zur nächsten Regel übergegangen wird. Es werden alle Aktionen in einem Regelblock unabhängig von anderen Aktionen im Block ausgeführt. Weitere Informationen zur Assertion finden Sie unter Engine Control Functions.

Das folgende Beispiel veranschaulicht die Funktionsweise der Agenda:

Regel1

IF  
Fact1 == 1  
THEN  
Action1  
Action2  

Regel2

IF  
Fact1 > 0  
THEN  
Action3  
Action4  

Der Fakt "Fact1", der einen Wert von "1" hat, wird an die Engine übergeben. Da die Bedingungen von Regel 1 und Regel 2 erfüllt sind, werden beide Regeln zur Ausführung ihrer Aktionen in die Agenda verschoben.

Arbeitsspeicher Agenda
Fact1 (Wert=1) Regel1

- Aktion1
- Aktion2

Regel2

- Aktion3
- Aktion4

Priority

Die Priorität für die Ausführung wird für jede einzelne Regel festgelegt. Der Wert für die Standardpriorität lautet für alle Regeln "0". Die Priorität kann weniger oder mehr als "0" betragen, wobei höhere Werte eine höhere Priorität kennzeichnen. Aktionen werden der Reihe nach ausgeführt, von der höchsten Priorität bis zur niedrigsten Priorität.

Das folgende Beispiel verdeutlicht, wie sich die Priorität auf die Ausführungsreihenfolge für Regeln auswirkt.

Regel 1 (Priorität = 0)

IF  
Fact1 == 1  
THEN  
Discount = 10%  

Regel 2 (Priorität = 10)

IF  
Fact1 > 0  
THEN  
Discount = 15%  

Die Bedingungen für beide Regeln sind erfüllt, Regel 2 wird jedoch zuerst ausgeführt, da sie eine höhere Priorität hat. Der endgültige Rabatt beträgt 10 Prozent, da er das Ergebnis der Aktion ist, die für Regel 1 ausgeführt wurde, wie in der folgenden Tabelle gezeigt.

Arbeitsspeicher Agenda
Fact1 (Wert=1) Regel2

Rabatt = 15%

Regel1

Rabatt = 10%

Weitere Informationen

Regel-Engine