首先:我是已经有了一个初步的(开发中的)系统,出于业务需要需将工作流集成到我的系统当中,现将我的集成过程记录下来,供大家参考。
step1:在pom中配置流程引擎的相关依赖,如下图:
step2:导入工作流设计器的前端样式文件(这几个文件网上有很多)只需要导入下图几个并放在对应的位置就好:
网上的文件大多放置在public 文件夹下面,笔者为了统一管理就把他移到resource/static文件夹下面了(Ps:文件的移动或导致js等文件不能被加载,故可能需要修改js路径)
step3:添加工作流模型列表以及流程列表的页面
这一部分的实现参考了 Ruoyi这个开源项目的一个项目扩展,不过这个项目的结构是多模块的,需要大家根据自己的项目结构进行调整。地址:http://doc.ruoyi.vip/#/standard/xmkz (PS:多模块集成工作流)。
哎呀集成的过程网上文档很多,就不细说了;下面来总结一下我遇到的坑:
1.下面这个方法访问不成功:是因为需要带参数;空查询就抱404
2.需要定位资源文件的位置(Ps:springBoot 不需要配置项目名称,其他的框架需要 projectName/service )
配置后这三个文件需同步更改为上述配置路径:
3.国际化编码的问题:
需导入中文版的json,并修改app.js里面的如下配置:这个在上述开源项目的文档里面就有
4.如果是直接使用Ruoyi这个项目框架将多模块改为单模块的话,需要做如下修改(Ps:原框架的header 是要带参数的,某则会报 activiti/model/model 404 ) model 以及process 文件夹下面的页面都需要做如下修改。
5.解决:“org.xml.sax.SAXParseException: cvc-complex-type.4: 元素 'sequenceFlow' 中必须包含属性 'sourceRef'”报错
参考了:https://blog.csdn.net/starjuly/article/details/78805136
6.启动时候:Action: Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
笔者是因为写了两个关于Activiticonfig的文件,并在其中使用了相同的bean,导致这个错误;我选择删掉了其中一个,在yml 的spring 层下做了如下配置:(PS:yml 语法限制特别的严格,特别注意每个层次的代码要对齐,不可以有多余的空格,某则报错或配置不生效,挺麻烦的)
7.工作流配置过后,在启动文件里面需要做如下配置,避免被一些安全机制拦截等等
先写这么多了,欢迎大家提问讨论,小菜鸡一枚,希望和大家共同学习。