ldc199375
2018-01-21 13:45:57
Activiti流程基础入门简介-推荐使用Activiti5.22
1. Activiti相关概念
1.1 Activiti表清单
序号 | 表名 | 说明 |
---|---|---|
1 | act_ge_bytearray | 二进制数据表 |
2 | act_ge_property | 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录 |
3 | act_hi_actinst | 历史节点表 |
4 | act_hi_attachment | 历史附件表 |
5 | act_hi_comment | 历史意见表 |
6 | act_hi_identitylink | 历史流程人员表 |
7 | act_hi_detail | 历史详情表,提供历史变量的查询 |
8 | act_hi_procinst | 历史流程实例表 |
9 | act_hi_taskinst | 历史任务实例表 |
10 | act_hi_varinst | 历史变量表 |
11 | act_id_group | 用户组信息表 |
12 | act_id_info | 用户扩展信息表 |
13 | act_id_membership | 用户与用户组对应信息表 |
14 | act_id_user | 用户信息表 |
15 | act_re_deployment | 部署信息表 |
16 | act_re_model | 流程设计模型部署表 |
17 | act_re_procdef | 流程定义数据表 |
18 | act_ru_event_subscr | throwEvent、catchEvent时间监听信息表 |
19 | act_ru_execution | 运行时流程执行实例表 |
20 | act_ru_identitylink | 运行时流程人员表,主要存储任务节点与参与者的相关信息 |
21 | act_ru_job | 运行时定时任务数据表 |
22 | act_ru_task | 运行时任务节点表 |
23 | act_ru_variable | 运行时流程变量数据表 |
注:为了使系统原有的用户认证和Activiti中用户认证结合起来,采用了建立视图的方式act_id_user,act_id_group,act_id_membership
1.2 Activiti服务组件清单
组件名称 | 说明 |
---|---|
RepositoryService | 管理流程定义和流程部署的API |
RuntimeService | 流程运行时对流程实例进行管理和控制 |
TaskService | 管理流程任务(签收,提交) |
HistoryService | 管理流程历史数据 |
IdentityService | 流程用户角色管理 |
ManagementService | 管理维护流程引擎 |
注:所有的组件都是通过ProcessEngine进行初始化的.
组件服务使用示例:
// 流程启动, 传入流程定义key和参数 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(defintionKey, variables); // 流程实例查询 ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); // 任务签收 传入任务Id和任务受理人Id taskService.claim(taskId, userId); // 流程任务提交 传入流程任务Id和参数 taskService.complete(taskId, variables); // 查询指定流程的候选组任务 传入流程定义key和候选组Id List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup(groupId).processDefinitionKey(defintionKey).list(); // 使用原生SQL进行查询执行实例查询(原生SQL只做查询,建议不要进行修改操作) String sql = "SELECT * FROM "+managementService.getTableName(Execution.class)+ " E WHERE E.SUPER_EXEC_ IN (SELECT DISTINCT T.ID_ FROM act_ru_execution T where T.PROC_INST_ID_='"+mainProcessInstanceId+"')"; Execution execution = runtimeService.createNativeExecutionQuery().sql(sql).singleResult();
1.3 Activiti相关概念
流程实例ProcessInstance:流程启动后创建流程实例.
任务实例TaskInstance:流程执行到某一任务创建任务实例.
执行实例ExecutionInstance:流程上走过的节点都会创建一个执行实例,即使是流程的开始和结束
任务受理人Assignee:任务提交的权限控制,任务的执行人(为空的受理人,流程任务也是可以提交的,可代码控制)
任务候选组CandidateGroup:在一个候选组的人可以看到当前候选任务,然后进行任务签收(变为任务受理人)
评论

alt1127 LV1
2021年2月9日
lxfhi6 LV7
2021年1月15日
zh367291119 LV2
2021年1月12日
crazyfly1115
2020年10月10日
暂无贡献等级
jeety太阳雨 LV14
2020年2月23日
kwm2921944 LV10
2019年12月8日
woohyuk117 LV6
2019年11月14日
无我一心 LV1
2019年10月23日
huberycheng LV1
2019年9月3日
大程123456 LV2
2019年8月15日