实际使用中工作流往往不是一条直线进行下去,例如请假的话可以部门经理直接同意,或者报总经理同意,流程图示意如下。
可以看到,面对一个事情,重要的才要总经理审批否则仅部门经理审批即可。因此在完成任务的时候需要附加一条信息进行判断,告知程序该走哪条路线。
省略流程部署,以及启动。
完成任务代码如下
public void completeMyPersonalTask(){ //任务ID String taskId = "2804"; //完成任务的同时,设置流程变量,使用流程变量用来指定完成任务后,下一个连线,对应sequenceFlow.bpmn文件中${message=='不重要'} Map<String, Object> variables = new HashMap<String, Object>(); variables.put("message", "不重要"); processEngine.getTaskService().complete(taskId, variables);//与正在执行的任务管理相关的Service System.out.println("完成任务:任务ID:"+taskId); }