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

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

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

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

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

 

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

 

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

 

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

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

 

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

 

 

 

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

 

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

 

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

posted @ 2018-02-09 13:48  在路在的张  阅读(580)  评论(1编辑  收藏  举报