2.9任务管理
2.9.1 分配任务
流程定义时,分配任务有多种方法:
1.
2.
3.
1.任务泳道分配的特点:一个单子可以有多个人填写,一旦A填写了,别人就不能 填写。而且当A提交的单子被退回的时候还应该有A来继续。
2.泳道定义:<swimlane
3.使用泳道:在task定义时
4.使用任务分配器assignment-handler标签
<field
</assignment-handler>
在class里面动态分配assignable.setAssignee(test);
通过传参数,设置
2.9.2 成员任务列表
List<Task>
2.9.3 组成员任务列表
List<Task>
由于任务有转交,加签等功能,所以一个人想要得到自己的任务就包括
2.9.4 执行任务
得到任务列表后,如果任务有对应的表单,就先跳到表单,填写,然后执行。表单的绑定:在task标签中使用
taskService.completeTask(taskId,"toFork1",map);
taskId
toFork1
Map
得到指定的参数值:taskService.getVariable(taskId,
2.9.5 转交任务
taskService.assignTask(taskId,"用户Id");
2.9.6 任务加签
taskService.addTaskParticipatingUser
2.9.7 fork join 异步分支
<fork
</fork>
Fork
Join标签属性:
2.9.8 decision 决定条件
decision中会运行并判断每一个transition
设置判断条件的转移,那么转移就会被运行。
例子:当天数大于3天,总经理审批
<decision
Decision属性:
2.9.9 Events 事件
用法:在流程的任何地方都可以加入监听
<on
<event-listener
//
2.9.10 JPDL简 介
1. Start state
开始节点
2. Task node
任务节点
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文档
3数据库表说明
(1)JBPM4_DEPLOYMENT、
(2)JBPM4_DEPLOYPROP
(3)JBPM4_LOB:
存储
jbpm4_deployment表多了一条记录
jbpm4_deployprop表多了四条记录,对应langid,pdid,pdkey,pdversion
jbpm4_lob
(4)JBPM4_HIST_PROCINST与(5)JBPM4_HIST_ACTINST
分别存放的是Process
(6)JBPM4_EXECUTION
主要是存放JBPM4的执行信息,Execution机制代替了JBPM3的Token机制
(7)JBPM4_TASK
存放需要人来完成的Activities,需要人来参与完成的Activity被称为Task。
(8)JBPM4_PARTICIPATION
存放Participation的信息,Participation的种类有Candidate、
(9)JBPM4_SWIMLANE
Swim
(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