我这边需求场景是每个审批环节为下个审批节点选择某个角色后,下个节点的人员才能确定。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,这个我不是很了解,现在还不能触类旁通。希望大家对这个解决方案提出些质疑或漏洞。
希望大家有好的解决方案实例分享
分享到:
相关推荐
jbpm4.4 流程运转+驳回+分配组任务+ssh2
JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM...
jbpm4.4流程图
jbpm工作流程jbpm工作流程jbpm工作流程jbpm工作流程jbpm工作流程
应用jBPM4解决中国特色的流程需求,中国特色流程解决思路。
JBPM流程引擎设计 工作流资料JBPM流程引擎设计 工作流资料JBPM流程引擎设计 工作流资料JBPM流程引擎设计 工作流资料JBPM流程引擎设计 工作流资料
中文版JBPM5用户指南 JBPM5 JBPM5教程
JBPM流程监控的实现过程
JBPM流程代码演示
jbpm流程
jbpm教程、jbpm动态设置参与者、jbpm实例下载
jbpm4.4流程确定的情况下,有时候完成了一个步骤人数不确定,在任务发布的时候有领导确定参与完成的人员,动态设置参与人数
jbpm5_持久化及流转流程剖析
文档详细介绍了如何利用JBPM开发流程应用,从框架构造到节点处理。
jbpm业务流程设计demo 基于jbpm设计的业务流程
jbpm4流程提交及执行完整代码,把每个文件放到对应的位置即可。 生成流程跟踪图的方法见: http://download.csdn.net/source/2905937
工作流程 JBPM工作流管理工作流程 JBPM工作流管理工作流程 JBPM工作流管理工作流程 JBPM工作流管理
直市场解决方案(VMS)是NAVTEQ公司中的一个机构,负责为客户提供定制的解决方案,包括移动门户和导航系统。这些解决方案中包含了NAVTEQ 公司提供的服务以及第三方服务,以客户要求的方式交付组合服务和内容,这些...
jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版
通过查看JBPM的表,我们知道要实现流程监控功能就是把JBPM当中的JBPM_PROCESSDEFINITION(已发布的流程表),JBPM_PROCESSINSTANCE(流程实例表),JBPM_TASKINSTANCE(流程产生的任务实例表)这三张表串联起来就可以...