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_,完成。

  • 相关阅读:
    需求分析模板
    【转】卓有成效的敏捷开发流程
    敏捷建模者的个性
    四个凡事:有章可循,有人负责,有据可查,有人监督
    全局变量初始化的重要性
    Windows下虚拟串口工具:com0com可做串口调试用
    【转】各种加解密算法比较
    WSASocket函数未定义和重定义错误
    海明校验码
    stl学习总结
  • 原文地址:https://www.cnblogs.com/sheeva/p/4655354.html
Copyright © 2011-2022 走看看