0
点赞
收藏
分享

微信扫一扫

jbpm4中为TASK指定角色用户


在JBPM4中,为TASK指定某个角色的用户,是十分常见的需求,本文针对这个大概讲解下思路。
   如有填写申请--审批两个流程,分别由申请岗和审批岗两个岗位的人去执行, 可以设计流程文件如下:

<task  g="513,209,92,52" name="确认到帐"> 

<assignment-handler class="AssignTask"/>

<transition g="-71,-17" name="to 审核" to="审核"/>

</task>



<task g="533,439,92,52" name="审核">

<assignment-handler class="AssignTask"/>

<transition g="-83,-17" name="非其他选项" to="exclusive1"/>

</task>




可以看到,这里每个TASK中,都使用了assignment-handler,这里没个task的name,设定为跟角色的名称一样,则在每个AssignTask中,可以这样写:

Java代码 ​​

jbpm4中为TASK指定角色用户_jbpm

1. public class AssignTask  extends BaseBiz implements
2. ProcessEngine processEngine=Configuration.getProcessEngine();
3. TaskService taskService=processEngine.getTaskService();
4.
5. public void assign(Assignable arg0, OpenExecution execution) throws
6.
7.
8. new
9. String pid=execution.getProcessInstance().getId();
10. TaskImpl taskImpl = (TaskImpl)arg0;
11. ExecutionImpl executionImpl = (ExecutionImpl)execution;
12. String activityname=executionImpl.getActivityName();
13.
14.
15.
16.
17. //如果当前结点为确认到帐,则为其分配qr,qr1两个用户,这两个用户可以从数据库中,根据角色读取
18. if (activityname.equals("确认到帐"))
19. {
20. list_user.add("qr");
21. list_user.add("qr1");
22. }
23.
24. //最后使用addCandidateUser把用户都加进去
25. for
26. arg0.addCandidateUser(user);
27. }


public class AssignTask  extends BaseBiz implements AssignmentHandler { 
ProcessEngine processEngine=Configuration.getProcessEngine();
TaskService taskService=processEngine.getTaskService();

public void assign(Assignable arg0, OpenExecution execution) throws Exception {


List<String> list_user=new ArrayList();
String pid=execution.getProcessInstance().getId();
TaskImpl taskImpl = (TaskImpl)arg0;
ExecutionImpl executionImpl = (ExecutionImpl)execution;
String activityname=executionImpl.getActivityName();




//如果当前结点为确认到帐,则为其分配qr,qr1两个用户,这两个用户可以从数据库中,根据角色读取
if (activityname.equals("确认到帐"))
{
list_user.add("qr");
list_user.add("qr1");
}

//最后使用addCandidateUser把用户都加进去
for (String user : list_user) {
arg0.addCandidateUser(user);
}



    可以看到,在实际应用中,应该把比如“确认到帐”这样的角色的用户加载进来,放到list_user中去。


   最后要注意的是,如果遇到FORK-JOIN的话,必须用JBPM 4.4,用4.3的话,会遇到BUG的,开始还以为我的这个方法不行,其实是JBPM4.3的一个BUG,换成4.4都OK了 

举报

相关推荐

0 条评论