今年是2021年3月17号,本次项目全权负责了工作流开发,使用的版本的activiti5.22,使用的过程中结合需求,遇到了一些坑,其实也不算是坑吧。
趁着熟悉的很,写几篇实战解决问题的博客,注重遇到问题,解决问题。基本原理百度满天飞这里不在赘述。特此纪念。
总体来说,activiti已经很不错了,毕竟开源社区的东西,在面对开发时候总是会遇到大大小小的困难,有的是API不支持的,有的是掌握不是很熟悉的,反正问题都有一堆。我想写一系列关于activiti的开发经验,以供有需要的朋友阅读。
开篇提出几个问题吧,这也是我一开始没写代码之前的会考虑的问题。我总是写代码之前留时间想代码怎么写?API支持那些场景需求?API还有那些我不知道的?等等。
比如:租户支持吗?
第一级userTask节点的只允许当前部门领导审批怎么实现?
我们要和RBAC结合起来,基于角色的审批怎么搞?
可以写一次代码,大多数场景都适用,不需要再一次开发能做到吗,只需要新增发起流程实例部分,该怎么设计?
怎么获取当前userTask节点到下一个节点userTask之间的判断条件表达式和文字,前端动态展示给用户选择走哪一步?
businessKey怎么使用,怎么定义自己的业务表关联activiti?
怎么获取userTask节点的candidategroups的角色值?
applyuserid流程发起者的信息怎么玩?
流程发起者被驳回之后,重新发起审批怎么设置userTask?
怎么搞禁用启用?
…
基于这些问题,本次自己多多少少走了些弯路,但是最终解决了,效果还是算满意。感谢这么牛的开源工作流引擎。
再次先列一个大纲,之后从这些细讲。
一、基本的表有哪些?大概分别干什么的?
二、基本的API讲解,概念篇:流程定义、流程部署、启动流程实例、完成任务。流程实例、执行对象、userTask任务。
三、RBAC怎么结合activiti?
四、项目经验,表的设计关联activiti表,实现写一次,通用于大多数流程定义,新增流程定义无需再一次开发,只需要启动流程实例时候调整参数传递即可。
API不够用,不灵活,结合部门怎么做?分页条件不够怎么办?activiti表新增字段、手写原生查询SQL语句。
五、项目经验,高亮当前走过步骤、展示审批状态(已批和即将审批等)?公共方式封装的工具代码。
activiti5.22工作流引擎真实项目案列–第一部分(表结构)
activiti5.22工作流引擎真实项目案列–第二部分(基本的API讲解,概念篇)
activiti5.22工作流引擎真实项目案列–第三部分(RBAC怎么结合activiti)
activiti5.22工作流引擎真实项目案列–第四部分(项目经验1)
activiti5.22工作流引擎真实项目案列–第五部分(项目经验2)
activiti5.22工作流引擎真实项目案列-第六部分(项目经验3:类钉钉,activiti5.22发起流程时候动态指定审批人)