jbpm4.3 关于fork和join的疑问
windywindy
2010-09-15
xyz20003 写道 并发流程,是应该用fork
恩,但是我不知道,fork下面的节点怎样接受任务?是不是在市场部经理提交任务时为市场策划组和产品经理组分配任务啊? |
|
xyz20003
2010-09-15
分配给单个人assignee="经理"
分配给多个人participant-users="1,2" 分配给群租participant-groups="1,2" |
|
windywindy
2010-09-16
xyz20003 写道 分配给单个人assignee="经理"
分配给多个人participant-users="1,2" 分配给群租participant-groups="1,2" 你说fork会根据后续transition的个数,自动创建分支。 如果这样市场部经理提交任务之后就会自动产生市场策划组、产品经理组2个任务,我在这里只要设置候选人就行了,对不?但是我现在的情况是市场部经理完成任务了,我也为市场策划组、产品经理组设置了候选人了,任务就是不能到市场策划组、产品经理组,jbpm4_task表也没有记录! public void submit(String taskId, String outCome, String users, HttpServletRequest request) throws Exception {// 提交任务 Map<String, Object> var = new HashMap<String, Object>(); /* 压入来自于页面表单的数据 */ Map<String, Object> vars = VarUtil.getVarMap(request); var.putAll(vars); taskService.addTaskComment(taskId, var.get("assessment") + ""); TaskImpl task = (TaskImpl) taskService.getTask(taskId); ProcessInstance pi = executionService.findProcessInstanceById(task.getExecutionId()); ProcessDefinitionImpl pd = (ProcessDefinitionImpl) repositoryService.createProcessDefinitionQuery() .processDefinitionId(pi.getProcessDefinitionId()) .uniqueResult(); if(outCome.equals("分配任务")){ //处理fork下面的任务,并为其分配候选人 var.put("市场策划组_actors", "2"); var.put("产品经理组_actors", "6927"); taskService.completeTask(task.getId(), outCome, var); }else{ var.put(outCome + "_actors", users.replaceAll(",", "")); taskService.completeTask(task.getId(), outCome, var); } submitUpdate(pd, getHistoryProcessInstance(pi.getId()), task, request, vars); } 我也试过为市场策划组、产品经理组分别创建了任务 //task是市场部经理的任务 TaskImpl newTask = (TaskImpl) taskService.newTask(); newTask.setActivityName("市场策划组"); newTask.setName("市场策划组"); newTask.setAssignee("2"); newTask.setFormResourceName(task.getFormResourceName()); newTask.setTaskDefinition(task.getTaskDefinition()); newTask.setExecution(task.getExecution()); newTask.setExecutionDbid(task.getExecutionDbid()); newTask.setProcessInstance(task.getProcessInstance()); taskService.saveTask(newTask); 但显然这种方式走的流程不是按我定义的流程图的走向! 我实在搞不明白jbpm4.3里的fork是怎样走的 |