zoukankan      html  css  js  c++  java
  • Activiti如何替换已部署流程图

      首先交代下背景:我们有一个已经上线的activiti工作流系统,对于流程图的操作已经封装好部署,查看,删除的接口。此时客户提出要修改个别流程图里的节点名称。

      我的第一个想法就是本地修改流程图bpmn文件,然后去客户端先调用删除接口删除旧流程图,然后调用部署接口添加修改后的流程图,然而事实上,因为系统已经上线,此时存在大量运行中的工作流数据,一旦执行删除操作,删除流程图的同时,会把相关的工作流数据全部清空。

      我的第二个想法是,在客户端保存流程图的地方直接修改节点名称。结果找了一下发现activiti的流程图是以二进制代码的形式保存在数据库里的,这也不是说就一定不能改,但是肯定不好改。

      最终的做法:

      观察数据库结构得知,流程图name_、key_等字符型属性保存在表ACT_RE_PROCDEF里,而bpmn、png等文件属性保存在表ACT_GE_BYTEARRAY里,两张表通过DEPLOYMENT_ID_列进行一对多关联。

      所以,可以将修改后的新流程图直接用部署接口添加上,将旧流程图的ACT_GE_BYTEARRAY表数据删除,将新流程图的ACT_RE_PROCDEF表数据删除,然后将新流程图的ACT_GE_BYTEARRAY表数据里的DEPLOYMENT_ID_修改成旧流程图ACT_RE_PROCDEF表数据的DEPLOYMENT_ID_,完成。

  • 相关阅读:
    Linux 不常用命令总结
    Linux系统修改防火墙配置
    更换git用户名或密码
    Linux 笔记
    laravel 上传文件到亚马逊 aws s3
    curl 发送请求的时候报错
    laraver + pusher + vue实现聊天室
    linux服务器查看公网IP信息的方法
    剑指offer :从尾到头打印链表
    剑指offer:替换空格
  • 原文地址:https://www.cnblogs.com/sheeva/p/4655354.html
Copyright © 2011-2022 走看看