JBPM4学习总结之10——复杂的子流程(sub-process)
?咱们先给出父流程的Xml描述如下:
?子流程如下:
?流程xml如下:?测试代码如下:
/** * 开始父流程 传入参数 */public void test03StartFather() {// 开始process流程ProcessInstance processInstance = executionService.startProcessInstanceByKey("ProcessFather2");// 流程实例的IDString pid = processInstance.getId();System.out.println(pid);// ProcessFather2.20001}/** * 结束子流程的任务,向父流程传输参数,转移流程 */public void test04completeTask() {List<Task> list = taskService.findPersonalTasks("liuyan");for (Task task : list) {String taskId = task.getId();// 传给父流程的参数Map<String, Object> res = new HashMap<String, Object>();res.put("result", "ok");taskService.setVariables(taskId, res);taskService.completeTask(taskId);}}/** * 查找父流程的变量的最终归宿 */public void test05findFatherRes() {// 20001ProcessInstance processInstance = executionService.findProcessInstanceById("ProcessFather2.20001");Set<String> activeActivityNames = processInstance.findActiveActivityNames();System.out.println(activeActivityNames);}?测试代码中在子流程中set一个子流程变量result,在父流程中,根据这个result决定了走向。