flowable任务节点自动跳过
1.方法一:设置定时器
2.方法二:SkipExpression
通过(ExecutionListener)执行监听器进行设置
package com.workflow.interceptor;
import com.pactera.workflow.utils.ObjectUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.delegate.*;
import org.springframework.stereotype.Component;
/**
* 是否自动跳过该任务节点
* @date 2019-12-18 16:01
*/
@Component
public class SkipTaskListener implements ExecutionListener {
@Override
public void notify(DelegateExecution execution) {
Object skip=execution.getVariable("skip");
if (ObjectUtils.isNotEmpty(skip) && BooleanUtils.toBoolean(skip.toString())){
//通过设置流程变量_FLOWABLE_SKIP_EXPRESSION_ENABLED为true启动skipExpression属性,
//必须是true而非字符串"true",若不启动是不生效的
execution.setVariable("_FLOWABLE_SKIP_EXPRESSION_ENABLED",true);
UserTask userTask=(UserTask)execution.getCurrentFlowElement();
userTask.setSkipExpression("${1==1}");
}
}
}
PS:
activiti通过设置...put("_ACTIVITI_SKIP_EXPRESSION_ENABLED",true) 进行设置。