Leggere in inglese

Condividi tramite


Agenda e priorità

Per comprendere come il motore regola business valuta le regole ed esegue azioni, è necessario comprendere i concetti dell'agenda e della priorità.

Agenda

L'agenda è una pianificazione utilizzata dal motore per accodare le regole per l'esecuzione. È presente per un'istanza del motore e agisce su un singolo criterio, non su una serie di criteri. Quando viene dichiarato un fact nella memoria utilizzata e vengono soddisfatte le condizioni di una determinata regola, la regola viene inserita nell'agenda e viene eseguita in base alla priorità. Le azioni di una regola vengono eseguite nell'ordine dall'alto al basso, dopo di che vengono eseguite le azioni della regola successiva nell'agenda.

Le azioni che appartengono a una regola vengono trattate come blocco, per cui vengono eseguite tutte prima di passare alla regola successiva. Tutte le azioni in un blocco di regole verranno eseguite a prescindere da altre azioni nel blocco. Per altre informazioni sull'asserzione, vedere Funzioni di controllo motore.

Nell'esempio seguente viene illustrato l'utilizzo dell'agenda.

Regola1

IF  
Fact1 == 1  
THEN  
Action1  
Action2  

Regola2

IF  
Fact1 > 0  
THEN  
Action3  
Action4  

Viene asserito il fact Fact1 che ha un valore di 1 nel motore. Perché vengono soddisfatte le condizioni sia di Rule1 che di Rule2, entrambe le regole vengono spostate nell'agenda per l'esecuzione delle loro azioni.

Memoria di lavoro Agenda
Fact1 (valore=1) Regola1

- Azione1
- Azione2

Regola2

- Azione3
- Azione4

Priorità

La priorità per l'esecuzione è impostata su ogni singola regola. Tutte le regole hanno una priorità predefinita 0. La priorità può variare su entrambi i lati di 0 e i numeri maggiori hanno una priorità superiore. Le azioni vengono eseguite nell'ordine dalla priorità più alta alla priorità più bassa.

Nell'esempio seguente viene illustrato come la priorità influisce sull'ordine di esecuzione per le regole.

Rule1 (priorità = 0)

IF  
Fact1 == 1  
THEN  
Discount = 10%  

Rule2 (priorità = 10)

IF  
Fact1 > 0  
THEN  
Discount = 15%  

Le condizioni per entrambe le regole sono state soddisfatte ma Rule2 viene eseguita per prima poiché ha una priorità superiore. Lo sconto finale è 10 % perché è il risultato dell'azione eseguita per Rule1, come illustrato nella tabella seguente.

Memoria di lavoro Agenda
Fact1 (valore=1) Regola2

Sconto = 15%

Regola1

Sconto = 10%

Vedere anche

Motore regole di business