Activiti7.0实战学习(七):流程定义信息之删除

背景
  1. 数据库中要有必要的数据信息。比如流程定义表,流程定义的部署,流程实例的启动。
  2. 根据ID删除,根据的是act_ru_deployment表的id进行删除的。
  3. 这个删除操作影响了哪些表中的数据记录呢?
  4. 流程定义信息的删除,操作的是act_ru_deployment表。是因为我们部署流程定义的信息的时候,其实就是把bpmn中的数据写到数据库中而已。因此,它删除的时候,没有找act_ru_procdef表,但是删除后,这张表的相关数据也会被删除。
过程
  • 数据库中表act_ru_deployment的数据记录
    在这里插入图片描述
  1. 如果删除了一个不存在的ID会Activiti是怎么应对的?
    在这里插入图片描述

  2. 控制台打印(Activiti是抛出一个异常)
    在这里插入图片描述

  3. 删除ID是1的代码逻辑
    在这里插入图片描述

  4. 删除ID是1的流程定义信息后,数据库影响了哪些表?
    act_ru_deployment表中关于这条id的数据被删除
    在这里插入图片描述
    act_ru_procdef表中相关联的数据被删除
    在这里插入图片描述
    act_hi_taskinst表中数据变化
    在这里插入图片描述
    act_hi_actinst表中数据变化
    在这里插入图片描述
    从这些数据表的变化,可以逻辑推出,受影响的就是流程定义表,流程部署表,而关于这个流程的实例和这个实例已经完成的历史记录数据是不会受到影响的。

  • 注意事项
    因为流程定义信息和流程部署是一对一的一个关系,也就是数据库中会这样存储,一条流程定义记录和与之对应的一条流程部署记录。

    然而,一条流程部署记录对应无数个流程实例。因此,当还有存在实例未完成的情况下,还是上面的删除逻辑,会删除流程定义信息吗?答案是不能。那又怎样删除呢?多给一个参数true即可。repositoryService.deleteDeployment(“1”,true); 默认是false。

小结
  1. 要理解流程定义信息的来源,流程定义信息的部署,流程实例的启动。
  2. 一条流程定义信息记录对应一条流程部署信息记录。
  3. 一条流程部署信息记录对应无数流程实例。
  4. 删除的时候,操作的是流程部署表,而不是流程定义表。
  5. 删除的注意事项。这个理解其实就是基本的业务逻辑的理解。如果还有任务没有完成,但是这个时候我却把元数据删除了,后续任务还怎么能流转呢?这里的元数据其实就可以理解为流程定义信息。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值