我这边需求场景是每个审批环节为下个审批节点选择某个角色后,下个节点的人员才能确定。jbpm原有的组用户这3张权限控制满足这种情况。
我分享一下现在的应急做法,(还是希望有别的更好的解决方案,大家分享出来共同学习)
思路:
1、我在系统中定义了一张流程权限控制记录表。
字段的话比如是:流程定义key,流程实例,taskname,初始任务接受人(一个非真实人名),角色ID,最终任务领用人。大概就这些字段。
2、流程图还是用<task assignee="#{groupleader}"这种方式,不用组方式(放弃那3张表)
3、申请人提交单子时,往这张表记录一条数据,“初始任务接受人”字段可以先存个groupleader字符串。
4、当前用户查看任务列表时,用当然用户的角色ID去查找“初始任务接受人”字段,能找到“初始任务接受人”字段的就可以findPersonalTasks(),查询任务列表了。(权限也差不多在这控制了)
5、打开查看一个任务提交审批意见时,先要用当前用户userId把jbpm数据库中存的“初始任务接受人”替换掉。用户组的方式jbpm有个任务领用接口takeTask(),但这里不能这么用。好在jbpm还有个接口可以投机取巧一下,就是转交任务接口assignTask(),可以将之前的“初始任务接受人(一个非真实人名)”替换掉了,将任务转交给自己。接下来在完成任务。
6、当然任务竞争领用之类的也可以在系统中控制了。
这样的话改造量最小,而且还在继续使用系统中人员、部门、角色、权限等现有数据。
有时候往往不能再流程发布时就能确定下个节点的审批人员,都要动态地。
这方式可行的最大一个点是转交任务接口assignTask(),要不是知道这个接口也不会这么设计了。
不过这种方案还是不够好,只是应急解决了,论坛中都在说IdentitySession,这个我不是很了解,现在还不能触类旁通。希望大家对这个解决方案提出些质疑或漏洞。
希望大家有好的解决方案实例分享
分享到:
相关推荐
jbpm是一款开源的工作流管理系统,它提供了一套完整的流程定义、执行、监控和管理的解决方案。S2SH是Struts2、Spring和Hibernate三个开源框架的简称,它们常常被组合使用来构建企业级的Java应用。这个“jbpm+S2SH...
JBPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了一整套解决方案,包括业务流程建模、执行、监控以及优化。JBPM支持BPMN2.0标准,使得业务流程的定义更为直观和灵活,同时能够与其他...
jbpm是一个开源的Java BPM框架,它提供了一个全面的解决方案来设计、执行和监控业务流程。jbpm4.4版本在前一版本的基础上进行了改进和优化,增强了其稳定性和性能。 2. **安装与配置** 用户手册将详细指导如何...
jbpm(Business Process Management)是一种开源的工作流管理系统,它提供了业务流程建模、部署、执行、监控和管理的全套解决方案。在IT行业中,jbpm常用于实现企业的业务流程自动化,帮助提升工作效率,优化业务...
JBpm3.0提供了基于角色的访问控制,允许管理员定义不同用户或组对流程的访问权限。这确保了只有授权的人员才能操作和管理流程。 **版本控制**是另一个实用功能。JBpm3.0支持流程定义的版本管理,允许在不影响现有...
它提供了一套全面的业务流程管理(BPM)解决方案,包括流程建模、执行、监控和优化等功能。本指南将深入探讨JBPM4的核心知识点,包括用户指南、开发指南、安装配置、开发步骤以及如何进行系统整合。 首先,让我们来...
【jbpm 模型解析 表结构说明】 jBPM(JBoss Business Process Management)是一个开源的业务流程管理系统,它涵盖了工作流、服务协作和业务流程管理等多...结合这些组件,jBPM成为了一个强大的业务流程管理解决方案。
它提供了从设计、部署到执行的全面解决方案,让开发者能够轻松地构建和管理复杂的业务流程。以下是对JBPM新手学习的一些关键知识点的详细说明: 1. **流程定义文件**:在JBPM中,流程的定义通常是以XML文件的形式...
JBPM提供了一套完整的解决方案,包括流程设计、执行监控、任务管理以及历史数据查询等功能,使得业务流程自动化变得简单高效。 ### 1. JBPM部署与配置 在JBPM的工作流管理系统中,部署是将流程定义(如jpdl.xml)...
jBPM的优势在于它将业务逻辑与数据管理分离,利用Hibernate作为数据持久层解决方案,专注于处理核心的商务逻辑。 jPDL是jBPM框架内的流程定义语言,它以UML状态图为基础,允许开发者通过图形化方式定义任务、待处理...
jbpm是一个基于Java的业务流程管理解决方案,它允许开发者定义、执行和管理复杂的业务流程。jbpm支持BPMN 2.0标准,这使得流程定义变得更加直观且易于理解。jbpm的主要功能包括流程建模、流程执行、事件处理、任务...
jPDL套件包括了核心库、图形化流程设计器、控制台Web应用程序以及一系列辅助组件,如身份验证组件和任务执行器,共同构成了一个完整的BPM解决方案。 #### 1.3 图形化流程设计 jPDL图形化过程设计器允许用户通过直观...
jBPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了完整的业务流程管理解决方案,包括流程设计、执行、监控和分析等能力。jBPM的核心是其数据库表结构,它支撑了整个流程实例的生命周期...
5. **安全控制**:JBPM5.4提供了用户权限和角色管理,可以与Spring Security或Struts2的权限控制相结合,实现对流程操作的细粒度访问控制。 6. **日志与监控**:Spring和JBPM都可以集成日志框架,如Log4j,进行详细...
**Red Hat JBoss BPM Suite 6.4** 是一个全面的企业级解决方案,旨在帮助组织优化其业务流程。该版本提供了强大的工具集,包括流程设计、自动化、监控和分析等功能。此外,它还提供了一个统一的开发和运行环境,便于...
权限管理通常包括角色分配、权限设置、访问控制等功能,可以根据职务、部门等因素为不同用户或用户组分配不同的操作权限,避免信息泄露和误操作。 论坛模块则是促进员工间沟通交流的平台,员工可以在论坛上发布问题...
标题中的“Oa办公自动化系统”表明我们将探讨的是一个专用于办公自动化解决方案的系统,而“jbpm工作流”则是该系统的一个重要组成部分,用于管理和自动化业务流程。 jbpm(Java Business Process Management)是...
Liferay内置了基于JBoss jBPM的工作流引擎,开发者可以创建自定义工作流程,定义审批流程和表单,用于内容审核、任务分配等场景。 7. **内容管理系统** Liferay的Document and Media Library提供了文档存储、版本...
这个项目可能使用了某种工作流引擎,如Activiti或JBoss jBPM,这些引擎能够解析XML格式的工作流定义文件,执行流程实例,处理任务分配、流转规则等。在SSH框架下,这些引擎通常作为一个服务组件被Spring管理,通过...