表示式

表示式是包含自訂邏輯的程式碼,您可以將這些自訂邏輯新增至規則。表示式還可以存取「主動式相互關聯技術」引擎的外部程式碼。在規則語言中, 表示式僅在特定環境定義或規則語言元素內才有效。

規則撰寫者可以根據環境定義及要取得的結果,編碼不同用途的表示式。表示式經常用來起始設定變數、 定義事件選擇準則,及指定規則回應及生命週期動作。

包含表示式的語言元素

每個包含表示式的語言元素都具有 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 變數存取臨界值規則的已定義臨界值。