在上篇中介绍了pom和启动,这篇重点介绍activity中的八大服务、流程图的画法、一些关键表信息
1、八大服务
通过RepositoryService部署流程文件,部署完成后通过RuntimeService对运行流程操作,对单个任务使用TaskService进行完成、指派,通过HistoryService对历史进行查询
- RepositoryService:提供一系列管理流程部署和流程定义的API。
- RuntimeService:在流程运行时对流程实例进行管理与控制。
- TaskService:对流程任务进行管理,例如任务提醒、任务完成和创建任务等。
- IdentityService:提供对流程角色数据进行管理的API,这些角色数据包括用户组、用户及它们之间的关系。
- ManagementService:提供对流程引擎进行管理和维护的服务。
- HistoryService:对流程的历史数据进行操作,包括查询、删除这些历史数据。
- FormService:表单服务。
2、流程图
部署前需要画流程图,流程图本质是一个xml文件,如果有能力的话,可以直接编写后缀为bpmn
这样写出发非常熟,不然出错无法找,我用的eclipse,有对应的插件进行
安装eclipse插件:Activiti Designer插件;地址:http://www.activiti.org/designer/update/
菜单栏->help->install new software后点击add,复制上面的网址到location,name随便取,我已经安装了,就不安装了,如果是用ieda的朋友安装我就不介绍了,但是eclipse的文件到idea会有乱码,而且样式看起来也没有eclipse舒服
下面是我之前其他项目的流程,之前不是用activiti做的,学习的时候我就用它做实验了,主要用到了开始事件、结束事件、排它网关、用户任务四个
画图时需要关注eclipse的properties窗口
选中空白处显示流程id和名称和其他信息
选中任务显示任务的id和名称
在main config中把这个任务指派给对应的角色或者个人进行审批
选中某一条线在main config中设置条件,在listeners中添加监听器
线条的event类型也不一样,需要根据具体的实际情况进行选择,我这里选择的事take,如果是审批拒绝就走对应的linster,${refuseListener}是spring的bean的名称,listener主要是对业务进行操作,这里可以获取到流程实例id,业务key,包括变量,变量需要自己上一步审批的时候放进去,流程实例id不用自己放,业务key是在启动的时候放入的。
3、关键表信息
act_ge_bytearray 二进制数据表 ,存放部署的流程数据,文件内容和图片
act_ih_comment 历史意见表 存放一些审批信息
act_re_procdef 流程定义数据表 流程定义的基本信息
act_hi_taskinst 历史任务实例表
act_hi_identitylink 历史流程人员表
由于表比较多,我就不全部截图了
act_hi_actinst 历史节点表
act_hi_attachment 历史附件表
act_hi_detail 历史详情表,提供历史变量的查询
act_hi_procinst 历史流程实例表
act_hi_taskinst 历史任务实例表
act_hi_varinst 历史变量表
act_ru_execution 运行时流程执行实例表
act_ru_identitylink 运行时流程人员表,主要存储任务节点与参与者的相关信息
act_ru_task 运行时任务节点表
act_ru_variable 运行时流程变量数据表
activiti表命名都是act开头,中间是业务类型,最后是业务对应具体表
act_ge_ 通用数据表,ge是general的缩写
act_hi_ 历史数据表,hi是history的缩写,对应HistoryService接口
act_id_ 身份数据表,id是identity的缩写,对应IdentityService接口
act_re_ 流程存储表,re是repository的缩写,对应RepositoryService接口,存储流程部署和流程定义等静态数据
act_ru_ 运行时数据表,ru是runtime的缩写,对应RuntimeService接口和TaskService接口,存储流程实例和用户任务等动态数据
好了,这篇博客就到这里,下篇我们开始从代码层面进行流程的部署、审批和监听器使用