该死的乱码,我只能用 拼音来设计 每个任务节点的名称。
如下图的红色箭头所示,在用户提交请假申请后,有两个走向:a走向 与 b 走向。
串行网关要判断走哪条路径,而a路径与b路径不同点在于,其判断条件不一样。
如果流程变量days小于2,也就是请假天数小于2天,走a路径,否则走b路径。
a路径与b路径的相关设置如下,a路径的Condition是${days<2},b路径的Condition是${days>1}
所以,在执行到串行网关之前,需要提供流程变量days的值。
一般来说,我们会在到达串行网关的前一步设置流程变量来控制流程的走向。
本例子中,就是在完成“submit”任务节点的时候提供days流程变量,以控制流程接下来的走向。
明码如下,我们设置了流程变量days的值是3,那么下一个任务将会是 "buMenJingLiShenPi"(部门经理审批)
//完成任务
@Test
public void completeTask(){
BeanFactory bf = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
TaskService taskService = (TaskService)bf.getBean("taskService");
Map<String,Object> map = Maps.newHashMap();
map.put("days",3);
//用户提交请假申请的任务id号
String taskId = "1001";
//完成任务的时候,同时设置流程变量
taskService.complete(taskId,map);
}