当process流进task-node 't'的时候,进入wait-state,当两个task都被end的时候,process继续。
<process-definition name='simpleTask'>
<start-state>
<transition to='t' />
</start-state>
<task-node name='t'>
<task name='task0'>
<assignment class='test.task.TaskA' />
</task>
<task name='task1'>
<assignment class='test.task.TaskB' />
</task>
<transition to='end' />
</task-node>
<end-state name='end' />
</process-definition>
private static void endTasks(long piId) {
JbpmContext jbpmContext = JBPMUtil.getJbpmContext();
try {
ProcessInstance processInstance = jbpmContext
.getProcessInstance(piId);
Iterator<TaskInstance> iterator = processInstance
.getTaskMgmtInstance().getTaskInstances().iterator();
for (; iterator.hasNext();) {
TaskInstance taskInstance = iterator.next();
log.info("task instance name = " + taskInstance.getName());
log.info("task instance actor = " + taskInstance.getActorId());
taskInstance.end();
}
jbpmContext.save(processInstance);
} finally {
jbpmContext.close();
}
}
<process-definition name='simpleTask'>
<start-state>
<transition to='t' />
</start-state>
<task-node name='t'>
<task name='task0'>
<assignment class='test.task.TaskA' />
</task>
<task name='task1'>
<assignment class='test.task.TaskB' />
</task>
<transition to='end' />
</task-node>
<end-state name='end' />
</process-definition>
private static void endTasks(long piId) {
JbpmContext jbpmContext = JBPMUtil.getJbpmContext();
try {
ProcessInstance processInstance = jbpmContext
.getProcessInstance(piId);
Iterator<TaskInstance> iterator = processInstance
.getTaskMgmtInstance().getTaskInstances().iterator();
for (; iterator.hasNext();) {
TaskInstance taskInstance = iterator.next();
log.info("task instance name = " + taskInstance.getName());
log.info("task instance actor = " + taskInstance.getActorId());
taskInstance.end();
}
jbpmContext.save(processInstance);
} finally {
jbpmContext.close();
}
}