`
zhb1126
  • 浏览: 3550 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

转载: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中,可以这样写: 

 

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

    jbpm jbpm4.3.jar DDDDDDDD

    jbpm中文指南(包括3和4的)

    1. **架构升级**:jbpm4采用了全新的服务导向架构(SOA),增强了可扩展性和灵活性,引入了流程服务(Process Services)和任务服务(Task Services)。 2. **Guvnor**:jbpm4引入了Guvnor,这是一个流程知识管理...

    jbpm4实例源码,可直接运行

    3. **实体(Entities)**:jbpm4支持自定义实体,例如参与者(User Task)、角色(Role)等,这些实体与流程中的任务密切相关。通过源码,你可以学习如何定义和使用这些实体。 4. **任务(Tasks)**:jbpm4的任务...

    JBPM4 常用表结构及其说明

    **JBPM4_ID_MEMBERSHIP** — 用户角色表 - **作用**: 记录用户与角色的关系。 - **主要内容**: 用户ID、角色ID等。 - **特点**: 有助于实现基于角色的访问控制(RBAC)。 ##### 18. **JBPM4_ID_USER** — 用户表 - *...

    jbpm资料大全(个人收集)

    3. 任务服务:jbpm提供任务服务,允许用户通过任务接口与流程实例交互,如领取任务、完成任务等。 4. 负载均衡与集群:jbpm支持分布式部署和负载均衡,可以在多个节点上运行,确保高可用性和可扩展性。 二、jbpm的...

    jbpm4基本jar包

    3. **任务管理**:jbpm4提供任务服务,允许用户领取、完成任务,以及对任务进行查询和管理,支持自定义任务表单和工作流审批规则。 4. **规则引擎**:jbpm4集成了Red Hat的JBoss Drools规则引擎,使得流程决策可以...

    jbpm4的员工请假例子原码

    【jbpm4的员工请假例子原码】是一个基于jbpm4流程引擎的示例项目,展示了如何在企业中实现一个简单的员工请假流程。这个Web项目是完全开源的,可以通过Eclipse这样的集成开发环境来打开和运行,对于学习和理解jbpm4...

    jbpm4jbpm5

    jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...

    jBPM4.1help.rar_jbpm4

    本手册为jbPM4的中文版,旨在帮助中国用户更好地理解和使用这一强大的工具。 jbPM4的核心特性包括: 1. **流程建模**:jbPM4支持使用Business Process Execution Language for Java (BPEL)和Business Process ...

    jBPM3.2.rar_JBPM3.2_jbpm_jbpm 3.2_jbpm3_jbpm3.2教程

    4. **任务处理**:jbPM支持用户任务,即需要人工干预的任务。用户可以通过工作列表(Task List)进行任务的接收和处理。 5. **流程监控**:jbPM提供了一个Web管理控制台,可以实时查看流程实例的状态、历史记录,...

    jbpm4源代码 简单实现公文流转

    7. **Web界面**:"jbpm4web"可能是指jbpm4的Web应用程序部分,用于用户交互,提交任务,查看待办事项等。这部分可能包含前端页面和后端控制器,通过HTTP与工作流引擎通信。 在下载的压缩包中,"jbpm4web"可能包括...

    jbpm中文用户手册

    这个"jbpm中文用户手册"是针对jbpm 4.1版本的中文帮助文档,旨在为中国的开发者和用户提供详细的操作指南和参考资料,以便更好地理解和使用jbpm。 jbpm的核心功能包括工作流建模、执行和监控,它支持BPMN 2.0标准,...

    jbpm5.4 api javadocs

    4. **事件处理**:jbpm提供了事件监听器机制,允许用户在特定流程事件发生时执行自定义逻辑,如任务分配、日志记录等。 5. **工作流服务**:jbpm通过ServiceTask来调用外部服务,如数据库查询、Web服务等。开发者...

    jbpm jbpm4 jbpm4.3 工作流

    jbpm4是jbpm的第四个主要版本,而jbpm4.3则是该版本的一个具体迭代,带来了诸多改进和新特性。 在jbpm4.3中,关键知识点主要包括以下几个方面: 1. **流程建模**:jbpm4.3支持BPMN 2.0标准,使得业务流程可以用...

    JBPM4 ,请假例子。用于初级了解

    【JBPM4:一个初级了解的请假流程实例】 JBPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了一套完整的解决方案,用于设计、执行和管理业务流程。JBPM4是JBPM的一个版本,专注于简化...

    jbpm4请假实例代码

    【jbpm4请假实例代码】是一个基于jbpm4工作流引擎的示例应用,它用于演示如何在实际项目中实现员工请假流程的自动化管理。jbpm4是一个开源的工作流管理系统,它提供了强大的业务流程建模、执行和管理功能,使得...

    jBPM4.4.rar_jbpm4.4_jbpm4.4 PDF

    4. **任务管理**:jBPM中的任务服务允许用户交互地处理流程中的任务,包括任务的分配、领取、完成以及查询。 5. **事件处理**:系统能够监听并响应各种事件,如流程实例的开始、结束、异常等,以便进行相应的处理。...

    jbpm简介\jbpm简介

    jBPM的核心设计理念是灵活性与可扩展性,其目标是在不同的业务环境中为用户提供高效、稳定的流程管理解决方案。 #### 二、选择jBPM的十大理由 1. **嵌入式的工作流引擎**:jBPM采用嵌入式设计,这意味着它可以作为...

    JBPM4学习笔记

    2. 任务管理:JBPM4提供了任务管理功能,可以分配任务给不同的角色或用户,并处理任务的接收、完成和委托。 四、持久化与恢复 1. JPA集成:JBPM4通过Java Persistence API(JPA)与数据库进行交互,确保流程实例的...

    jbpm开发入门指南

    - **任务分配**:jbpm支持根据预设规则或动态分配任务给指定用户或组。 - **任务管理**:用户可以通过jbpm提供的web界面或API查看、接受、完成任务。 - **流程监控**:提供实时的流程运行情况监控,如实例数量、...

Global site tag (gtag.js) - Google Analytics