工作流引擎Activiti与SpringBoot2整合--开源软件诞生17

开源ERP技术整合系列--第17篇

用日志记录“开源软件”的诞生

【点亮星标】----祈盼着一个鼓励

博主开源地址:

码云:https://gitee.com/redragon/redragon-erp

GitHub:https://github.com/redragon1985/redragon-erp

为什么选择Activiti

最常用的工作流引擎Activiti和JBPM,我当初是如何选择的呢?要考虑学习成本、现有功能、兼容性、版本稳定性、可扩展性等等。

(1)Activiti的创始人Tom Baeyens是JBPM之前版本的核心人物,从这个层面出发Activiti工作流引擎的是站在巨人的肩膀上打造的,肯定会积累很多之前的经验,并解决很多之前遇到的问题。

(2)Activiti使用了我们更常用的技术,例如IOC、AOP、MyBatis、WebService、Restful,核心引擎则是基于之前版本的PVM,接口设计优雅;而JBPM完全舍弃了之前的引擎,基于JBoss的Drools Flow实现,接口层面的设计十分混乱。

(3)Activiti做了更多的扩展功能,比如相对完整的表单设计,流程的热部署、更加丰富的IDE插件。

Acitviti框架

下面来说说Activiti框架的核心功能

1、7个接口:工作流引擎可以想象成一个服务端,部署好以后,是需要客户端的调用才能实现对工作流程的操作。

RepositoryService:提供一系列管理流程部署和流程定义的API。

RuntimeService:在流程运行时对流程实例进行管理与控制。

TaskService:对流程任务进行管理,例如任务提醒、任务完成和创建任务等。

IdentityService:提供对流程角色数据进行管理的API,这些角色数据包括用户组、用户等。

ManagementService:提供对流程引擎进行管理和维护的服务。

HistoryService:对流程的历史数据进行操作,包括查询、删除这些历史数据。

FormService:表单服务。

2、28张表:表记录了用户信息、流程信息、历史信息等各种数据

资源库流程规则表

act_re_deployment部署信息表

act_re_model流程设计模型部署表

act_re_procdef流程定义数据表

运行时数据库表

act_ru_execution运行时流程执行实例表

act_ru_identitylink运行时流程人员表,主要存储任务节点与参与者的相关信息

act_ru_task运行时任务节点表

act_ru_variable运行时流程变量数据表

历史数据库表

act_hi_actinst历史节点表

act_hi_attachment历史附件表

act_ih_comment历史意见表

act_hi_identitylink历史流程人员表

act_hi_detail历史详情表,提供历史变量的查询

act_hi_procinst历史流程实例表

act_hi_taskinst历史任务实例表

act_hi_varinst历史变量表 组织机构表

act_id_group用户组信息表

act_id_info用户扩展信息表

act_id_membership用户与用户组对应信息表

act_id_user用户信息表

通用数据表

act_ge_bytearray二进制数据表

act_ge_property属性数据表存储整个流程引擎级别的数据

3、BPMN业务流程模型:可以通过流程图的方式配置业务流程、分支、条件等,最终生成引擎可识别的xml文件

BPMN2.0是一套建立工作流程模型的标准。下面说几个重点的元素和符号。

(1)事件:常用的是开始事件、结束事件,用于标识流程的开始和结束

(2)活动:常用的是任务,用于描述流程节点中的一项工作

(3)网关:常用包括并行网关、排他网关,并行即同时流转多个分支,排他即只流转其中一个分支

与SpringBoot整合

(1)修改POM添加依赖

<dependency>

<groupId>org.activiti</groupId>

<artifactId>activiti-spring-boot-starter-basic</artifactId>

<version>6.0.0</version>

</dependency>

(2)将BPMN2.0规范的XML文件拷贝到项目目录下:/resources/processes

(3)构建表结构,修改springBoot主配置文件application.properties

spring.activiti.database-schema-update=true

设置成true以后,会在项目启动的时候自动创建Activiti表结构,首次数据表建好后建议改成false

(4)Activiti相关配置,修改springBoot主配置文件application.properties

#保存历史数据得级别,分为none、activity、audit(默认)、full

spring.activiti.history-level=full

#是否校验流程文件,默认校验resources下的processes文件夹里的流程文件

spring.activiti.check-process-definitions=false

#修改默认的流程文件存储位置

spring.activiti.process-definition-location-prefix=classpath:/processes/

(5)通过注解方式访问常用接口

@Autowired

privateRuntimeService runtimeService;

@Autowired

privateTaskService taskService;

@Autowired

privateIdentityService identityService;

@Autowired

privateRepositoryService repositoryService;

@Autowired

privateProcessEngine processEngine;

@Autowired

privateHistoryService historyService;

后记

如果您对我们正在做的开源软件感兴趣,欢迎各种形式的合作,作为贡献者或直接加入我们!让我们一起打造一套开源的企业级信息化解决方案。


【码云】或【GitHub】搜索“赤龙ERP”点击星标,亦可加入我们! 让我们从小开始做点伟大的事!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352