規則集中的事件流程會依照編碼規則區塊及規則的次序來進行。當「主動式相互關聯技術」引擎收到事件時,引擎會判定事件類型,並識別使用此事件類型的規則,以啟用規則、處理事件或停用規則。
規則使用事件的方式
使用事件的每個規則都會先判定事件是否符合啟用規則、處理事件或停用規則的所有指定準則。如果符合,規則會執行下列動作:
- 若為啟用規則
- 如果已編碼規則之 <onActivation> 元素中的動作,則會執行這些動作。
- 若為處理事件
- 規則會處理事件。當符合該規則型樣時,如果已編碼規則回應動作,則會執行這些動作。在某些情況下,規則回應動作可以執行下列作業:
- 動作可以讓事件略過在規則區塊或規則集剩餘部分中的處理。
- 動作可以將新的或現有的事件傳送至其他規則或規則區塊以進行處理。
- 若為停用規則
- 如果已編碼規則之 <onDeactivation> 元素中的動作,則會執行這些動作。
可影響事件流程的方法
「主動式相互關聯技術」會提供下列方法,
您可以呼叫它們來影響規則集中的事件流程。可透過 act_lib 變數來使用這些方法。
- exitRuleSet
- 此方法指定目前的事件不會由規則集中的任何其他規則來處理。
- exitRuleBlock
- 此方法指定目前的事件不會由目前規則區塊或此規則區塊所含的任何規則區塊中的任何其他規則來處理。然而,會由目前規則區塊範圍之外的其他規則來處理。
- forward
- 此方法指定即使目前的規則尚未完成事件處理,也會將事件傳送至其他規則及規則區塊。然後,每個其他規則及規則區塊都會在處理完事件後,將事件傳回至呼叫 forward 方法的規則。
- forwardOnCompletion
- 此方法指定在目前的規則完成事件處理之後,將事件傳送至其他規則及規則區塊。