activationInterval 元素

<activationInterval> 元素包含一些元素,它们用于定义:规则何时处于活动,何时处于不活动状态。

详细信息

可在离 散时间点上激活或停用规则,或者由特定事件对其进行激活或停用。

如果将规则指定为在离散时间点上以及由特定事件进行激活或停用,则该规则将在该时间点或在接收到事件时(取决于哪个发生在先)被激活或停用。然而在该情况下,在该规则的生命周期内可能由多个事件对其进行激 活或停用。例如,规则可能由某个事件激活,然后被停用,接着在某个定义的时间点上被激 活,然后再次被停用,随后再由另一个事件激活。

在商业环境中,可能要在接收到表明股票交易开市的事件时便激活规则。在 IT 环境中,可能要在 2005/10/29 06:00 启动维护窗口,并在以下某个时间(取决于哪个发生在先)结束:
  • 2005/10/30 11:30
  • 当接收到表明维护工作已完成的事件时

属性

<activationInterval> 无属性。

包含于

包含

<activationInterval> 包含以下元素。

必须将这些元素按所显示的顺序进行编码。如果某个元素为可选元素,则可以不对其进行编码,但所有已编码的元素都必须按照正确的顺序。

表 1. <activationInterval> 元素中包含的元素
元素 必需或可选?
<activationTime> 可选。允许出现 0 或 1 次。
<activateOnEvent> 可选。允许出现 0 或 1 次。
<deactivateOnEvent> 可选。允许出现 0 或 1 次。
<activationByGroupingKey> 可选。允许出现 0 或 1 次。

包含的元素之间的关系

包含于 <activationTime> 元素 中的 <start> 和 <stop> 元素是用于激活和停用规则的静态方法。通过这些元素,将在 某个离散时间点上激活或停用某个规则。与此相反,<activateOnEvent> 和 <deactivateOnEvent> 元素是用于激活和停用规则的动态方法。通过这些元素,将在发生某 个事件的情况下激活或停用某个规则。例如,如果某个规则尚未处于活动状态,则符合为 <activateOnEvent> 元素定义的条件的任何事件都将激活该规则。如果某个规则尚未处 于不活动状态,则符合为 <deactivateOnEvent> 元素定义的条件的任何事件都将停用 该规则。因此,某些事件可更改关于何时激活或停用规则的静态定义。

表 2 描述了如何基于某些组合(可在其中编写以下元素)来激活或停用规则,以及何时激活或停用它:
  • <start>
  • <stop>
  • <activateOnEvent>
  • <deactivateOnEvent>
表 2 中,X 代表 激活该规则的事件的名称,Y 代表停用该规则的事件的名称。

如果没有编写 <start> 元素,则缺省开始时间与 <whenLoaded> 元素定义的时间相同。

如果没有编写 <stop> 元素,则缺省停止时间与 <never> 元素定义的时间相同。

表 2. 规则活动(基于编写 <activationInterval> 中所含元素的不同组合)
<activationTime> <activateOnEvent> <deactivateOnEvent> 规则活动
<start> <stop>
<whenLoaded> <never>     规则在装入后处于活动状态,并在活动关联技术引擎运行时保持活动状态。
<whenLoaded> <never>   Y 规则在装入后处于活动状态。事件 Y 将停用规则。
<whenLoaded> <never> X Y 规则在装入后处于活动状态。事件 Y 将停用规则, 而事件 X 将重新激活规则。该停用和重新激活可多次进行。
<whenLoaded> <after>     规则在装入后处于活动状态,并在指定的时间间隔之后停用。
<whenLoaded> <dateTime>     规则在装入后处于活动状态,并在指定的日期和时间停用。
<inactiveWhenLoaded> <never> X   规则在装入后处于不活动状态。事件 X 将激活该规则, 且该规则在活动关联技术引擎运行时保持活动状态。
<inactiveWhenLoaded> <never> X Y 规则在装入后处于不活动状态。事件 X 将激活该规则, 而事件 Y 将停用该规则。该激活和停用可多次进行。
<dateTime> <dateTime>     规则将在指定的日期和时间被激活,并在指定的日期和时间被停用。
<dateTime> <dateTime> X Y 规则将在指定的日期和时间被激活,并在指定的日期和时间被停用。事件 X 将激活该规则, 而事件 Y 将停用该规则。事件 XY 可多次激 活和停用规则。
<dateTime> <never>     规则将在指定的日期和时间被激活,并在活动关联技术引擎运行 时保持活动状态。
<dateTime> <never>   Y 规则将在指定的日期和时间被激活。事件 Y 将停用规则。
<dateTime> <never> X Y 规则将在指定的日期和时间被激活。事件 Y 将停用规则, 而事件 X 将重新激活规则。该停用和重新激活可多次进行。
<dateTime> <after>     规则将在指定的日期和时间被激活,并在指定的时间间隔之后被停用。
<dateTime> <after> X Y 规则将在指定的日期和时间被激活,并在指定的时间间隔之后被停用。事件 X 将激活该规则, 而事件 Y 将停用该规则。该激活和停用可多次进行。