activit6.0使用经验

最近在做公司B端业务,要用到工作流,上一篇文章记录了技术调研的结果,现在开始记录使用时的架构设计和常见的问题:

一:架构体系:

我们考虑到扩展性,易用性,隔离性,动态性,把表单和审批人设置的功能都拆成了单独的服务所以我们的工作流审批模块主要包括:

1.原生的activiti6引擎:负责流程流转

2.外置表单服务:流程部署后根据流程实例设置所有节点的表单,流程启动时通过外置表单引导用户填写信息

3.用户节点服务:流程部署后根据流程实例设置所有的节点的用户组,在任务节点开始通过监听器到用户服务获取该节点的审批人

考虑到模型图的正确性,提供β测试版本,测试通过发布后用户可见可用

下面给个时序图:

 

 

 

二.开发过程遇到的问题(持续更新)

 1.β版本和release版本的设计:

 activit6官方提供的app设计流程有个流程版本号的字段,但是实际使用了下没有生效,数据库并没有更新

方案:利用act_re_procdef 表 engine_version_来做,自定义sql执行,流程创建时该字段为空,发布后设置为1,前端返回数据增加判断

2.自定义sql执行的bug

NativeProcessDefinitionQuery processDefinitionQuery = repositoryService.createNativeProcessDefinitionQuery();
processDefinitionQuery.count() 有bug,参数类型不匹配,数据为空报错,改为:processDefinitionQuery.list().size();

 

持续更新,项目上线后继续更新

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章