在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
1. **架构升级**:jbpm4采用了全新的服务导向架构(SOA),增强了可扩展性和灵活性,引入了流程服务(Process Services)和任务服务(Task Services)。 2. **Guvnor**:jbpm4引入了Guvnor,这是一个流程知识管理...
3. **实体(Entities)**:jbpm4支持自定义实体,例如参与者(User Task)、角色(Role)等,这些实体与流程中的任务密切相关。通过源码,你可以学习如何定义和使用这些实体。 4. **任务(Tasks)**:jbpm4的任务...
3. 任务服务:jbpm提供任务服务,允许用户通过任务接口与流程实例交互,如领取任务、完成任务等。 4. 负载均衡与集群:jbpm支持分布式部署和负载均衡,可以在多个节点上运行,确保高可用性和可扩展性。 二、jbpm的...
3. **任务管理**:jbpm4提供任务服务,允许用户领取、完成任务,以及对任务进行查询和管理,支持自定义任务表单和工作流审批规则。 4. **规则引擎**:jbpm4集成了Red Hat的JBoss Drools规则引擎,使得流程决策可以...
【jbpm4的员工请假例子原码】是一个基于jbpm4流程引擎的示例项目,展示了如何在企业中实现一个简单的员工请假流程。这个Web项目是完全开源的,可以通过Eclipse这样的集成开发环境来打开和运行,对于学习和理解jbpm4...
jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...
本手册为jbPM4的中文版,旨在帮助中国用户更好地理解和使用这一强大的工具。 jbPM4的核心特性包括: 1. **流程建模**:jbPM4支持使用Business Process Execution Language for Java (BPEL)和Business Process ...
4. **任务处理**:jbPM支持用户任务,即需要人工干预的任务。用户可以通过工作列表(Task List)进行任务的接收和处理。 5. **流程监控**:jbPM提供了一个Web管理控制台,可以实时查看流程实例的状态、历史记录,...
7. **Web界面**:"jbpm4web"可能是指jbpm4的Web应用程序部分,用于用户交互,提交任务,查看待办事项等。这部分可能包含前端页面和后端控制器,通过HTTP与工作流引擎通信。 在下载的压缩包中,"jbpm4web"可能包括...
这个"jbpm中文用户手册"是针对jbpm 4.1版本的中文帮助文档,旨在为中国的开发者和用户提供详细的操作指南和参考资料,以便更好地理解和使用jbpm。 jbpm的核心功能包括工作流建模、执行和监控,它支持BPMN 2.0标准,...
4. **事件处理**:jbpm提供了事件监听器机制,允许用户在特定流程事件发生时执行自定义逻辑,如任务分配、日志记录等。 5. **工作流服务**:jbpm通过ServiceTask来调用外部服务,如数据库查询、Web服务等。开发者...
jbpm4是jbpm的第四个主要版本,而jbpm4.3则是该版本的一个具体迭代,带来了诸多改进和新特性。 在jbpm4.3中,关键知识点主要包括以下几个方面: 1. **流程建模**:jbpm4.3支持BPMN 2.0标准,使得业务流程可以用...
【JBPM4:一个初级了解的请假流程实例】 JBPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了一套完整的解决方案,用于设计、执行和管理业务流程。JBPM4是JBPM的一个版本,专注于简化...
【jbpm4请假实例代码】是一个基于jbpm4工作流引擎的示例应用,它用于演示如何在实际项目中实现员工请假流程的自动化管理。jbpm4是一个开源的工作流管理系统,它提供了强大的业务流程建模、执行和管理功能,使得...
jBPM的核心设计理念是灵活性与可扩展性,其目标是在不同的业务环境中为用户提供高效、稳定的流程管理解决方案。 #### 二、选择jBPM的十大理由 1. **嵌入式的工作流引擎**:jBPM采用嵌入式设计,这意味着它可以作为...
2. 任务管理:JBPM4提供了任务管理功能,可以分配任务给不同的角色或用户,并处理任务的接收、完成和委托。 四、持久化与恢复 1. JPA集成:JBPM4通过Java Persistence API(JPA)与数据库进行交互,确保流程实例的...
- **任务分配**:jbpm支持根据预设规则或动态分配任务给指定用户或组。 - **任务管理**:用户可以通过jbpm提供的web界面或API查看、接受、完成任务。 - **流程监控**:提供实时的流程运行情况监控,如实例数量、...
4. **部署与执行**:jbpm4.4允许将设计的流程部署到服务器,并在运行时执行。部署可以是本地的或者分布式环境。 5. **任务管理**:jbpm4.4提供了任务服务,包括任务分配、完成、查询等功能,使得业务流程中的任务...
1. **流程设计器(Jbpm Designer)**:JBPM4提供了一个基于Eclipse的图形化流程设计器,用户可以通过拖拽节点来构建流程图。 2. **流程部署(Deployment)**:设计好的流程模型可以导出为XML文件,通过Jbpm ...