对于企业开发中工作流组件的思考与想法

2017年一直在做企业内部的各种业务系统,主要有OA、政府公共服务平台、企业内部的物料管理系统。这些系统中都牵涉到工作流的应用。在这些项目实施的过程中沉淀下的一些想法与大家一同分享。

第一个项目是一个政府公共服务平台,主要功能是企业在线办事功能,涉及到企业在线填报单据然后流转到政府各个部门去审批。对工作流的主要要求:可以按地区上下级进行人员选择;有退回功能,各个节点完成后要对更新相关业务表。基于这个需求对市面上的.net工作流进行了很多调研,主要问题有:

  1. 开源流程引擎(Slickflow)在设计器方面比较弱,不能直接交付给用户使用。
  2. 商用的工作流考察有f2bpm,功能满足,但对小项目来说授权费有点贵。

最后脱离.net范畴去找,发现java下的开源activiti5 流程引擎,文档齐全,成功案例也很多,提供http restful接口。最后在其基础上做了些二次开发完成项目。

第二个项目是企业的一个物料审批系统,有工作流的需求,但要求不高,不需退回等操作,某一环节审批不通过,直接结束流程即可。当然用activiti5也可以完成,但对一个小项目来说感觉过于重量级了,调用restful接口的话事务处理方面要考虑的事情太多。

所以诞生了一个想法,写一个轻量级的可嵌入的工作流组件(不叫框架,因为它完成的事情很少)。本着不重复造轮子的思想,先搜索了一下网上有没有同类项目。园子里萧秦 写的微型工作流引擎 让人眼前一亮,可惜后续没有更新,也没有dll放出来让试用。

参考前人的经验,我对这个微型工作流的要求如下:

  1. 方便与现有系统集成。
  2. 可共享原系统中的事务; 用户管理;
  3. 节点处理用户选择方法可扩展。
  4. 支持流程中的顺序、分支、并行操作。(退回暂不支持)
  5. 简易但不简单的流程设计器。

对于流程设计器的定义:简易但不简单。 我们不废话,看一下钉钉上的流程设计器。

对于企业开发中工作流组件的思考与想法对于企业开发中工作流组件的思考与想法

没有复杂的拖拽功能,简单容易操作,面向最终用户。

目前这个工作流组件暂定名称为CMFlow, 目前引擎部分已完成50%。这里招集有工作流感兴趣,志同道合的兄弟加入开发。为.net的开源贡献一份力量。有兴趣的朋友加的扣扣: 523656159。

年后最后一天上班,语言组织有点乱。敬请谅解,对于工作流的想法,大家可以评论区与我交流。

相关推荐