`
man1900
  • 浏览: 432873 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

扩展JBPM取得我的任务

    博客分类:
  • JBPM
阅读更多

Jbpm4提供两个接口可以获取该用户的待处理任务,

一个是个人的任务:

taskService.findPersonalTasks(userId)

 

另一个是取得该用户对应的候选任务:

taskService.findGroupTasks(userId)

 

有时我们需要在一个列表中显示该任务的所有任务,包括他的个人任务,候选任务,这时直接用jbpm4提供的api完成不了该功能要求。

 

于是可以使用以下方式进行扩展:

 

/**
	 * 取得用户的对应的任务列表
	 * @param userId
	 * @return
	 */
	public List<TaskImpl> getTasksByUserId(String userId){
		AppUser user=(AppUser)getHibernateTemplate().load(AppUser.class, new Long(userId));
		Iterator<AppRole> rolesIt=user.getRoles().iterator();
		StringBuffer groupIds=new StringBuffer();
		int i=0;
		while(rolesIt.hasNext()){
			if(i>0)groupIds.append(",");
			groupIds.append("'"+rolesIt.next().getRoleId().toString()+"'");
		}
		/**
		 *  select * from `jbpm4_task` task
			left join jbpm4_participation pt on task.`DBID_`=pt.`TASK_`
			where task.`ASSIGNEE_`='1' or ( pt.`TYPE_` = 'candidate' and (pt.`USERID_`='1')
			or pt.`GROUPID_`in ('1'))
		 */
		StringBuffer hqlSb=new StringBuffer();
		hqlSb.append("select task from org.jbpm.pvm.internal.task.TaskImpl task left join task.participations pt where task.assignee=?");
		hqlSb.append(" or (pt.type = 'candidate' and ((pt.userId=?)");
		
		if(user.getRoles().size()>0){
			hqlSb.append(" or (pt.groupId in ("+groupIds.toString()+"))");
		}
		hqlSb.append("))");
		hqlSb.append(" order by task.priority desc");

		return findByHql(hqlSb.toString(), new Object[]{userId,userId});
		
	}

 

这样非常方便可以取得用户的待处理的任务,对于候选的任务,用户可以申请执行。

分享到:
评论

相关推荐

    jbpm扩展包(jbpm_adapter.jar)

    jbpm_adapter.jar文件是针对jbpm的扩展,它的主要目标是简化jbpm的使用,尤其是针对任务管理和流程监控方面。通过这个扩展包,用户可以更方便地获取并操作流程实例中的各项列表,例如待办、已办、办结、已阅和未阅等...

    jbpm完整示例 任务列表 权限管理

    首先,我们来看"我发起的任务"这个部分。在jbpm中,用户可以发起一个新的流程实例,这通常涉及到创建一个工作流的起点。发起任务意味着启动了一个新的业务流程,这个流程可能涉及到多个部门或者人员的协作。用户可以...

    JBPM3.2与Spring结合时任务调度的实现.doc

    JBPM3.2与Spring的整合主要是为了实现任务调度的功能,这在企业级应用中是非常重要的,因为它能够自动化执行定时任务,如流程启动、数据同步、报告生成等。在JBPM3.1.x版本中,通过SpringModules提供的`spring-...

    jbpm4jbpm5

    jbpm4.3表结构和表字段说明文档通常会详细介绍jbpm4中涉及的数据库表,包括实体如任务实例(TaskInstance)、流程实例(ProcessInstance)、工作项(WorkItem)等的表结构和字段。这些信息对于开发者来说至关重要,...

    JBPM修改数据库教程以及实例

    MySQL和PostgreSQL作为成熟的开源关系型数据库,提供了更好的扩展性、稳定性和安全性,是企业级应用的理想选择。 **1. 配置MySQL** (1) 安装与配置MySQL:确保已经安装了MySQL服务器,并创建一个用于JBPM的新...

    jbpm的扩展源代码

    jbpm的扩展源代码意味着开发者对原始jbpm框架进行了自定义开发,以满足特定业务需求或增强其功能。让我们深入探讨jbpm的核心概念、扩展方式以及可能涉及的源代码内容。 首先,jbpm提供了流程建模工具,支持BPMN 2.0...

    JOffice2中的JBPM4的任务回退实现

    本文将深入探讨如何在JOffice2中实现JBPM4任务的回退功能,这在处理复杂流程时尤其重要,允许用户纠正错误或根据需要调整流程方向。 任务回退在JOffice2中有两种主要的实现方式: 1. **完成当前任务并生成新的后退...

    jbpm简介\jbpm简介

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

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

    jbPM 3.2是该系统的一个版本,它提供了丰富的功能,包括流程设计、执行、监控以及优化,为企业构建灵活且可扩展的业务流程解决方案。 ### 一、jbPM 3.2 环境配置 在开始jbPM 3.2的开发之前,你需要配置好相应的...

    jbpm-3.1.2.zip_jbpm_jbpm 3.1.2_jbpm-3.1.2.rar_jbpm3.1.2_工作流

    jbpm-3.1.2.zip 文件包含了 jBpm 的一个重要版本——jBpm 3.1.2,这是一个开源的工作流管理系统,专为构建灵活且可扩展的业务流程解决方案而设计。jBpm 提供了一种方式,使得开发者能够用简单而强大的语言来表达业务...

    我写的一个jbpm实例

    在这个"我写的一个jbpm实例"中,我们将深入探讨jbpm的核心概念和实现步骤。 1. **jbpm简介** jbpm是基于Java的BPM(Business Process Management)解决方案,支持BPMN 2.0标准,使得流程模型更加直观易懂。jbpm...

    jbpm jbpm4.3.jar

    jbpm jbpm4.3.jar DDDDDDDD

    jbpm4.4 动态设置参与人数

    特别是在版本4.4中,JBPM提供了强大的灵活性和扩展性,使得开发者能够根据实际需求动态调整工作流程。本文将详细介绍如何在JBPM 4.4中实现动态设置参与人数的功能,这对于提高业务流程的灵活性和适应性具有重要意义...

    jbpm数据库表介绍

    jbpm 的数据库表设计旨在提供一个灵活、可扩展的流程管理系统,能够满足各种业务流程的需求。了解 jbpm 的数据库表结构能够帮助开发者更好地理解和使用 jbpm,实现更加复杂的业务流程管理系统。

    jBPM4.4.rar_jbpm4.4_jbpm4.4 PDF

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

    JBPM教学课件PPT

    2. 任务服务:JBPM提供了任务服务,用于管理流程中的任务,如任务创建、分配、完成和查询等。 3. 决策服务:通过与Drools(一个规则引擎)集成,JBPM可以实现基于规则的决策节点,动态调整流程路径。 四、流程监控 ...

    jbpm任务分配管理.doc

    jbpm任务分配管理是BPM(业务流程管理)框架jbpm中的一个重要组成部分,它涉及到如何在流程执行过程中将任务分配给合适的参与者。jbpm是一个开源的Java库,用于建模、执行和管理业务流程,而任务分配是流程执行的...

    SSH+JBPM4.3的整合 JBPM4.3

    6. **任务管理**:JBPM提供了任务服务,允许用户进行任务查询、领取、完成等操作。在Struts视图层,可以展示待办任务列表,用户交互后触发任务状态的变化。 7. **监控与优化**:JBPM提供了丰富的监控功能,如流程...

    jbpm中文教程-详细

    5. 自定义扩展:jbpm允许开发者通过插件和扩展点自定义流程行为,满足特定业务需求。 四、学习资源与实践 "JBPM用户指南.doc"文档是jbpm的重要参考资料,它详细介绍了如何使用jbpm进行流程设计、部署、执行以及...

    jbpm-4.4.zip

    jbpm项目始于2004年,旨在提供一个开源、轻量级、灵活且可扩展的平台,使开发人员能够更有效地构建和管理复杂的业务流程。 jbpm 4.4是该框架的一个重要版本,它在先前版本的基础上进行了许多改进和增强。以下是jbpm...

Global site tag (gtag.js) - Google Analytics