无法在弹簧启动时将Assignee设置为activiti中的第二个用户任务

时间:2017-03-24 11:28:25

标签: java spring spring-mvc spring-boot activiti

我是春季靴子的新手。我创建了这个过程,即

开始--->用户任务--->用户任务---->结束。

现在我必须将动态受理人分配给两个用户任务。我已将受让人发送给第一个用户任务:

ProcessInstance process = runtimeService.startProcessInstanceByKey('process', variables);

Task task = taskService.createTaskQuery().processInstanceId(process.getId()).singleResult();
task.setAssignee("charnjeet");
taskService.saveTask(task); 

现在,当我从http://localhost:8080/activiti-explorer/ui/完成任务,然后是Listener,Service任务表达式正在运行。有人能帮我一下吗。我想将两个用户任务分配给“charnjeet”。

2 个答案:

答案 0 :(得分:1)

Acitiviti不会在完成任务之前列出下一个任务,因此您无法在完成TASK1之前分配任务受让人

我通过使用基于表达式的受让人分配

来解决这个问题

我将用户任务定义为

<userTask id="sid-42BAE58A-8FFB-4B02-AAED-E0D8EA5A7E39" name="Telephone interview" activiti:assignee="${taskAssingeeName}">
  <documentation>Conduct a telephone interview with ${applicant.name}. Phone number = ${applicant.phoneNumber}</documentation>
</userTask>

添加了 activiti:assignee="${taskAssingeeName}" !此表达式变量将动态设置受理人 其中 taskAssingeeName 是流程变量

答案 1 :(得分:0)

这些是节省时间的一些方法,可以在activiti:assignee="${assingee}"中用作XML:

1。)创建一个开始表单,选择将为这两项任务分配的${assignee}(文本字段)。

2.。)在每个任务结束时创建一个执行监听器,为下一个任务设置${assignee}

3。)正如Arjun先生所解释的那样。