JBPM流程实例:任意节点退回与权限控制
4星 · 超过85%的资源 需积分: 6 88 浏览量
更新于2024-09-18
1
收藏 105KB PDF 举报
"JBPM开发实例 - 这篇文章主要探讨了如何使用JBPM来实现一个具有特定需求的审批流程,包括从任意节点回退至初始节点、权限控制以及流程实例的变量管理。"
在JBPM(Java Business Process Management)开发中,设计一个满足特定业务需求的审批流程是一个关键任务。在本文提供的实例中,流程的主要要求是允许审批者从任何节点返回到第一个节点,并且在第一次审批后,返回该节点时应直接跳转回去。同时,每个审批者能够看到并修改的数据可能因人而异。
1. 从任意节点返回第一个节点的实现:
- 直接通过绘制流程图中的连线来实现回退。但需注意,JBPM不允许直接从非起始状态的节点向起始状态(StartState)绘制连线。因此,这里的“第一个节点”应定义为流程的首个任务节点,而非StartState。
2. 从第一个节点重新回到原节点:
- 当从任意节点返回到第一个节点时,需要在流程实例变量中设置一个特殊的标识值。这个标识值作为依据,使得在第一个节点再次触发时能准确地返回到原来的节点。
3. 设置每个节点的权限控制:
- JBPM提供了TaskController的概念,可以用来设定每个任务节点的读写权限。通过Controller,可以对流程中的变量设置访问级别,例如只读或读写。这样,每个审批者只能看到和修改分配给他们的特定表单内容,对其他内容则只能进行查看。
流程定义示例:
```xml
<process-definition xmlns="" name="flowTest">
<swimlane name="销售经理">
<assignment actor-id="张三"/>
</swimlane>
...
<start-state name="start">
<transition name="" to="销售经理启动意向图"/>
</start-state>
<task-node name="销售经理启动意向图">
<task name="启动意向图" swimlane="销售经理">
<controller>
<variable name="prop1" access="read,write"/>
...
</controller>
</task>
</task-node>
...
</process-definition>
```
在这个流程定义中,可以看到不同泳道(Swimlane)对应不同的角色,如销售经理、市场部经理和经营管理部经理,每个角色都有相应的权限设置。`<assignment>`元素指定了每个任务的处理人,而`<controller>`元素内的`<variable>`定义了变量的读写权限。
这个JBPM实例展示了如何利用JBPM的特性来实现一个灵活且具有权限控制的审批流程。通过流程定义和任务控制器,可以有效地管理审批过程中的数据和权限,确保每个审批环节的正确执行。
2009-09-25 上传
2009-06-13 上传
2022-03-02 上传
点击了解资源详情
2014-07-03 上传
2012-11-07 上传
2013-07-22 上传
2011-10-27 上传
2013-08-19 上传
javaltzh
- 粉丝: 0
- 资源: 4
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章