对于企业开发中工作流组件的思考与想法
2017年一直在做企业内部的各种业务系统,主要有OA、政府公共服务平台、企业内部的物料管理系统。这些系统中都牵涉到工作流的应用。在这些项目实施的过程中沉淀下的一些想法与大家一同分享。
第一个项目是一个政府公共服务平台,主要功能是企业在线办事功能,涉及到企业在线填报单据然后流转到政府各个部门去审批。对工作流的主要要求:可以按地区上下级进行人员选择;有退回功能,各个节点完成后要对更新相关业务表。基于这个需求对市面上的.net工作流进行了很多调研,主要问题有:
- 开源流程引擎(Slickflow)在设计器方面比较弱,不能直接交付给用户使用。
- 商用的工作流考察有f2bpm,功能满足,但对小项目来说授权费有点贵。
最后脱离.net范畴去找,发现java下的开源activiti5 流程引擎,文档齐全,成功案例也很多,提供http restful接口。最后在其基础上做了些二次开发完成项目。
第二个项目是企业的一个物料审批系统,有工作流的需求,但要求不高,不需退回等操作,某一环节审批不通过,直接结束流程即可。当然用activiti5也可以完成,但对一个小项目来说感觉过于重量级了,调用restful接口的话事务处理方面要考虑的事情太多。
所以诞生了一个想法,写一个轻量级的可嵌入的工作流组件(不叫框架,因为它完成的事情很少)。本着不重复造轮子的思想,先搜索了一下网上有没有同类项目。园子里萧秦 写的微型工作流引擎 让人眼前一亮,可惜后续没有更新,也没有dll放出来让试用。
参考前人的经验,我对这个微型工作流的要求如下:
- 方便与现有系统集成。
- 可共享原系统中的事务; 用户管理;
- 节点处理用户选择方法可扩展。
- 支持流程中的顺序、分支、并行操作。(退回暂不支持)
- 简易但不简单的流程设计器。
对于流程设计器的定义:简易但不简单。 我们不废话,看一下钉钉上的流程设计器。
没有复杂的拖拽功能,简单容易操作,面向最终用户。
目前这个工作流组件暂定名称为CMFlow, 目前引擎部分已完成50%。这里招集有工作流感兴趣,志同道合的兄弟加入开发。为.net的开源贡献一份力量。有兴趣的朋友加的扣扣: 523656159。
年后最后一天上班,语言组织有点乱。敬请谅解,对于工作流的想法,大家可以评论区与我交流。