最近项目要用jbpm4.4,我遇到了这样一个问题:
我创建流程并且task.setAssignee(selfUserId)把任务分配给自己,这时候JBPM4_TASK表的ASSIGNEE_字段的值为6。“经理审批”环节,如果不同意又回到“创建流程”环节,这时候我发现JBPM4_TASK表的ASSIGNEE_字段为空了,我第一个设的值没有了,roleId为6的人待办任务里都能看见了,请问各位大侠此问题如何解决。流程图如下:
下面是XML内容:<?xml version="1.0" encoding="UTF-8"?>
<process xmlns="http://jbpm.org/4.4/jpdl" name="请假流程">
<task candidate-groups="6" form="askForLeaveController.do?askForLeave" g="239,119,92,52" name="创建流程">
<transition to="经理审批"/>
</task>
<start form="askForLeaveController.do?askForLeave" g="259,10,48,48" name="开始">
<transition to="创建流程"/>
</start>
<task candidate-groups="6" form="askForLeaveController.do?approve" g="242,236,92,52" name="经理审批">
<transition to="审批结果"/>
</task>
<decision g="269,342,48,48" name="审批结果">
<transition g="-38,-12" name="同意" to="结束">
<condition expr="#{result=='1'}"/>
</transition>
<transition g="401,367;399,146:-67,91" name="不同意" to="创建流程">
<condition expr="#{result=='0'}"/>
</transition>
</decision>
<end g="270,430,48,48" name="结束"/>
</process>jbpm4.4task任务分配者jBPM

解决方案 »

  1.   

    因为手头没有jbpm所以也不知道数据库是什么样子。也就没有听懂你的问题。
    你的意思是现在你创建了一个流程。经理审批驳回以后然后就是那些为6的候选人就能看见了。然后你不见了么。
    如果是这样的话,一切都是正常情况没有什么不对的地方啊。
      

  2.   

        就是驳回后,环节的参与者又恢复了默认(candidate-groups="6"),我需要的是只有发起流程的人的待办里才能看到,而不是roleId=6的所有人都能看到。
        走第一遍流程的时候我明明把参与者设置成发起人的userId了呀。
    EnvironmentImpl env = ((EnvironmentFactory)processEngine).openEnvironment();
    try {
    Task t = processEngine.getTaskService().createTaskQuery().assignee(userId).uniqueResult();
    t.setAssignee(userId2);
    } catch (Exception e) {
    } finally{
    env.close();
    }