Dans un jeu de règles, le flux d'événements suit l'ordre dans lequel les blocs de règles et les règles sont codés. Lorsque le moteur Active Correlation Technology reçoit un événement,
il détermine le type d'événement et identifie les règles qui l'utilisent pour l'activation de la règle, le traitement de l'événement ou la désactivation de la règle.
Utilisation des événements par les règles
Chaque règle qui utilise un événement commence par déterminer si ce dernier répond à tous les critères spécifiés pour l'activation de la règle, le traitement de l'événement ou la désactivation de la règle. Si c'est le cas, elle applique les actions suivantes :
- Pour l'activation de la règle
- Les actions contenues dans l'élément <onActivation> de la règle sont exécutées si elles sont codées.
- Pour le traitement de l'événement
- La règle traite l'événement. Lorsque le modèle de règle correspond, les actions de réponse à la règle sont exécutées si elles sont codées. Dans certaines situations :
- L'action peut interrompre le traitement de l'événement pour la suite du bloc de règles ou du jeu de règles.
- L'action peut envoyer un événement nouveau ou existant vers une autre règle ou un autre bloc de règles pour qu'ils procèdent à son traitement.
- Pour la désactivation de la règle
- Les actions contenues dans l'élément <onDeactivation> de la règle sont exécutées si elles sont codées.
Méthodes susceptibles d'influencer le flux d'événements
Active Correlation Technology offre des méthodes qui peuvent être appelées pour influencer le flux d'événements dans le jeu de règles. Ces méthodes sont disponibles par le biais de la variable act_lib.
- exitRuleSet
- Cette méthode spécifie que l'événement en cours n'est traité par aucune règle supplémentaire dans le jeu de règles.
- exitRuleBlock
- Cette méthode spécifie que l'événement en cours n'est traité par aucune règle supplémentaire dans le bloc de règles en cours ou dans tout bloc de règles contenu dans ce dernier. Cependant, il est traité par des règles supplémentaires en-dehors de la portée du bloc en cours.
- forward
- Cette méthode spécifie qu'un événement doit être envoyé vers d'autres règles et blocs de règles, bien que la règle en cours n'ait pas fini de le traiter. Ensuite, chaque règle et chaque bloc de règles traite entièrement l'événement avant de le renvoyer vers la règle qui a appelé la méthode forward.
- forwardOnCompletion
- Cette méthode spécifie qu'un événement doit être envoyé vers d'autres règles et blocs de règles au terme de son traitement par la règle en cours.