表示式是包含自訂邏輯的程式碼,您可以將這些自訂邏輯新增至規則。表示式還可以存取「主動式相互關聯技術」引擎的外部程式碼。在規則語言中,
表示式僅在特定環境定義或規則語言元素內才有效。
規則撰寫者可以根據環境定義及要取得的結果,編碼不同用途的表示式。表示式經常用來起始設定變數、
定義事件選擇準則,及指定規則回應及生命週期動作。
包含表示式的語言元素
每個包含表示式的語言元素都具有 expressionLanguage 屬性,
此屬性可識別用來撰寫表示式的程式設計語言。Java™ 程式設計語言是唯一受支援的表示式語言。
表示式可以內含在下列規則語言元素中。
- 規則集、規則區塊或規則變數的 <varInitializer>
- <eventSelector> 上的 <filteringPredicate>
- <groupingKey> 上的 <computedValue>
- 計算規則上的 <computeFunction>
- 臨界值規則上的 <booleanThreshold>
- 臨界值規則上的 <computedThreshold>
- 規則的規則回應動作:
- <onDetection> 中的 <action>。此動作僅對重複、過濾、序列及臨界值規則有效。
- <onNextEvent> 中的 <action>。此動作僅對重複規則有效。
- <onTimeOut> 中的 <action>。此動作僅對序列及臨界值規則有效。
- <onTimeWindowComplete> 中的 <action>。此動作僅對收集、計算、重複及計時器規則有效。
- 規則的生命週期動作:
- <onLoad> 中的 <action>
- <onActivation> 中的 <action>
- <onDeactivation> 中的 <action>
- <onUnload> 中的 <action>
主動式相互關聯技術為編碼表示式而提供的功能
為了協助規則撰寫者編碼表示式,「主動式相互關聯技術」會提供執行下列動作的功能:
- 匯入用於表示式的外部模組 (例如,Java 類別) 及物件。
- 起始設定及存取規則集、規則區塊或規則變數。
- 透過 act_event 變數存取規則正在處理的目前事件。
- 透過 act_eventCount 變數存取規則已接受的事件數目。
- 透過 act_eventList 變數存取規則已接受的事件清單。這包括存取事件的各種屬性,以及依別名存取序列規則中每個事件的功能。
- 透過 act_lib 變數存取包括取得及設定變數,以及透過規則集控制事件流程之功能的方法。
- 透過 act_location 變數存取表示式之規則階層內的位置。
- 透過 act_nodeName 變數存取節點的完整名稱。
- 透過 act_threshold 變數存取臨界值規則的已定義臨界值。