开源ERP技术整合系列--第17篇
用日志记录“开源软件”的诞生
为什么选择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张表:表记录了用户信息、流程信息、历史信息等各种数据
3、BPMN业务流程模型:可以通过流程图的方式配置业务流程、分支、条件等,最终生成引擎可识别的xml文件
BPMN2.0是一套建立工作流程模型的标准。下面说几个重点的元素和符号。
(1)事件:常用的是开始事件、结束事件,用于标识流程的开始和结束
(2)活动:常用的是任务,用于描述流程节点中的一项工作
(3)网关:常用包括并行网关、排他网关,并行即同时流转多个分支,排他即只流转其中一个分支
与SpringBoot整合
(1)修改POM添加依赖
(2)将BPMN2.0规范的XML文件拷贝到项目目录下:/resources/processes
(3)构建表结构,修改springBoot主配置文件application.properties
spring.activiti.database-schema-update=true
(4)Activiti相关配置,修改springBoot主配置文件application.properties
(5)通过注解方式访问常用接口
后记
如果您对我们正在做的开源软件感兴趣,欢迎各种形式的合作,作为贡献者或直接加入我们!让我们一起打造一套开源的企业级信息化解决方案。