最近以为工作安排,让我研究工作流。说实话这个一直停留在用的阶段,但是能工作流Activiti网上资料也很多,真要基于这个构建自有工作流也是可以的。下面就说说我的方案与试验。
一、 可行性
经过4天的学习研究,集成试验,以及流程拆解,交互使用体验。做基本的二次开发改造后,是可行的,就是怎么改造、改造程度、使用深度等都决定二次开发的工作量,同时改造是否优秀、简单明确也是需要后续讨论制定最优方案才行。
二、 集成方式
集成方式有2种:
A、 使用Activiti的用户、角色管理方式,这种方式有工作流管理首页

实际就是直接部署Activiti-explore(当然这个也可以源码部署改造)
B、 不使用Activiti的用户、角色管理方式,工作流平台自己开发一个管理首页

实际就是自己集成activiti-modeler、activiti-designer,然后自行封装流程部署、启动,自己设计一个流程管理界面实现(内容可以自定义,更丰富)。
三、 关于Activiti版本
1、activiti版本与在线设计器
目前使用的是Activiti5.22,也是有Process Virtual Machine流程虚拟机的最后一个版本。在6.0.0已经移除替换为轻量级的模块,且6.0.0对全代码进行了重构,部分api实现可能不一样。6.x.x版本应该是依然可以使用activiti-modeler、activiti-designer组合编辑器的,只是封装Api的实现应该是不能使用pvm模块相关类了。7.x.x版本比较新,资料偏少,从目前我了解到的看,7.x.x已经放弃使用这个组合编辑器了,改用bpmn-js设计器了,但是这个设计器目前对activiti的元素支持的还比较少。
2、activiti版本表结构
activiti5是25张表,activiti6后就是28张表了。如果选定了基础版本,后续升级可能有麻烦。
四、 工作流平台交互时序图

以上是这几天学习研究activiti,结合我自己对我们要打造的工作流平台的理解,分析平台与业务系统的交互,设计的时序图。
五、 目前已封装API
目前我采用的是只要activiti-modeler、activiti-designer组合编辑器方式,所以简单封装了以下API:
1、 创建工作流模型
2、 创建工作流用户
3、 流程部署
4、 启动流程(流程启动有3种方式,目前使用id方式)
5、 获取我的待办(未分页)
6、 获取我的已办(未分页)
7、 待办处理(指派下一步处理人也有多种模式,目前是直接指派单人)
目前以上都是单线流程,没有考虑分支的协同、会签。
六、 解耦方案
1、 人员、角色解耦
试验了发起流程时,下一步处理人id不是activiti的用户表里用户。启动流程没有报错,下一步处理人获取我的待办可以获取到。那么人员、角色解耦,直接使用业务系统的人员、角色应该是可行的。
2、 节点处理参数解耦
先看表结构

每一步的参数都是以行存储的,如果依赖activiti,那后期业务系统自己组装对象显示(有性能问题)。或者其实业务系统可以自己记录下来,需要的时候组装显示。所以也是可以解耦的。
七、 总结
1、 使用activiti作为基础,进行二次开发,构建自有工作流平台可行
2、 activiti-modeler、activiti-designer组合编辑器元素非常丰富,但是友好性不太好,需要改造。逐步二开成我们自己的工作流平台需要对元素进行研究使用方法后,精简配置,封装、优化api(当然有可能一个元素的引入,原先的一些api也需要修改的情况)。
3、 activiti默认是使用的H2数据库,可以通过配置改成其他数据库支持。但是如果二开成我们自己的工作流平台,后面需要考虑数据量、性能问题。
目前这几天get这些,后面还有流程的完结归档、显示具体执行到哪一步高亮等等,还需要继续研究。如果是确定使用这个引擎了,相关问题还是需要讨论,制定方案与计划。
下次分享具体集成与已经实现的这几个接口。

工作流Activiti集成构建自有平台方案相关推荐

  1. 开源工作流系统java整合activiti,快速开发平台

    前言 目前市场上有很多开源平台没有整合工作流,即使有,也是价格不菲的商业版,来看这篇文章的估计也了解了行情,肯定不便宜.我这个快速开发平台在系统基础功能(用户管理,部门管理-)上整合了工作流,你可以直 ...

  2. CI/CD——构建企业级Docker+Jenkins+Git+Harbor流水线自动化持续集成持续发布平台

    构建企业级Docker+Jenkins+Git+Harbor流水线自动化持续集成持续发布平台 CI/CD是什么? 持续集成(CI)/持续交付(CD)的优势 自动化部署流程图 Git Github Gi ...

  3. 软骨鱼是WordPress构建SaaS平台的最优解决方案

    在了解如何使用软骨鱼(https://www.ruanguyu.com/)构建 WordPress 的 SaaS 平台之前,你首先需要知道 SaaS 平台是干嘛用的,SaaS 是 Software-a ...

  4. 工作流activiti

    回顾一下以前使用过的activiti工作流:下载工作流引擎和下载插件就不说了,这个百度上很多. 安装遇到的问题: 说一下再下载插件中容易遇到的几个问题以及解决的方案:自己电脑上安装的有java ide ...

  5. c语言构建栈_选择技术栈构建通用平台

    c语言构建栈 Java社区中有许多关于Spring vs Java EE的话题. 一群人会争辩说您应该使用一个而不是其他.等等.当我看到这一点时,我不禁要想为什么我们不能同时使用它们呢? 实际上,我认 ...

  6. 选择技术栈构建通用平台

    Java社区中有很多关于Spring vs Java EE的话题. 一群人会争辩说您应该使用一个而不是其他.等等.当我看到这一点时,我不禁要想为什么我们不能同时使用它们呢? 实际上,我认为有效地使用它 ...

  7. 【2016年第6期】SKA数据中心云平台方案的概念性研究

    王玲玲,劳保强,陆扬,伍筱聪,郭绍光 中国科学院上海天文台,上海 200030 摘要:针对平方公里阵列(SKA)望远镜数据中心海量数据存储和管理的要求,结合当前云计算和大数据技术的发展趋势,对SKA数 ...

  8. CI/CD(持续集成构建/持续交付):如何测试/集成/交付项目代码?(Jenkins,TravisCI)

    Table of Contents CI(Continuous integration,持续集成) CD(Continuous Delivery, 持续交付) Different types of t ...

  9. SCRM会员管理营销平台方案的核心功能详解

    2020年,我们都在感叹:流量越来越贵,不但原来越难找到客户,而且越来越难留住客户:门店生意参差不齐,门店生意和导购的能力高度相关,但是能力强的导购,善于维护客户关系,领导似乎又缺乏安全感:线上生意也 ...

最新文章

  1. OpenCASCADE:Modeling Algorithms模块之拓扑工具
  2. JS OOP -02 深入认识JS中的函数
  3. 推荐系统中粗排扮演的角色和算法发展历程
  4. 跨国IT服务提供商 Inetum 遭勒索攻击
  5. 计算机程序编辑的英语,编译程序是为把高级语言书写的计算机程序翻译成面向计算机的目标程序而使用的计算机程序...
  6. 设计模式之十二:组合模式(composite)
  7. Visual Studio 单元测试之六---UI界面测试
  8. 滑块验证码Java实现
  9. 富士康跳楼事件续集,主管扬言现场把人处理掉,并表示拒不处理善后
  10. C++结构体变量的初始化和结构体char数组成员初始化
  11. Jmeter使用CSV文件读取大量测试数据
  12. win10锁屏账户和计算机名,如何玩转Win10锁屏和主题
  13. 一张图讲清楚产品架构,手把手教你画产品框架图
  14. bitcoin轻钱包之SPV验证
  15. NLP,能辅助法官判案吗? | CCF C³
  16. 边境的悍匪—Kaggle—泰坦尼克号生还预测详细教程
  17. 解决百度推广恶意点击以及反攻击的方法!
  18. 登录模板源码 : bootstrap风格
  19. 如何教机器学会原研哉(小米新LOGO)的设计理念
  20. 宝塔面板专业版企业版教程 纯手动 带原版脚本 插件免费用

热门文章

  1. Java自学书籍推荐,java程序员面试算法宝典
  2. 华为鸿蒙系统界面清新,华为鸿蒙系统:全新UI界面
  3. 18.9.23 PION模拟赛
  4. ps使图片边缘模糊且融入背景色
  5. windows命令行中 启动应用程序
  6. Visual C++黑白棋游戏项目开发一:需求分析、系统架构设计(附源码和资源 可用于大作业)
  7. 谈用户裂变,社群裂变的重要性
  8. 请上传sku预览图后重新操作_增值税专用发票申请开票限额操作指南
  9. 通用计算机含义,当今的计算机其通用的名称应该是通用数字计算机,请简单描述包含的三层含义? (8.0分)...
  10. ScrollView的android:scrollbarStyle属性详解