jbpm4中为TASK指定角色用户
来源:互联网 发布:php jpg jpeg 编辑:程序博客网 时间:2024/06/05 08:22
在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中,可以这样写:
可以看到,在实际应用中,应该把比如“确认到帐”这样的角色的用户加载进来,放到list_user中去。
最后要注意的是,如果遇到FORK-JOIN的话,必须用JBPM 4.4,用4.3的话,会遇到BUG的,开始还以为我的这个方法不行,其实是JBPM4.3的一个BUG,换成4.4都OK了
如有填写申请--审批两个流程,分别由申请岗和审批岗两个岗位的人去执行, 可以设计流程文件如下:
<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中,可以这样写:
- 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);
- }
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了
- jbpm4中为TASK指定角色用户
- JBPM4中 state 和 task 的不同
- ASP.NET如何实现在用户注册时为用户指定角色
- jbpm4.4所有指定流程实例id 下所有已经执行的task
- 创建角色+为角色授予权限+为角色撤销权限+为角色撤销权限+将角色授予给用户
- 利用JBPM4.4的AssignmentHandler实现用户角色整合另一种构思
- 利用JBPM4.4的AssignmentHandler实现用户角色整合另一种构思
- JBPM4.4中嵌入自己的用户体系
- JBPM4.4中嵌入自己的用户体系
- SQL通过角色创建只能访问指定视图的用户
- 创建角色,用户,权限只能访问指定数据库
- java 中用户角色权限判定方法
- MongoDB中用户的角色说明
- jBPM4.4之(Task)任务分配
- 在SQL数据库中为指定数据库新建一个管理用户
- sqlServer2008为指定数据库新建用户
- 为vsftpd 本地用户指定目录
- 为所有指定用户重置密码
- Select Count (*)和Select Count(1)以及Select Count(column)的区别
- Android中线程与进程的理解
- 常见的OJ评判结果以及它们表示的意思
- 64位有符号与无符号类型的整数
- Layered Service Provider (LSP)
- jbpm4中为TASK指定角色用户
- .net 关键字 params的使用
- windows 下写yacc程序的经典计算器例子
- Android Ashmem相关介绍
- 几道面试题
- LIB和DLL的区别与使用
- 41. A little knowledge is a dangerous thing. 一知半解,自欺欺人
- Struts2.2.3+Hibernate3.2.0+Spring2.5.6整合出错!希望路过的大侠帮助。
- 我奋斗了十八年才坐在这里和你一起喝咖啡