1、Activiti 的表说明
使用25张表
ACT_RE 流程定义和流程资源
ACT_RU 运行时,流程实例、任务、变量
ACT_HI 历史表
ACT_GE 通用表
2、Activiti的架构、类关系图
获取流程引擎的工具类
processEngines.使用默认方式获取配置文件,构建流程引擎。配置文件名字activiti.cfg.xml,放在classpath下
processEngineConfiguration.可以自定义配置文件名
使用上面2个工具类,都可以获取流程引擎
processEngine :流程引擎。获取各种服务的接口。
服务接口:用于流程的部署、执行、管理,使用这些接口就是在操作对应的数据表
RepositoryService 资源管理类
RuntimeService 运行时管理类
TaskService 任务管理类
HistoryService 历史数据管理类
ManagementService 流程引擎管理类
3、BPMN插件
idea安装actiBPM 插件
4、流程符号、画流程图
流程符号:事件Event、活动Activity、网关Gateway、流向
使用流程设计器画出流程图
bpmn文件本质是xml文件,因为安装了actiBPM插件,才能可视化的看到流程内容
创建bpmn文件,在流程设计器使用流程符号来表达流程。指定流程的key,指定任务负责人
生成png文件,把bpmn文件的后缀改为xml,在这个文件上右键选择Diagrams-->show BPMN2.0 Desinger,打开窗口,点击导出文件按钮
选择导出文件类型为png。要注意乱码问题
5、部署流程
使用Activiti提供的 API把流程图的内容写入数据库中
属于资源类操作,使用RepositoryService
单文件部署:把bpmn和png文件一个一个处理
压缩包部署:把bpmn和png打压缩包来处理
核心代码:
Deployment deploy = repositoryService.createDeployment()
部署表操作表:
act_re_deployment 部署表
act_re_procdef 流程定义表
act_ge_bytearray 资源表
6、启动流程实例
使用RuntimeService根据流程定义的key
核心代码:
ProcessInstance instance = runtimeService.startProcessInstanceByKey("myEvection");
操作的表:
* 启动流程实例
* `act_hi_actinst` 流程实例执行历史信息
* `act_hi_identitylink` 流程参与用户的历史信息
* `act_hi_procinst` 流程实例的历史信息
* `act_hi_taskinst` 流程任务的历史信息
* `act_ru_execution` 流程执行信息
* `act_ru_identitylink` 流程的正在参与用户信息
* `act_ru_task` 流程当前任务信息
7、任务查询
使用TaskService根据流程定义的key,任务的负责人来进行查询
核心代码:
List<Task> taskList = taskService.createTaskQuery()
.processDefinitionKey("myEvection") //流程Key
.taskAssignee("zhangsan") //要查询的负责人
.list();
8、任务完成
使用TaskService用任务id完成任务
核心代码
TaskService taskService = processEngine.getTaskService();
taskService.complete("id号");