时限是指任务超过指定时间或在一个固定周期时,触发一个指定的动作,并记录到监控日志中,供开发者进一步利用。
只有处于活跃的人工任务受该应用的监控。活跃的人工任务指在WFC_TASK表,类型为1(常规)的人工待办任务。例如加签、传阅、暂停的任务,都不会加入到监控范围内。
时限策略的配置不在本文介绍,本应用是对这些配置的监控实现。有关监控频率和精准度,请参考这里。
什么都不做,只是将该任务记录至监控日志,供开发者使用
该任务在审批记录中标记为超时自动执行
,并调用流程引擎自动向下执行。
等同于执行如下API操作
ProcessExecuteQuery query = SDK.getTaskAPI().completeTask(task.getId(), task.getTarget());
如果下个人工节点在设计时刻没有提供参与者,该任务将被标记为无人执行
。
该任务在审批记录中标记为超时自动回退
,并调用流程引擎的回退操作。
等同于执行如下API操作
// 前一个节点的人工任务
HistoryTaskInstance parentTask = TaskAPIManager.getInstance().findUserTaskByPrePath(task);
TaskInstance newTask = SDK.getTaskAPI().rollbackTask(task.getId(), parentTask.getActivityDefId(), parentTask.getTarget(), true, "超时自动回退");
给该任务的办理者发超时提醒,提醒方式有五种:邮件、短信、企业微信、阿里钉钉、飞书。使用该策略的准备条件:
邮件通知
、短信通知
、企业微信集成
、钉钉集成
、飞书集成
执行一个开发者的Class类,该类要求继承了com.actionsoft.bpms.bpmn.engine.listener.ValueListener
父类,超时的任务实例将以ProcessExecutionContext
参数传递到execute
方法。
例如:
public class MyTimeoutEvent extends ValueListener implements ValueListenerInterface {
public String execute(ProcessExecutionContext ctx) throws Exception {
...
return "要记录什么信息";// 少于128字符
}
}
该类编译的jar文件必须存放在该流程模型所在应用的
lib
下。
该任务在审批记录中标记为超时跳转
,跳转到指定的节点,指定节点任务不是顺序多实例或并行多实例时,参与者不要指定多个。
该任务在审批记录中标记为终止
,并调用流程引擎的终止操作。
通过计时方案,到时间定时去执行定义的SQL语句。