2.9任务管理
2.9.1 分配任务
流程定义时,分配任务有多种方法:
1.
直接分配给成员:assignee="user1"
可以同时分配多人:
candidate-users
(
"user1","user2","user3"
)
2.
分配给组:candidate-groups="it_dept"
分
配给多个组:用逗号隔开部门
id
组列表。
3.
利用任务泳道进行分配:
1.
任
务泳道分配的特点:一个单子可以有多个人填写,一旦A
填写了,别人就不能
填写。而且
当A
提交的单子被退回的时候还应该有
A
来继续。
2.
泳
道定义:<swimlane candidate-groups="it_dept" name="test"/>
,也可以为
candidate-users.
3.
使
用泳道:在task
定义时
swimlane="test"
使用泳道,任务分配
给
it_dept
部
门
4.
使
用任务分配器assignment-handler
标签 使用方法:
<assignment-handler class = "">
<field name="test"><string value="ttttttt"/></field>
</assignment-handler>
在class
里面动态分配
assignable.setAssignee(test);
通过传参数,设置 test
的值。实现动态分配
2.9.2 成员任务列表
List<Task> taskList = taskService.findPersonalTasks(username);
2.9.3 组成员任务列表
List<Task> taskList = taskService.findGroupTasks(username);
由于任务有转交,加签等功能,所以一个人想要得到自己的任务就包括 组成员任务和
成
员任务两部分组成。
2.9.4 执行任务
得到任务列表后,如果任务有对应的表单,就先跳到表单,填写,然后执行。表单的绑定:在task
标签中使用
form = "xxxx.jsp"
,执行语句:
taskService.completeTask(taskId,"toFork1",map);
taskId 是任务
id
toFork1 是
outcome
,即任务的出口
Map 是 传递的任务参数,通过任务就可以得到这些参数
:
得到指定的参数值:taskService.getVariable(taskId, "user")
得到所
有的参数:taskService.getvariableNames(java.lang.String.taskId);
2.9.5 转交任务
taskService.assignTask(taskId,"用户
Id");
2.9.6 任务加签
taskService.addTaskParticipatingUser(taskId,"用户
Id",Participation.CANDIDATE);
2.9.7 fork join 异步分支
<fork g="276,239,48,48" name="fork1">
<transition g="-54,-18" name="to 计划部
" to="
计划部
"/>
<transition g="-54,-18" name="to 法务部
" to="
法务部
"/>
<transition g="-64,-18" name="to IT规划部
" to="IT
规划部
"/>
</fork>
Fork join 处理并发的情况,分配给的三个部门当执行完后,都流入到
join
标签。
Join标签属性:
multiplicity="3" multiplicity
的意思是当有几个执行到了
join
时,流程继续。
2.9.8 decision 决定条件
decision中会运行并判断每一个
transition
里的判断条件。 当遇到一个嵌套
条件是
true
或者没有
设置判断条件的
转移,那么转移就会被运行。
例子:当天数大于3
天,总经理审批 否则 结束
<decision expr="#{day > 3 ? 'to 总经理
' : 'to
结束
}" g="361,280,48,48"
name="exclusive1">
<transition g="-42,-18" name="to end1" to="end1"/>
<transition g="-44,-18" name="to task2" to="总经理审核
"/>
</decision>
Decision属性:
expr
表达式 必填
2.9.9 Events 事件
当一个流程通
过这一点时,事件监听器就会被提醒。
用法:在流程的
任何地方都可以加入监听
<on event="start">
<event-listener class="org.jbpm.examples.eventlistener.LogListener">
// 参数
<field name="msg"><string value="start on process definition"/></field>
</event-listener>
2.9.10
JPDL
简 介
1. Start state
开始节点 流程
开始,每个流程定义文件 只能有一个开始节点。
2. Task node
任务节点 人
工参与,调用processEngine.getTaskService().complete()
完 成任务
3.State node
状态节点
需要使用execution.signalExcution()
触
发流程流转
4. Descision Node
流程流向判断节
点
指定condition
条件或者
DesisionHandler
5. Fork node
分支节点,
任务并行处理
6.Join node
任务聚合节点
7. End State
任务结束节
点 可以有多个结束节点
8. Transition
控制任务流向
9. Event
事件触发 可以
在任何节点加事件触发处理
具体参看${JPBM.HOME}/doc/userguide
文
档 关于
JPDL
的描述
3数
据库表说明
(1)
JBPM4_DEPLOYMENT、
(2)
JBPM4_DEPLOYPROP
(3)
JBPM4_LOB:
存储 上传一个包含png
和
jpdl.xml
的
zip
包 的
相关数据
jbpm4_deployment表多了一条记录
jbpm4_deployprop表多了四条记录
,
对应
langid,pdid,pdkey,pdversion
jbpm4_lob 表多了二条记录
,
保存流程图
png
图片和
jpdl.xml
(4
)
JBPM4_HIST_PROCINST
与(
5
)
JBPM4_HIST_ACTINST
分别存放的是Process Instance
、
Activity Instance
的历史记录。
(6
)
JBPM4_EXECUTION
主要是存放JBPM4
的执行信息,
Execution
机制代替了
JBPM3
的
Token
机制
(7
)
JBPM4_TASK
存放需要人来完成的Activities
,需要人来参与完成的
Activity
被称为
Task
。
(8
)
JBPM4_PARTICIPATION
存放Participation
的信息,
Participation
的种类有
Candidate
、
Client
、
Owner
、
Replaced
Assignee和
Viewer
。而具体的
Participation
既可以是单一用户,也可以是用户组。
(9
)
JBPM4_SWIMLANE
Swim Lane是一种
Runtime Process Role
。通过
Swim Lane
,多个
Task
可以一次分配到
同一Actor
身
上。
(10
)
JBPM4_VARIABLE
存的是进行时的临时变量。
(11
)
JBPM4_HIST_DETAIL
保存Variable
的变更记录。
(12
)
JBPM4_HIST_VAR
保存历史的变量。
(13
)
JBPM4_HIST_TASK
Task的历史信息。
(14
)
JBPM4_ID_GROUP
(
15
)
JBPM_ID_MEMBERSHIP
(
16
)
JBPM4_ID_USER
这三张表很常见了,基本的权限控制,关于用户认证方面建议还是自己开发一套,JBPM4
的功能太简单了,使用
中有很多需要难以满足。
(17
)
JBPM4_JOB
存放的是Timer
的定义。
(18
)
JBPM4_PROPERTY
分享到:
相关推荐
SSH+JBPM4.3的整合 JBPM4.3 转载别人的博客,里面包含2份整合框架的资料,2份关于JBPM的学习
JBPM4.3的初学者视频, 包含了JBPM4.3的插件, 共9个,分开来上传了
jbpm4.3与spring整合的一个小文档
jbpm4.3,jbpm4.3工作流程管理例子
JBPM4.3用户手册JBPM4.3用户手册JBPM4.3用户手册
jbpm jbpm4.3.jar DDDDDDDD
jbpm4.3集成到tomcat、eclipse过程
jbpm 4.3 与 spring 集成
JBPM4.3WEB应用,里面有一个关于请假流程的例子,基本上包含了JBPM4.3的一些常用的方法及服务类,也把它的新特性展现出来了。
超清晰的视频教程,有完整的例子,全面讲解了jbpm4.3,里面有代码,由于视频太大,给大家一个下载地址吧!!
jbpm4.3问题解决方法,我们根据您的错误给出针对性的解答!
JBPM4.3编程指南JBPM4.3编程指南JBPM4.3编程指南JBPM4.3编程指南JBPM4.3编程指南JBPM4.3编程指南JBPM4.3编程指南JBPM4.3编程指南
jbpm4.3 英文帮助文档 不是中文的还是很全的
本示例主要实现了流程的基本管理,流程实例的管理,...使用本例子只需要拷贝jbpm4.3的lib的jar包到本实例lib里面即可运行,注意用tomcat6的话必须把juel.jar,juel-engine.jar、juel-impl.jar剪切到tomcat的lib目录下。
jbpm4.3表结构和表字段说明
jBPM4.3用户指南 在这个用户指南里, 我们将介绍在持久执行模式下的jPDL流程语言。 持久执行模式是指流程定义、 流程执行以及流程历史都保存在关系数据库中, 这是jBPM实际通常使用的方式。 这个用户指南介绍了...
jbpm4.3 中文文档 jbpm4.3 中文文档
jbpm4.3 请假流程实例示例jbpm4.3 请假流程实例示例jbpm4.3 请假流程实例示例jbpm4.3 请假流程实例示例jbpm4.3 请假流程实例示例
部署ssh所必需jar包另有部署方案,方案很完善可以提供源代码
JBPM4.3 整合struts2 hibernate spring 请假实例, lib下载,在我的另外资源,路径: http://download.csdn.net/source/2485359 http://download.csdn.net/source/2485373 http://download.csdn.net/source/2485385 ...