Springboot2+activiti7开发工作流服务项目(001)——启动流程实例 - Go语言中文社区

Springboot2+activiti7开发工作流服务项目(001)——启动流程实例


前言:

activiti7在我写下这篇博客之前的12天刚更新 7.0.0.Beta3 ,之前一直用的是 Beta1开发。在发布Beta2由于正是开发进度紧张时期,就没换。本以为pom.xml中直接把1换成3应该问题不大,结果......

问题1:

这个是官网在Beta1时推荐使用的依赖,当我把1改成3的时候,项目直接全面飘红,activiti核心类全不见了,直接凉凉~~

小结:

折腾半天发现,activiti在Beta3的时候把这些核心包加入starter里面了,你只需要直接添加starter即可

好的,现在项目一点错误没有了,启动也没有异常,和原来一样,你说是不是美滋滋???

问题2:

你照常启动流程实例,你会发现一个奇异的现象。

解释一下上面一段代码:

你通过runtimeService对象调用重载方法启动1个流程实例,参数分别是:标志流程定义的id,关联业务表的id,流程变量集合。

这段代码无论你是用activiti 5/6/7 Beta1 执行效果都是一样的,尤其是流程变量,集合中的一个键值对用一行数据存储在变量表中。

但是换成了Beta3你会发现你的运行时流程变量表 + 历史流程变量表 统统的多出来一倍数据。(绿色框框的3条数据是我们希望得到的全局变量,而下面那3条task_id_字段有值的是局部变量

问题的关键就是流程变量的数据翻倍了,并不是我们想要的这样,数据大量冗余,并且很有可能你代码中的查询方法会抛出异常,例如:

 

小结:

Beta3这次更新主要删掉了所有类名带有activiti5字眼的类。(下面是GitHub截图),按道理说不应该对其他改动过大,尤其是启动流程实例这种最最核心的API,所以我觉的问题可能出现在配置上,也许哪个傻逼做了某个配置,且默认就开启了。你使用的时候根本察觉不到。

查看ActivitiProperties.java文件

这么重要的配置居然提都不提,日你地吗呦!

结论:

启动流程实例,如果想要保持和以前一样,yml中添加如下配置,一切如常:

结束语:

分享这次经历,主要是分享一个学习的过程,结论其实在知道答案之后并不重要,也没什么可说的。

但是我相信也有很多兄弟在更新框架版本,学习最新版本框架这类问题上也出现过代码异常等等诸多问题,尤其是越新的东西,学的人本来就少,研究完了愿意无私分享的更少。希望这篇文章能给各位兄弟一个参考的方向。

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/daima_caigou/article/details/84450237
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-27 13:16:14
  • 阅读 ( 2234 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢