Jbpm4

JBPM4_DEPLOYMENT 流程定义表
JBPM4_DEPLOYPROP 流程定义属性表

JBPM4_EXECUTION 流程实例表
JBPM4_HIST_ACTINST 流程活动(节点)实例表
JBPM4_HIST_DETAIL 流程历史详细表
JBPM4_HIST_PROCINST 流程实例历史表
JBPM4_HIST_TASK 流程任务实例历史表
JBPM4_HIST_VAR 流程变量(上下文)历史表

JBPM4_JOB 定时表
JBPM4_LOB 存储表

JBPM4_PARTICIPATION 参与者表
JBPM4_SWIMLANE 泳道表
JBPM4_TASK 任务表

JBPM4_VARIABLE 上下文表


发布一个流程deploy后:
jbpm4_deployment新增一条记录
jbpm4_deployprop新增三条记录
jbpm4_lob新增一条记录

开始一个流程startProcessInstanceByKey后:
jbpm4_execution新增一条记录
jbpm4_hist_actinst新增一条记录
jbpm4_hist_procinst新增一条记录
jbpm4_hist_task新增一条记录
jbpm4_task新增一条记录


流程定义相关的布署信息就存储在(1)JBPM4_DEPLOYMENT、(2)JBPM4_DEPLOYPROP(3)JBPM4_LOB中。上传一个包含png和jpdl.xml的zip包后,JBPM4_DEPLOYMENT多一条记录 JBPM4_DEPLOYPROP多四条, JBPM4_LOB多两条。
(4)JBPM4_HIST_PROCINST(5)JBPM4_HIST_ACTINST分别存放的是Process Instance、Activity Instance的历史记录。
(6)JBPM4_EXECUTION主要是存放JBPM4的执行信息,Execution机制代替了JBPM3的Token机制(详细参阅JBPM4的PVM机制,过段时间我也会进一步分析)。
(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_TASKTask的历史信息。
(14)JBPM4_ID_GROUP(15)JBPM_ID_MEMBERSHIP(16)JBPM4_ID_USER这三张表很常见了,基本的权限控制,关于用户认证方面建议还是自己开发一套,JBPM4的功能太简单了,使用中有很多需要难以满足。
(17)JBPM4_JOB存放的是Timer的定义。


一个processInstance只有一个jbpm4_hist_procinst,jbpm4_task中只有一个processInstance当前任务或多个并发任务
(activityName),jbpm4_hist_task中会有所有历史任务(outcome)和下个任务(outcome为null)


ProcessInstance inst = executionService.startProcessInstanceById(POSTING_PROCESS_DEFINITION_ID, var);

当前任务:Task task = taskService.createTaskQuery().processInstanceId(pid).uniqueResult();

jbpm中from: path = task.getFormResourceName() + "?taskId="+task.getId();

taskService.takeTask(taskId, userId); taking this task will prevent all other candidates from taking and working on this task.

taskService.completeTask(taskId);


for(Map.Entry<String, Object> entity : var.entrySet())

{
String prop = entity.getKey();
Object val = entity.getValue();

String methodName = "set" + prop.substring(0, 1).toUpperCase() + prop.substring(1);

Method m = c.getMethod(methodName, val.getClass());
m.invoke(p, val);

getHibernateTemplate().update(p);

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值