前言

    如何基于开源流程引擎开发OA系统?开源流程引擎哪个好?把它整合到自己的产品里难不难,有没有啥风险?这是大家经常遇到的问题。笔者从2006年开始参与流程引擎开发,经历了三代流程引擎研发,支撑过上千个项目应用,把遇到的一些问题总结出来,给大家参考。

一、代码量大,研究困难,尤其涉及底层代码修改,无法下手

   目前的开源流程引擎越做越复杂,就以flowable6.4.1为例,源代码工程就103个,如果想深度掌握,必须要研究源代码,但这么多的代码如何研究,对于没有BPM研发经验的人来讲难度是比较大的,也许有人说我不用研究源代码,就调用它的API就可以了,你看完文章下面的内容就知道了可不可以。
 

二、如何扩展或定制开发满足中国特色需求

   有些团队在开发BPM的时候,基于开源流程引擎API接口进行扩展开发,但目前市场上主流开源流程引擎,如JBPM、Activiti、Flowable、Camunda,均是老外开发的,底层架构设计较好,但功能上不能满足中国特色的流程应用需求,比如:抄送、会签、加签、传阅、跳转、任意流、退回、取回、撤销、一人多部门等需求,这些需求均需要扩展开发才可以,对于没有BPM研发经验的团队来说,开发周期长,风险较大。

三、流程引擎自带的电子表单均不能满足复杂应用需求

   虽然开源流程引擎也带了电子表单模块,基本上比较简单,都是字段平铺的往下罗列,对于满足国内企业级的应用开发差距很大,必须重新开发才可以,这就涉及到电子表单的开发工作量,以及表单跟流程引擎集成的问题,一个功能强大的电子表单开发,其难度和工作量不低于流程引擎的开发,需要有顶层的架构设计思想,功能性、性能和扩展性要综合考虑,涉及到的细节问题很多。国内泛微BPM的电子表单功能较为强大。

四、流程引擎自带的组织用户模型不能满足中国特色需求

   开源流程引擎自带了简单的组织用户表,比如camunda流程引擎自带了用户表(act_id_user)、用户群组表(act_id_group)、用户群组关联表(act_id_membership)这几张表,功能十分简单,基本上满足不了国内企业级应用需求,需要单独涉及组织机构表,然后跟流程引擎进行集成。常见需求有:

  • 1、流程支持多组织架构,集团总部、子公司多级组织架构,国内组织架构涉及到有组织、部门、用户、岗位、职务多个要素,这些要素间有复杂逻辑关系。
  • 2、流程选人支持一人多部门多岗位,比如张三是公司副总经理,同时也是产品研发部的部门经理;
  • 3、流程选人规则动态灵活,支持人员、部门、岗位交叉形式的动态选人,比如流程的某一节点的审批需要流程发起人所在部门的副经理以上职位人审批,这就是一个人员、部门、岗位三个维度的交叉动态选人规则。
  • 4、流程审批体现审批人部门和职位,比如:张三是公司副总经理,同时也是产品研发部的部门经理,那么当他参与会签审批一个流程的时候,是以副总经理的身份审批的,还是以部门经理的身份审批的,在业务上是有很多区分的。

五、开源流程引擎的界面基本不能满足国内企业应用需求

   目前市场上主流开源流程引擎,如JBPM、Activiti、Flowable、Camunda等的用户界面很难满足中国人应用习惯,其实国内企业对UI功能和体验要求很高的,还有每个企业领导的操作习惯和个人喜好,界面基本上要全部定制开发,而且要研究流程引擎后台接口,这部分工作量十分巨大。笔者曾经参与过一个集团级的BPM项目,采用的是IBM BPM平台,界面基本满足不了客户需求,最后界面全部重新开发,投入了很大的人力物力。

六、如何整合流程引擎,达到配置化开发,而不是硬编码

   如何把开源流程引擎整合到自己的产品里,应用起来很简单,最好是图形化配置即可,这个是有一定难度的,开源流程引擎官方给的DEMO里,都是调研API接口,需要硬编码才能把流程引擎用起来,对于我们产品设计,需要把这块抽象封装起来,通过图形化界面配置完成,比如流程会签、流程跳转这些功能,是常用的功能,好多项目都需要,不可能让每个项目都按照API自己开发实现,推广应用和维护成本很高。要把流程引擎玩好,把它整合到自己的产品里,实现配置化开发,对软件架构师有较高的要求,既要懂开源流程引擎技术,还要有架构设计思维。

七、遇到复杂流程应用需求难以应对

   互联网业务流程应用相对简单,基本是一个直线流程或者分支流程,但在大型集团型企业里,流程应用十分复杂,甚至是一些变态的需求,但从业务角度讲是合理的,IT很难拒绝业务,遇到这种需求,如何灵活应对?如果对流程引擎底层原理了解不深入,是很难应对的,最好勉强实现,问题也会很多,甚至写死代码,后期很难维护。

总结

   基于开源流程引擎研发BPM或者OA系统,问题远远不止这些,笔者仅仅是把常见的、重要的问题列了出来,给开发自主可控的BPM的团队提供参考,尽量少踩坑,也可以与我深度沟通,技术支持:www.yunchengxc.com。后续的文章中我们继续分享经验,分享踩坑经历。

基于开源流程引擎开发BPM或OA有哪些难点相关推荐

  1. 流程引擎课堂(二)| 基于开源流程引擎开发的BPM有那些难点?

    编者按:开源流程引擎哪个好?如何基于开源流程引擎开发BPM,存在哪些难点?本文从国内流程引擎市场的难点出发,分析了其中的利弊. 企业的流转离不开流程,一个好的流程管理系统可以为企业增效降本,增强企业综 ...

  2. 基于开源流程引擎Activiti5的工作流开发平台BPMX3

    2019独角兽企业重金招聘Python工程师标准>>> BPMX3平台是宏天软件在ESTBPM2的基础上,追随开源工作流平台Activiti5,由原班开发团队,历时一年,现重新推出一 ...

  3. 基于camunda开源流程引擎如何实现会签及会签原理解析

    一.背景 市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.由于jbpm.activiti.flowable这几个流程引擎出现的比较早, ...

  4. 开源流程引擎activiti、flowable、camunda选哪个好?

    市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.其中:Jbpm4.Activiti.Flowable.camunda四个框架同宗同源, ...

  5. osworkflow、jbpm、activiti、flowable、camunda开源流程引擎哪个好?

    市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.其中:Jbpm4.Activiti.Flowable.camunda四个框架同宗同源, ...

  6. java fixflow流程设计_Fixflow引擎解析(一)(介绍) - Fixflow开源流程引擎介绍

    简介 Fixflow是一款开源的基于BPMN2.0标准的工作流引擎,由Fixflow开源联盟组织(Fixflow OpenSource Union) 进行社区化管理,引擎底层直接支持BPMN2.0国际 ...

  7. 开源流程引擎该如何选择flowable还是camunda?

    一.功能方面对比 来自:https://blog.csdn.net/qq_30739519/article/details/86682931 由于Flowable与Camunda好多功能都是类似的,因 ...

  8. 流程引擎课堂(一)| 关于开源流程引擎Activiti 的需要注意的几点

    编者按:流程引擎在各个行业都有应用,其重要性不言而喻,充分了解流程引擎是一项重要课题.本文详细介绍了开源流程引擎Activiti 的优点与局限性,为流程引擎的选型提出了参考性建议. 基础概念 首先,我 ...

  9. 开源流程引擎Camunda

    开源流程引擎Camunda 文章作者:智星 1.简介 Camunda是一个轻量级的商业流程开源平台,是一种基于Java的框架,持久层采用Mybatis,可以内嵌集成到Java应用.SpringBooo ...

最新文章

  1. (chap1 网络基础知识)网络的构成要素
  2. 【译】Three Security Trends Are Key to Decentralize Artificial Intelligence
  3. 《sed的流艺术之四》-linux命令五分钟系列之二十四
  4. BZOJ 1500 维修数列
  5. JavaScript学习笔记:语句
  6. 计算机网络训练参考文献,计算机网络实用技术教学方法的研究
  7. 一致性哈希和redis分布式集群
  8. 阿里云张建锋:数字技术要服务好实体经济
  9. UML类图详解及rose中的画法
  10. 四川大学转专业计算机条件,四川大学转专业需要什么条件
  11. Win10下WinRAR“拒绝访问”解决+获取everyone权限
  12. 贪心算法基础之活动时间安排(一)安排 51nod 贪心教程
  13. 在 iPhone 上体验安卓系统,无需越狱,免费
  14. Vue开发后台管理系统
  15. 走近棒球运动·亚洲职棒大赛·MLB棒球创造营
  16. html做网页 窗口最小化后,40种网页常用小技巧
  17. WordPress 元老 Alex King 逝世
  18. iOS、mac开源项目及库
  19. 2022 年最新微博签到数据集
  20. 简易Windows密码查看器

热门文章

  1. 求3个数的最小公倍数算法之数论进化
  2. markdown 表格详用
  3. 互联网思维独孤九剑读书摘要
  4. 某程序员哀叹:连帮三任女友进大厂,却惨遭分手
  5. PL/SQL 注释(Comment)
  6. MySQL 中判断奇数的 6 种方法
  7. QT5中The process was ended forcefully.问题的解决方法
  8. 基于ESP8266与Blinker(点灯科技平台)的智能遥控器设计(四)
  9. 四篇关于chen_zhe的美文
  10. 设计模式之美总结(行为型篇)