Activiti-5.22.0——java集成activiti演示demo步骤
Activiti-5.22.0——java继承activiti演示demo步骤
目录
1、引入依赖包:
(1)引入activiti依赖包:
在pom.xml中引入activiti相关依赖jar包:
(2)引入mysql驱动包:
在pom.xml中引入连接mysql的驱动jar包:
2、安装画图插件:
(1)检查idea是否勾选安全连接:
去掉下图中的勾选,否则不能下载actibpm插件。
(2)下载安装actibpm插件:
在下图位置,输入:actibpm,如果安装就会有,如果没有安装进行搜索安装,然后重新启动idea即可。
3、导入activiti表结构:
(1)编写代码:
(2)设置编码格式:
A、设置idea中文件编码格式:
B、设置idea启动软件编码格式:
将idea软件安装路径下bin/idea.exe.vmoptions或bin/idea64.exe.vmoptions,根据安装idea的版本是否是64位的,如果不确定连个文件都修改,使用notepad++等软件打开后,添加一行代码:-Dfile.encoding=UTF-8
(3)运行代码:
将编写的获取activiti表结构的代码手动运行。
(4)查看表结构:
查看自己对应数据库中创建好的activiti相关的表结构。Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。用途也和服务的API对应。
ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。
ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
ACT_GE_*: 'GE'表示general。通用数据, 用于不同场景下,如存放资源文件。
详细介绍activiti表结构见:https://blog.csdn.net/LSY_CSDN_/article/details/104713796
4、画测试流程图:
在idea中创建一个bpmn格式的文件,然后手动拖动开始、标签、结束等图标,然后进行连线,最终创建成一个简单的流程图。
5、部署测试流程:
6、启动一个测试流程实例:
其中参数processKey,为act_re_procdef表中的KEY_字段值,框架会自动获取到该值得最新流程图。
7、完成某人的测试流程实例:
其中参数taskId,为act_ru_task表中的主键ID字段值,表示某个人某个待办任务ID。
8、流程核心API:
(1)逻辑关系:
在activiti中一个完成工作流程从开发、部署、发起审批任务、领导审批到历史任务整个完整流程步骤以及其中相关核心API的对应关系比较清晰,如下图所示:
(2)ProcessEngine(流程引擎):
ProcessEngine是activiti的流程引擎,是最核心的类,其他的类都是由它而来。产生方式如下:
可以产生RepositoryService:
可以产生RuntimeService:
可以产生TaskService:
可以产生HistoryService:
(3)RepositoryService(仓库服务):
RepositoryService是Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片,如果使用的是数据库存储模型,那么bpmn文件和流程图片就都会存储在数据库表中。
仓库服务产生方式:
仓库服务可产生DeploymentBuilder定义流程部署的相关参数:
仓库服务可以删除流程定义:
(4)RuntimeService(流程运行服务):
RuntimeService是activiti的流程执行服务类。可以从这个服务类中获取很多关于流程执行相关的信息。产生方式:
(5)TaskService(任务服务):
TaskService是activiti的任务服务类。可以从这个类中获取任务的信息。产生方式:
(6)HistoryService(历史服务):
HistoryService是activiti的查询历史信息的类。在一个流程执行完成后,这个对象为我们提供查询历史信息。产生方式:
(7)ProcessDefinition(流程定义):
ProcessDefinition是流程定义类。可以从这里获得资源文件等。产生方式:
(8)ProcessInstance(流程执行实例):
代表流程定义的执行实例。如范冰冰请了一天的假,她就必须发出一个流程实例的申请。一个流程实例包括了所有的运行节点。我们可以利用这个对象来了解当前流程实例的进度等信息。流程实例就表示一个流程从开始到结束的最大的流程分支,即一个流程中流程实例只有一个。产生方式:
(9)Execution(执行流):
Activiti用这个执行流去描述流程执行的每一个节点。
一个流程中,执行流可以存在多个,但是流程实例只能有一个;
当流程按照规则只执行一次的时候,那么流程实例就是执行流。
更多推荐
所有评论(0)