表达式

表达式是包含定制逻辑的代码,可将该逻辑添加至规则。 表达式还可访问活动关联技术引擎外部的代码。在规则语言中,表达式仅在特定上下文或规则语言元素 中有效。

规则编写者可根据上下文以及要得到的结果来编写用于不同用途的表达式。表达式通常 用于变量的初始化、事件选择条件的定义以及规则响应和生命周期操作的指定。

包含表达式的语言元素

每个包含表达式的语言元素都具有 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 变量,访问阈值规则的已定义阈值。