85.3. 事件的元数据标签

决策引擎将以下元数据标签用于插入到决策引擎工作内存中的事件。您可以根据需要更改 Java 类或 DRL 规则文件中的默认元数据标签值。

注意

本节中的示例参考 VoiceCall 类假设示例应用程序域模型包括以下类详情:

示例电信域模型中的 VoiceCall 事实类

public class VoiceCall {
  private String  originNumber;
  private String  destinationNumber;
  private Date    callDateTime;
  private long    callDuration;  // in milliseconds

  // Constructors, getters, and setters
}

@role

此标签决定,给定事实类型是作为常规事实处理,还是在复杂事件处理期间在决策引擎中的事件进行处理。

default 参数: fact

支持的参数: 事实事件

@role( fact | event )

示例: Declare VoiceCall 作为事件类型

declare VoiceCall
  @role( event )
end

@timestamp

此标签会自动分配给决策引擎中的每个事件。默认情况下,会话时钟提供的时间,并在事件插入决策引擎的工作内存中时分配给事件。您可以指定自定义时间戳属性,而不是会话时钟添加的默认时间戳。

default 参数:决策引擎会话时钟添加的时间

支持的参数: Session clock time 或 custom time stamp 属性

@timestamp( <attributeName> )

示例: Declare VoiceCall timestamp 属性

declare VoiceCall
  @role( event )
  @timestamp( callDateTime )
end

@duration

此标签决定决策引擎中事件的持续时间。事件可以是基于间隔的事件或时间点事件。基于间隔的事件的时间,并在决策引擎的工作内存中保留一段时间,直到它们的持续时间可用为止。点内事件没有持续时间,基本上是基于 interval 的事件,且持续为零。默认情况下,决策引擎中的每个事件都会有零持续时间。您可以指定自定义持续时间属性,而不是默认值。

默认参数:Null(零)

支持的参数: 自定义持续时间属性

@duration( <attributeName> )

示例: Declare VoiceCall duration 属性

declare VoiceCall
  @role( event )
  @timestamp( callDateTime )
  @duration( callDuration )
end

@expires

此标签决定事件在决策引擎工作内存过期前的时间持续时间。默认情况下,事件过期,事件不再匹配并激活任何当前规则。您可以定义事件应过期的时间。此标签定义还覆盖从 KIE 基础中的时序限制和滑动窗口计算的隐式到期偏移。只有在决策引擎以流模式运行时,该标签才可用。

默认参数:Null(事件后的事件过期,不再匹配并激活规则)

支持的参数:自定义 timeOffset 属性,格式为 [#d][#h][#m][#s][[ms]]

@expires( <timeOffset> )

示例:对 VoiceCall 事件进行禁止过期偏移

declare VoiceCall
  @role( event )
  @timestamp( callDateTime )
  @duration( callDuration )
  @expires( 1h35m )
end