Activiti之Skip Expression使用

我们在使用Activiti时经常会遇到提交人与审批人是同一个人的问题,这个时候我们就会用到Skip Expression

如以下流程图:A是上级负责人最高审核人 A提交出车单申请,按照业务逻辑A不需要再对自己的出车单审核,流程直接到行政

Activiti之Skip Expression使用

提交出车单申请:参数图

Activiti之Skip Expression使用 

上级负责人审核:参数图

Activiti之Skip Expression使用 

我们设置Skip expression ${dispatchManPostNo == directorPostNo}来实现 当A发出申请,需要A审核时跳过审核环节。

在创建流程实例是我们需要设置 _ACTIVITI_SKIP_EXPRESSION_ENABLED  TRUE 允许有节点跳过

// 先给填写人一个填写未打卡单的任务
Map<String, Object> variables = new HashMap<>();

// 当前登录人岗位号
String currentPostNo = SecurityUtils.getCurrentUserPost();
// 允许后面有节点跳过
variables.put("_ACTIVITI_SKIP_EXPRESSION_ENABLED", true);
variables.put("dispatchManPostNo", currentPostNo);
ProcessInstance processInstance = commProcessService.startProcessInstanceByKey("dispatch", variables);