前言

    如何基于开源流程引擎开发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. Redis (二)_ jedis的使用
  2. jdk动态代理源码学习
  3. Linux网络那点事(CentOS、Ubuntu、Kali)
  4. Hibernate Reference Documentation
  5. mysql区分大小写搜索
  6. wemall微信商城云平台 快速创建您的微信商城
  7. python 爬虫框架_Python实战:爬虫框架(6)
  8. C++11与最小垃圾回收
  9. java工作描述怎么写,太厉害了!
  10. scala练习——fold函数
  11. 中小网吧网络安全解决方案(转)
  12. 我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
  13. 1.4 milk3 倒牛奶
  14. pc端点击图片放大效果
  15. 自动化登录网易云音乐
  16. python ddos攻击_使用Torshammer执行DDoS攻击
  17. 20170719工作记账流水
  18. PolarisMesh系列文章——概念系列(一)
  19. 出租车出车祸误工费由谁来赔偿
  20. Syncovery 自动备份工具

热门文章

  1. P1248 加工生产调度
  2. OPPON5117_官方线刷包_救砖包_解账户锁
  3. 面试不谈钱,难道要我跟你谈恋爱?扯淡!
  4. 让人欲罢不能的探险小说
  5. Pageable分页
  6. 我的游戏--恶灵骑士2.0
  7. HTML如何关闭窗口大全
  8. hana 数据库修改字段长度
  9. 调度算法-优先级调度算法+例题详解
  10. 出战卡不足_造成你卡段的五大原因,如果不够重视,你将很难进步