开源工作流引擎flowable,开源工作流引擎平台
工作流引擎flowable基于springboot下,命令模式实现源码分析
在init()方法里,有一大堆的初始化。有个方法initCommandExecutors();
方法initCommandExecutors里的内容如下
方法initCommandInterceptors里的getDefaultCommandInterceptors内容
创建了各种拦截器,也就是当执行某个命令时,会执行这些拦截器。(包括了日志、事务等拦截器)
例如当执行taskService.complete完成任务时,会被事务拦截器拦截,启动事务等其它功能,如果需要我们也可以自定义拦截器
方法initCommandExecutor里的内容如下
把各个拦截器命令串联起来
springboot 整合 flowable 流程引擎
?1. pom
parent
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-parent/artifactId
version2.5.2/version
relativePath / !-- lookup parent from repository --
/parent
properties
project.build.sourceEncodingUTF-8/project.build.sourceEncoding
project.reporting.outputEncodingUTF-8/project.reporting.outputEncoding
java.version1.8/java.version
shiro.version1.5.3/shiro.version
flowable.version6.6.0/flowable.version
maven-jar-plugin.version3.0.0/maven-jar-plugin.version
/properties
========================
!--flowable工作流依赖--
? ? ? ? dependency
? ? ? ? ? ? groupIdorg.flowable/groupId
? ? ? ? ? ? artifactIdflowable-spring-boot-starter/artifactId
? ? ? ? ? ? version${flowable.version}/version
? ? ? ? /dependency
!-- --
dependency
? ? groupIdorg.flowable/groupId
? ? artifactIdflowable-json-converter/artifactId
? ? version${flowable.version}/version
/dependency
!-- app 依赖 包含 rest,logic,conf --
dependency
? ? groupIdorg.flowable/groupId
? ? artifactIdflowable-ui-modeler-rest/artifactId
? ? version${flowable.version}/version
/dependency
dependency
? ? groupIdorg.flowable/groupId
? ? artifactIdflowable-ui-modeler-logic/artifactId
? ? version${flowable.version}/version
? ? exclusions
? ? ? ? exclusion
? ? ? ? ? ? groupIdorg.apache.logging.log4j/groupId
? ? ? ? ? ? artifactIdlog4j-slf4j-impl/artifactId
? ? ? ? /exclusion
? ? /exclusions
/dependency
dependency
? ? groupIdorg.flowable/groupId
? ? artifactIdflowable-ui-modeler-conf/artifactId
? ? version${flowable.version}/version
/dependency
2. 配置类
package org.fh.config;
import org.flowable.spring.SpringProcessEngineConfiguration;
import org.flowable.spring.boot.EngineConfigurationConfigurer;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
/**
* 说明:Flowable配置
* from:fhadmin.cn
*/
@Controller
@Configuration
public class FlowableConfig implements EngineConfigurationConfigurerSpringProcessEngineConfiguration {
? ? @Override
? ? public void configure(SpringProcessEngineConfiguration engineConfiguration) {
? ? ? ? engineConfiguration.setActivityFontName("宋体");
? ? ? ? engineConfiguration.setLabelFontName("宋体");
? ? ? ? engineConfiguration.setAnnotationFontName("宋体");
? ? }
}
3. 配置文件?flowable.properties
blobType=BLOB
boolValue=TRUE
prefix=
工作流引擎哪家好?
分享一款JVS开源框架系列-流程引擎「含开源地址」
一、项目简介
JVS是面向软件开发团队可以快速实现应用的基础开发框架,采用微服务分布式框架,提供丰富的基础功能,集成众多业务引擎,它灵活性强,界面化配置对开发者友好,底层容器化构建,集合持续化构建。
项目仓库:
社区版已开源,在授权情况下支持100%源码同步,支持商用。
二、流程引擎介绍
流程引擎本质是解决业务流转过程中,带来的大量的重复的业务逻辑的,通过流程引擎可以缩减大量的业务开发成本,并提供一系列机制确保我们的业务的流畅度与准确性。
目前市面上流程引擎有比较多种:Osworkflow、JBPM、activiti、flowable、Camunda等这几种主流的方案,目前我采用的是可视化交互性更好的流程引擎,下面给大家简单介绍下:
1、新建了流程,设置好相关条件,点击设计流程
2、流程设计界面
3、流程设置
4、完成发布的流程可以直接在流程申请入口自动生成
5、配置任务节点与条件
6、支持配在线表单
7、跳转表单配置(单独详细介绍表单的配置)
三、 亮点与差异
相对业内其他方案,我们的表单引擎具备以下亮点:
青谷工作流系统是一套提供给集成商、软件开发商和最终客户的基础平台软件,它以流程管理和流程应用为核心,通过配置及二次开发,实现流程的自动化处理,系统由流程引擎、设计工具、管理工具和应用工具4 部分组成。流程引擎作为青谷工作流产品的核心组件,具备高内聚、松耦合等特性,并且内置大量接口,方便集成第三方系统。针对国内用户特点,青谷工作流引擎在业内率先提供多角度指定流程办理人、流程流向、办理方式、表单属性自动调整、多路并发、异步流转等多种流程操作手段等功能,充分满足用户实际业务需求。更多功能等您来发现!
雀书的工作流引擎很不错。可以自定义表单,有关联表;可视化流程图编辑器;节点权限控制;规则引擎;自动化引擎;
天翎的工作流引擎就很棒啊!!
从审批路径控制-审批人员控制-批对象权限控制-审批时限控制-批动作控制-审批网关控制-审批通知控制
无死角工作流
来,
看看下面简单的介绍:
审批路径控制
图形化箭头指向,真实模拟流程流转路径;指哪打哪,无论前进还是回退,进入送出均可 条件校验。
审批人员控制
可从组织机构、角色库、页面数据、流程变量和规则脚本等获取审批人;可通过维度内外部多因素单独或联动关系筛选审批人。
批对象权限控制
可对表单字段及操作按钮权限进行详实控制;可按业务规则提供只读、隐藏和修改等权限 设置。
审批时限控制
严格控制审批时限,超时可自动提交或触发指定动作;提供设计模式和脚本模式双重控制机制。
批动作控制
支持单人办理、多人顺序、多人并行、抢占式办理、内部循环、人工合并等处理场景;
除常规操作,主办加签、会办加签、补签意 见、异步提交、指定回退、自由指派、节点
排序、节点互斥、子流程单实例等中式流程操作应有尽有。
审批网关控制
不管是常规流程还是流程嵌套,不管是往前流转还是往后回退都详实控制;到达(聚合、非聚合)、通过(或、且、非)和送出(并行、串行)各个节点严格把关。
审批通知控制
提供待办、已办、抄送等通知窗口,轻松获取发起人、业务名称和关键字段等流程摘要;通知方式灵活多样,包括站内消息中心、邮 件、短信、微信、APP等。
你可以看看这个IBM Business Automation Workflow,下面的文档你可以深入了解一下。
没遇到好用的,看基于什么业务场景
activiti和flowable用哪个会比较好
activiti和Flowable各有其特色、优势,具体哪个会更好需要结合实际情况来决定,不能一概而论。
Activiti有非常大的影响力来改变目前BPM的生态。Activiti的Apache授权,完整的功能,将使Activiti到达一个新的水平。Activiti将推动业界的创新,因为BPM技术可以广泛而自由地被应用。通过实现这些想法以及开源社区的努力,也让Activiti成为事实上的 BPM和BPMN标准执行。
Flowable支持BPMN和CMMN、DMN规范、它的主要含有五个引擎和一个官方自带的Modeler流程设计器,以及一套数据库表,以及发布版本(5个war)/源代码等。
扩展资料:
flowable的表不需要自己创建,只要在spring boot配置好数据库连接相关配置,它会自动创建70张表,但不包含流程设计器所需要的表,这些表是以act_de_*开头。需要自己搞去配置让它自己生成,或者从它的war生成的库中去导入。
Activiti将成为Alfresco的默认的业务流程引擎,Alfresco公司将继续支持jBPM,以及目前与其他业务流程的企业内容管理软件集成的引擎。 Alfresco公司也将与Alfresco企业版一起,提供对Activiti的支持,维护和技术保证。
参考资料来源:
百度百科-activiti