事件流按照所编写的规则块和规则的顺序通过规则集。当活动关联技术引擎接收到事件时,该引擎将确定事件类型,并确定使用此事件类型进行规则激活、事件处理或规则停用的规则。
规则使用事件的方式
使用事件的每个规则首先确定该事件是否符合规则激活、事件处理或规则停用的所有指定条件。如果符合,则规则将执行以下操作:
- 对于规则激活
- 将运行规则的 <onActivation> 元素中的操作(如果已编码)。
- 对于事件处理
- 规则将处理事件。当规则模式匹配时,将运行规则响应操作(如果已编码)。
在某些情况下,规则响应操作可执行以下操作:
- 该操作可导致事件跳过规则块或规则集其余部分的处理。
- 该操作可向另一个规则或规则块发送新事件或现有事件以进行处理。
- 对于规则停用
- 将运行规则的 <onDeactivation> 元素中的操作(如果已编码)。
可影响事件流的方法
活动关联技术提供以下可调用方法来影响通过规则集的事件流。这些方法可通过 act_lib 变量访问。
- exitRuleSet
- 该方法指定当前事件不再由规则集中的任何其他规则处理。
- exitRuleBlock
- 该方法指定当前事件不再由当前规则块中或该规则块包含的所有规则块中的任何其他规则处理。不过,当前规则块范围之外的其他规则处理将会处理该事件。
- forward
- 该方法指定即使当前规则未完成其处理,仍将事件发送至其他规则和规则块。随后,其他每个规则和规则块都将对事件进行完整的处理,之后再将事件返回至调用 forward 方法的规则。
- forwardOnCompletion
- 该方法指定在当前规则完成其处理后,将事件发送至其他规则和规则块。