在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中,可以这样写:
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了
转载:http://jackyrong.iteye.com/blog/1164758
总结:
1.在task节点配置assignment-handler, 指向你实现了AssignmentHandler接口的实现类。
2.在实现类里的assign方法里写分配的逻辑。前提是你的系统里有按角色或分组划分的权限系统,把部门领导都放到某个角色或者分组里去。
3. 在task节点加上candidate-group="部门领导所在的分组"
这种基于候选组的方式,扩展最灵活,就算人员有变化也不怕。
分享到:
相关推荐
jbpm jbpm4.3.jar DDDDDDDD
5.17 表JBPM4_TASK 16 5.18 表JBPM4_VARIABLE 17 6、操作: 19 6.1 发布一个流程DEPLOY: 19 6.2 上传一个ZIP包:(包含PNG和JPDL.XML)后 19 6.3 开始一个流程STARTPROCESSINSTANCEBYKEY后 19 6.4 填写申请信息 19 ...
jbpm4源码jbpm4源码jbpm4源码
介绍jbpm4里的processDefinition、processInstance和Task的使用方法。 代码里的注释的编码方式为utf-8
eclipse 下安装jbpm-4.4 的安装步骤
弃用-jbpm-ee jBPM的企业服务6。 还要注意,您需要更新arquillian.xml以指向JBoss EAP 6.1服务器,并且需要将服务器设置为包括MySQL驱动程序。 您还需要安装MySQL才能运行测试。 创建模式:jbpm-main。 添加用户:...
jbpm应用开发指面(胡奇) jbpm4.3表结构和表字段说明 [jBPM开发指南].高杰.文字版 jBPM5_用户手册-中文版
1.4 JBPM_ACTION:流程动作表 4 1.5 JBPM_EVENT:流程事件表 5 1.6 JBPM_DELEGATION:流程代理类表(用于实例化jbpm中的action类) 6 1.7 JBPM_TASK:流程任务表 6 1.8 JBPM_TASKCONTROLLER:流程任务控制器 7 1.9 ...
jbpm4 helloworld,详细参考 《partner4java 讲述jBPM4》之第一步:jBPM4概念 & helloworld http://blog.csdn.net/partner4java
jbpm3,jbpm4用户文档,开发指南,jbpm4解读,jbpm学习笔记,jbpm最佳实践全套套
资源名称:JBPM4.4视频教程(22集附源码)资源目录:【】(01)jbpm4.4简介【】(02)JBPM4.4开发环境搭建【】(03)jbpm4.4环境搭建续【】(04)jbpm4.4配置文件和开发前准备【】(05)jbpm4.4部署流程发起流程实例【】(06)...
jbpm user guide 用户指南 chm版本
纵观jBPM:从jBPM3到jBPM5以及Activiti5.doc
jboss jbpm4最新开发包 采用了pvm框架
java源代码分包详解JBPM4 java源代码分包详解JBPM4
jbpm4。4中表之间的关系,jbpm4 表关系
juel-api.jar ,juel-engine.jar, juel-impl.jar, jbpm.jar ,mail.jar
JBPM_NODE JBPM_NODE FK_PROCST_SBPRCDEF SUBPROCESSDEFINITION_ 子流程的指定在父流程离开之前子流程将完整的执行 JBPM_NODE JBPM_NODE FK_NODE_PROCDEF PROCESSDEFINITION_ 此NODE自身存在的流程ID JBPM_NODE ...
解压这个文件,假设解压目录为 "${jbpm.starters.kit}",它的下面应该有 jbpm, jbpm-bpel,jbpm-db,jbpm-designer,jbpm-server 五个子目录。其中我们要用到的是 jbpm 和 jbpm-db两个目录。 2. 导航到 jbpm-db 子...
JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS JBPM4 SSH EXTJS JBPM SSH EXTJS 希望对大家有帮助。