下面是jpdl流程内容:
<start g="368,-8,48,48" name="开始">
  <transition g="6,-19" name="开始流程" to="企业用户填写申请材料"/>
  </start>
  <end g="371,1574,48,48" name="结束"/>
  <task form="xzxk/xzxkSQList.jsp" g="296,85,190,52" name="企业用户填写申请材料" candidate-groups="orgUsers">
  <transition to="许可机关审查"/>
  </task>
  <task candidate-groups="dev" g="323,161,137,48" name="许可机关审查">
  <transition g="4,-17" name="审查结果" to="受理结果"/>
  </task>刚刚学习JPBM,请大家指教。
请问orgUsers和dev两个用户组要怎么赋值?是在启动的时候给所有的用户组赋值吗?
我试过下面这种方式:   
  /**
  * 启动流程
  * @return
  */
public String statrLC(){
    IdentityService identityService=processEngine.getIdentityService();
    identityService.createGroup("orgUsers");
    identityService.createUser("johndoe", "johndoe", "John", "Doe");
    identityService.createMembership("johndoe", "orgUsers");
    processEngine.getExecutionService().startProcessInstanceById(id);
    return "addLC";
}
  第一次可以启动成功,但是待办任务里面没有数据, 第二次就会报错,说orgUsers用户组已经存在。
  请大家看看,最好贴上代码,谢谢。

解决方案 »

  1.   

    identityService.createGroup("orgUsers");
      identityService.createUser("johndoe", "johndoe", "John", "Doe");
      identityService.createMembership("johndoe", "orgUsers");
    这个  如果存在 重复的会跑错。  你第一次运行,已经放到组里面了。。下次再添加就会出错。建议 : 先把所有的用户、组初始化到 里面去。然后直接用就是了。。
    没什么用吧?我觉得就是在发mail的时候才会用到
      

  2.   

    是因为第一次运行之后,用户组就添加到JBPM自带表里了,第二次运行,用户组已经存在,重复创建就报错了。
      

  3.   

    报错是用户和组已经存在;
    分组之后,查询任务不能用之前的findPersonalTasks方法了,因为用户还没有被assignee任务,
    需用查询分组任务列表方法findGroupTasks;
    然后在接受一下:takeTask;
    最后就被分配了,可以选择完成或其他
      

  4.   

    我也遇到了同样的问题。解决方法和1楼的类似,区别在于:
        我是在每次创建group和user的时候去验证一下是否存在,不存在的情况下才创建。