使用计时器事件对延迟、升级和超时进行建模

要指定某项活动何时发生或者何时采用流程中的另一个路径,请使用计时器类型的中间和边界事件。

关于本任务

要控制活动何时在流程流中发生或者流程流何时采用流程中的特定路径,请使用计时器事件。 以下是可使用计时器事件的一些情况:
  • 创建延迟以阻止立即触发事件或活动。
  • 创建升级以便在活动无法及时完成时进行处理。
  • 创建超时以防止流无限期等待。
注: 检验器仅显示父进程的计时器事件。 如果检查器处于嵌套流程 (例如,链接流程) 中,那么检查器不会显示计时器或消息事件。
每个计时器事件都有关联的计时器。 根据在实施属性中为计时器事件指定的配置,计算计时器的时间间隔。 通常情况下,当指定的时间间隔到期时,将会触发计时器事件,序列流将会从计时器事件进入后续节点。 但是,暂挂流程实例后,计时器事件不会触发。 但是,计时器事件中的所有计时器都将继续跟踪时间进展。 如果计时器在实例暂挂期间消逝,那么关联的计时器事件将等待流程实例恢复后再触发。
要对延迟进行建模,请使用有序列流线条进入其中并且有序列流线条从中离开的计时器中间事件。
通过序列流线连接到开始节点和活动的中间计时器事件
流程会等待计时器事件中的计时器到期,然后再进入下一个节点。 例如,如果流程包含通过电子邮件向客户发送报价的活动以及要求销售团队在两天之后联系这些客户的活动,请在这两个活动之间使用计时器中间事件对延迟进行建模。 延迟可以确保发送电子邮件和销售团队开始联系客户的时间之间需要经过两天。
提示: 如果 timer-use-activity-schedule 属性设置为 true,那么将使用根流程的工作调度,假期调度和时区设置,即使计时器包含在链接的流程中也是如此。
要对升级进行建模,请使用计时器边界事件。 计时器边界事件连接到流程中的活动。
具有计时器边界中间事件的活动。 序列流线将计时器边界事件连接到活动以创建上报路径。
当正在运行的流程实例到达具有计时器边界事件的活动时,计时器将启动。 当计时器到期时,流程将随序列流从计时器边界事件进入后续活动。 有关示例,请参阅 "招聘样本"。
要对超时进行建模,请使用事件网关中包含的计时器中间事件。 如果事件网关组中的其他中间事件未在计时器到期之前触发,将会触发计时器中间事件。 添加事件网关时,将自动向事件网关组添加计时器中间事件和消息事件。 配置计时器中间事件以指定超时时间段。
包含消息事件和计时器中间事件的事件网关
有关创建事件网关的信息,请参阅 对事件网关建模

过程

要对延迟、升级或超时进行建模,请执行以下操作:

  1. 打开流程。
  2. 从选用板拖动计时器中间事件。
    • 要创建延迟,请将计时器事件放入画布的空白区域。
    • 要创建升级,请将计时器事件放入活动。 此操作将计时器事件附加为边界事件。 要验证是否创建了边界事件,请选中活动,查看活动大纲中是否包含事件图标。

      要采用多重升级,请将多个中间事件连接到活动。 每个边界事件都会触发不同的升级路径。

    • 要创建超时,请将中间事件拖到事件网关组。
  3. 如果您正在创建上报,并且希望活动在触发计时器后保持打开状态,请在 边界事件详细信息 部分中取消选中 中断活动 复选框。
    例如,假设您针对某个用户任务创建了计时器边界事件。 与用户任务关联的人员服务具有 Coach。 如果希望用户在计时器到期之后仍然可以完成 Coach,请清除中断活动复选框。
    如果清除中断活动复选框,可以通过清除可重复复选框,选择让升级仅发生一次。
  4. 通过设置“计时器”属性,指定何时启动计时器事件的计时器:
    1. 触发时间 下拉列表中,选择下表中的其中一个选项以启动计时器:
      选项 计时器事件类型 描述
      在启动步骤之后 升级 当步骤启动时启动计时器。
      在到期日期之前 升级 在活动的到期日期之前启动计时器。 将根据流程的工作调度和活动的优先级设置来计算到期日期。 有关更多信息,请参阅 设置流程的工作调度
      在到期日期之后 升级 在活动到期日期到期时启动计时器。 将根据流程的工作调度和活动的优先级设置来计算到期日期。 有关更多信息,请参阅 设置流程的工作调度
      在流程或子流程启动后 延迟和超时 当流程和子流程启动时启动计时器。
      定制日期前 延迟、升级和超时 定制日期字段中指定的定制日期之前启动计时器。
      定制日期后 延迟、升级和超时 定制日期字段中指定的定制日期之后启动计时器。
    2. 如果在 触发日期 下拉列表中选择了 定制日期之前定制日期之后 ,请在确定定制日期所需的 定制日期 字段中指定 JavaScript 。 JavaScript 必须返回日期对象,该对象指定何时启动计时器。 应使用以下值(或该类型的变量):
      new tw.object.Date();
    3. 要修改触发器,请使用 差异之前或之后 字段。
      例如,如果要在活动到期日期之后的一天启动计时器,请在字段中输入 1 ,并从关联列表中选择 Days
      注: 选择重复运行计时器事件时,请确保将 差异之前或之后 设置为至少 1 分钟。 当计时器设置为可重复时,在活动完成之前,每次到达指定的时间间隔时就会发送升级通知。 但是,如果该时间间隔设置为 0,那么会导致 CPU 负载较高,因为将会连续发送升级通知,直到活动完成为止。
    4. 可选: 要进一步修改触发器,请使用 容错时间间隔 字段。
      例如,如果希望升级在活动到期日期之后的一天零一小时发生,请将容差级别指定为 1 小时。
  5. 如果要创建升级或超时,请创建流程在计时器到期之后使用的流。
    如果计时器在其连接到的活动结束之前到期,升级路径是流程要执行的逻辑。 同样,如果计时器在事件网关组中的其他事件触发之前到期,超时路径是流程要执行的逻辑。
  6. 连接计时器事件:
    • 对于延迟,将计时器事件连接到流程的其余部分。
    • 对于升级或超时,将计时器事件连接到升级或超时路径。
  7. 单击 保存完成编辑