要实现JBPM的任务回退很简单,只要对JBPM中的2个表进行修改,这2个表分别是:
jbpm_token和jbpm_taskinstance,对应类是org.jbpm.graph.exe.Token和
org.jbpm.taskmgmt.exe.TaskInstance.
修改方法:
将已经完成的任务实例jbpm_taskinstance表中的2个字段修改:issuspended_=0和
isopen_=0,将start_=null和end_=null这2个字段改不改都可以 我自己是另外用一个业务表来记录任务处理时间的
这样就能将已经完成的实例重开
还要修改的表就是jbpm_token中的node_字段,这里要将你所回退到的节点的ID写进去,进行数据库的更新。
这2个表对应的2个方法分别是getTokenForUpdate和getTaskInstanceForUpdate。
  jbpm没将任务回退直接写成Java方法,估计是怕不同人有不同的需求,感觉如果将jbpm的表结构如果能全了解,那样要根据自己需求自己扩展就很简单了。