Activiti工作流小结

本文分享了在项目中使用Activiti工作流的经验,探讨了其局限性及如何通过自定义表单和流程机制来增强灵活性,实现中国式全自由流程。介绍了节点类型、动态表单的实现,并对比了自建流程机制与Activiti+自定义动态表单的优劣。
摘要由CSDN通过智能技术生成

最近公司做的项目用到了工作流,便买了一本书进行学习和应用,

感觉activiti限制颇多,很多功能实现不了中国式全自由流程,

自由流是一种选择,但是因为不能让用户选择领导部门,所以就把这个方案给否了。

然后就开始模仿activiti机制自己写一套流程机制,

从节点的类型【顺序节点、分支节点、结束节点、子流程节点等】

到自定义表单,表单对应当前模型,每个节点也对应的相关展示表单项,实现动态控制流程和表单

目前这种实现方案还在继续使用,但总归自己封装的,没有activiti机制封装的好

所以又采用 acitviti+自己定义的动态表单 实现一版,作为后续升级更新版本

个人感觉这个版本还挺方便的,虽然开发工作量大,

但后期使用和维护人员会很轻松,开发可以不介入创建流程等操作。

对于实现分方法做一个简单的总结,不足之处欢迎大家给我指出。

第一步:activiti-modeler模型设计器,在上几篇文章中有体现,包括代码什么的都很详细,具体的项目再百度云盘里,文章结尾有连接。

 设计节点期间,我没有采用activiti自带的用户和组相应机制,所以我这里除了开始节点、结束节点、和发起表单节点以外采用的都是统一格式

fe83f749c03263072d970b73c4f396c15bb.jpg

采用会签节点来放置一个 transactorIdList 容器,这样做比较灵活

我们可以在代码中动态获取下一节点id,然后根据配置的节点处理人动态来创建代办。

##############################################################################################

获取下一节点:

3fbf74b9a854c468ff81c310a9aedc5b762.jpg

a3a9b4bcacf8ac9b914f6eed58900f714ae.jpg

之后根据返回的节点id(这里包含了网关,任务接单,以及子例程等情况), 根据下一节点id 获取下一节点处理人这一块是自己配置的。

d48f91c103a5c41de597552efa2dd73b693.jpg

对于网关,可在线上写流转条件, 然后在 上图 variables动态设置流转条件。

###############################################################################

 

流程发布时 保存节点和子节点信息

020f9bf35a8d4c1e38209ee9eff18a3bbc0.jpg

记得要去重, 这里我是根据节点id来去重的。

###################################################################################################

 

配置好以后在办理过程中就很简单了,回显方面可采用 自己创建的动态表单+历史表 创建视图进行回显。

如果时间允许,自己定义实例表单,存储自己需要的节点处理历史更好。

最理想的方式就是 activiti流转机制+动态表单+动态处理人   

activiti本身自带的组、用户、历史等全部可以丢掉,

发起办理时的表单、处理的时的表单回显(这里使用的freemaker直接生成的html代码块)、办理时获取节点处理人等我就不一一贴代码,业务不同,表结构不同获取方式也不同,

处理时遇到的子流程、调用活动、撤回、驳回、非正常结束等一些特殊节点和功能,会有特殊介绍。

 

运行效果:

模型配置表单

e066a0f723a8ded52fd0b5c7a20406731d1.jpg

节点配置表单和处理人 :

49f7c7be64eda6fdeffc16f58a99def2dab.jpg

转载于:https://my.oschina.net/zxm1618/blog/3009505

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值