前段时间,由于某项目需要审批流程,最后选用了activiti工作流引擎,版本6.0.0。
对于规范的审批流程来说,用工作流引擎的魅力不言而喻了。审批流程可视化,审批过程由引擎根据条件状态自动进入下个流程,自动流转到审批人去操作。因此,后期流程若改变了,在配置流程图时做相应修改,代码逻辑相对改动较少,对后期维护来说较为友好。
提个插曲,笔者当年本科毕业的毕设就是独立完成的科技项目审批系统,当时答辩时,肖老师和蔼地问,“有用BPMN(工作流)吗?”(Business Process Modeling Notation)答曰:“没有,都是通过状态判断来实现的。”然后,肖老师微笑地点点头,“那这样不能拿优秀毕业论文哦。”(最后得分89,90+为优秀毕设,学院一般控制比例3%这样)。从那时起,开始对工作流有了第一认识,并认为是挺高大上的东西。今天写此篇也是为了对母校和老师们的培养表示感恩!
这里主要简单提一下在使用activiti过程中遇到的问题和用法,将选笔者做的某个简单审批流程例子来举例说明,力求让读者有个概念。
1、创建流程模型
模型名称是指某项需要审批的业务流程名称。
key是给这个流程定义的唯一标识(正常是根据自己程序代码对该流程来命名)
2、在线设计
在线设计审批流程图如下
这个流程非常简单,就是发起申请,指定角色审批,审批通过结束,审批不过,打回去重新修改后再审批。(流程未结束可撤销申请)
这里要特别提醒,制作流程图时,两个环节的连线必须都有红点点,否则连线是无效的。需要特别注意,如下图:
以薪酬岗审批为例,分配用户指定薪酬岗(在发起申请后指定某类角色可见),候选组就是角色名称salary。