变量

在规则语言中,某些变量用于存储涉及不同事件或规则的事件相关信息。 随后可通过规则内的表达式来访问这些与事件相关的信息。某些类型的变量由规则编写者定义,而其他类型的变量则由活动关联技术提供。某些类型可在表达式中直接访问,而其他类型则只能通过由活动关联技术提供的方法来访问。

在 <variable> 元素中定义并通过方法访问的变量

您可在规则、规则块或规则集的 <variable> 元素中定义变量。随后可使用以下某种方法在表达式中访问该变量:
  • getVariable() 方法或 getjavatypeVariable() 方法之一
  • setVariable() 方法或 setjavatypeVariable() 方法之一
例如,如果在规则的 <variable> 元素中定义变量 rule_writer_variable,则可使用以下代码访问该变量:
int sample_variable = act_lib.getIntVariable("rule_writer_variable");

由活动关联技术提供并在表达式中直接访问的变量

以下变量由活动关联技术提供。 可在表达式中直接插入这些变量。
  • act_event
  • act_eventList
  • act_lib
例如,可使用以下代码来访问 act_event 变量以获取事件的主机名属性:
act_event.getAttribute("hostname");

由活动关联技术提供并通过方法访问的变量

以下变量由活动关联技术提供。 可通过使用 getVariable() 方法或 getjavatypeVariable() 方法之一在表达式中访问这些变量。
  • act_eventCount
  • act_location
  • act_nodeName
  • act_threshold
例如,可使用以下代码来访问 act_eventCount 变量:
int eventcount_integer = act_lib.getIntVariable(IACTLibrary.EVENTCOUNT);
表 1 显示 IACTLibrary 接口为这些变量提供的常量。在代码中,为确保在编译期间而不是在运行期间发现任何拼写错误或字符错误,请始终使用表示这些变量的常量,而不是使用这些变量本身。例如,使用 act_lib.getIntVariable(IACTLibrary.EVENTCOUNT); 而不是 act_lib.getIntVariable("act_eventCount");
表 1. 具有关联常量的变量
变量 关联常量
act_eventCount EVENTCOUNT
act_location LOCATION
act_nodeName NODENAME
act_threshold THRESHOLD
相关参考
variable 元素