最近工作用到jbpm,出现一个错误,坑了我好久,别人还没指挥明白,IT人就执着,直到完全明白为止.

说说我卡在那。

我们用的是task任务有两种形式:

1.<task assignee="#{owner}" g="148,71,96,34" name="填写表单">
      <transition to="额度"/>
   </task>

2. <task form="/process/committee.do" g="38,275,103,46" name="xx">
      <transition g="90,554;89,666:11,20" name="通过" to="结束"/>
      <transition g="12,207;12,92:7,-80" name="驳回" to="填写表单"/>
   </task>

首先介绍下两种的区别,第一种 是只有一个流向,所以你不指定,也就一种走法但不要写name属性,否则也得指定流向,直接to就不用了如:processEngine.getTaskService().completeTask(taskId,  variables);直接它就ok了。而第二种 则有两种走向 所有用的时候一定要

processEngine.getTaskService().completeTask(taskId, "通过", variables);一定要指定outcome,也就是这个业务我是处理通过还是驳回,

我们要清楚的一点是completeTask即完成 task-task 的任务,也就是一个<task> 到另一个<task>的任务业务处理,不管其中有多少个业务判断,只是对task的每个流向都从业务角度都需写一遍,即processEngine.getTaskService().completeTask(taskId, "通过", variables);这个业务我是处理通过,而下个业务方法我是processEngine.getTaskService().completeTask(taskId, "驳回", variables);和其中有多个判断没关,只跟流向有关,记得指定哦。即处理这种:如图

 

posted on 2013-05-26 19:58  药死的梦  阅读(266)  评论(0)    收藏  举报