一、实现驳回效果:使用互斥网关来设置判断条件,驳回时就指向指定的任务节点
二、动态设置审批人:在任务节点上使用JUEL设置一个代理人变量,上一个任务在完成时动态传入该变量的值
三、任务的候选人只有一个人的时候,可以不用候选人机制,只使用代理人就行
四、实现驳回至对应的处理人:
- 如果上一个任务的节点是一个人,则直接使用代理人变量(不会变)就行,不用重新指定代理人。
- 如果上一个任务的候选人是一个用户组,则可以从任务历时表中找到对应任务的处理人,然后将该人设置为驳回后任务的代理人。
五、实现用户自定义流程:
- 项目集成流程设计器,用户自己设计流程
- 我们对固定的节点元素进行封装,用户只需要选择相应的类型任务。后台使用BpmnMode类来使用代码生成流程文件。
六、自定义表单
- 外置表单:使用activiti自带的formkey关联表单定义,表单可以前端生成对应的json,存储到数据库中,然后用户提交的数据保存到流程变量act_ru_variable表中。另外建一个中间表,保存对应的数据属性与值。前端可以直接用来数据查询。在MySQL7以上可以直接保存json对象,能实现各种查询。
- 内置表单:直接跟bpmn文件聚合在一起的
七. 我的
我的一个集成项目:springboot集成activiti6.0
https://github.com/fanrendale/springboot-activiti
主要实现:
- springboot集成activiti6.0
- 自定义流程,只有填写任务和审批任务,可以设置无数个。
- 对流程的方法的封装,在ProcessService中。
此为个人经验,有更好方法的可以评论互相交流