HOME> 游戏攻略> 纯干货,activiti入门看这一篇就够了‼️‼️

纯干货,activiti入门看这一篇就够了‼️‼️

纯干货,activiti入门看这一篇就够了‼️‼️

详细讲解了一个activiti流程的从生到死,及每个节点数据库表的变化

文章目录

📕一、编写流程文件🖥️二、部署流程🔖 三、启动刚刚部署的流程生成流程实例🧣 四、审批通过第一个节点📌五、审批通过第二个节点流程结束🧣七、最后的话

🔊本文耗时五小时,纯干货,讲解了一个activiti工作流的条件流程从部署到结束每个阶段数据库各个表的变化过程,看完此文相信你对acticiti的表结构会有一个清晰的认识,你的支持对我非常重要‼️,觉得有帮助记得点个赞哈👍

📕一、编写流程文件

🖥️二、部署流程

部署时只需要部署xml文件即可,流程图png文件会在act_ge_bytearray表自动生成,当然也可以手动选择png文件

/**

* 部署流程定义

*/

@Test

public void deploy() {

Deployment deployment = repositoryService.createDeployment() // 创建部署

.addClasspathResource("diagrams/line.bpmn20.xml") // 加载流程资源文件

.addClasspathResource("diagrams/line.png") // 加载png文件可选

.name("line流程") // 流程名称

.deploy(); // 部署

System.out.println("流程部署ID:" + deployment.getId());

System.out.println("流程部署Name:" + deployment.getName());

}

act_ge_bytearray 二进制数据表将生成两条记录,一条xml文件一条流程图文件

act_re_deployment 部署信息表 将生成一条部署记录

act_re_procdef 流程定义数据表 将生成一条数据

id生成规则:流程key+版本+随机数

🔖 三、启动刚刚部署的流程生成流程实例

/**

* 启动流程实例

*/

@Test

public void start() {

ProcessInstance pi = runtimeService.startProcessInstanceByKey("line"); // 流程定义表的KEY字段值

System.out.println("流程实例ID:" + pi.getId());

System.out.println("流程定义ID:" + pi.getProcessDefinitionId());

}

act_ru_execution 运行时流程执行实例表 生成两条记录,一条根记录 一条主线记录

act_ru_task运行时任务节点表 生成一条记录,就是图中这个

act_ru_identitylink 运行时流程人员表,主要存储任务节点与参与者的相关信息 表生成一条记录

act_hi_identitylink历史处理人表生成记录

act_hi_procinst历史实例表生成一条记录

act_hi_taskinst历史人物表生成一条记录

act_hi_actinst历史节点表生成两条记录

🧣 四、审批通过第一个节点

@Test

public void completeTask2() {

Map variables = new HashMap();

variables.put("msg", "拒绝");

taskService.complete("100005", variables);//10005为taskid

}

审批通过后再看各个表变化 由于我们是拒绝,所以会走这条线

监听器中固定写死了审批人

新生成了一个task任务

act_ru_task 运行时任务节点表

act_ru_identitylink 运行时流程人员表,主要存储任务节点与参与者的相关信息

act_hi_identitylink 历史流程人员表

act_hi_detail 历史详情表,提供历史变量的查询

act_hi_procinst 历史流程实例表 没变化

act_hi_taskinst 历史任务实例表

act_hi_actinst 历史节点表

act_hi_varinst 历史变量表

act_ru_variable 运行时流程变量数据表 新生成一个运行时变量

📌五、审批通过第二个节点流程结束

/**

* 完成任务

*/

@Test

public void completeTask() {

taskService.complete("102504"); //102504为任务id

}

再来看下各个表变化

act_ru_execution 运行时流程执行实例表 为空了

act_ru_task 运行时任务节点表 为空了

act_ru_identitylink 运行时流程人员表,主要存储任务节点与参与者的相关信息 为空了

act_hi_identitylink 历史流程人员表 没变化

act_hi_detail 历史详情表,提供历史变量的查询 没变化

act_hi_procinst 历史流程实例表 变成已结束了

act_hi_taskinst 历史任务实例表 变成结束了

act_hi_actinst 历史节点表 变成结束了多了个结束节点

act_hi_varinst 历史变量表 没变化

act_ru_variable 运行时流程变量数据表 为空了

🧣七、最后的话

🖲要熟练掌握技巧,一定多多练习:纸上得来终觉浅,绝知此事要躬行。