一、Flowable简介
Flowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据,等等。
Flowable可以十分灵活地加入你的应用/服务/构架。可以将JAR形式发布的Flowable库加入应用或服务,来嵌入引擎。 以JAR形式发布使Flowable可以轻易加入任何Java环境:Java SE;Tomcat、Jetty或Spring之类的servlet容器;JBoss或WebSphere之类的Java EE服务器,等等。 另外,也可以使用Flowable REST API进行HTTP调用。也有许多Flowable应用(Flowable Modeler, Flowable Admin, Flowable IDM 与 Flowable Task),提供了直接可用的UI示例,可以使用流程与任务。
官网地址:https://www.flowable.org/
文档地址:https://www.flowable.org/docs/userguide/index.html#_getting_started
中文文档:https://tkjohn.github.io/flowable-userguide/#_getting_started
二、下载安装
- 下载
下载地址:https://www.flowable.org/
下载地址:
https://github.com/flowable/flowable-engine/releases/download/flowable-6.4.2/flowable-6.4.2.zip -
解压
-
部署
拷贝war包到Tomcat的wapapps目录:
-
启动Tomcat
(用户名/密码: admin/test)
地址:
流程图管理: http://localhost:8080/flowable-modeler
任务管理: http://localhost:8080/flowable-task
用户管理: http://localhost:8080/flowable-admin
认证管理: http://localhost:8080/flowable-idm
接口地址:http://localhost:8080/flowable-rest
数据库分成两套
项目数据库:项目所需表和flowable通过jar包生成的表(34张)
Flowable数据库:用于流程图创建保存,测试,监控(74张)
项目部署只需项目数据库
三、Flowable的用户权限体系
在接入Flowable的用户权限体系的时候,有四种方式:
- 使用Flowable提供的默认IdmEngine进行用户体系管理,该引擎包含了用户、组的概念。
- 集成LDAP,实现轻量级用户权限管理。通过IdentityService进行认证,用于由IdentityService处理所有认证业务的场景。
- 实现IdmIdentityService接口,自定义实现用户、组的查询
- 接入自定义的权限体系
用户id => 获取到租户id、角色id集、部门id集
- 单用户(assignee="用户id")、多用户(candidateUsers="用户id1,用户id2")
- 单角色、多角色(candidateGroups=":角色id1,:角色id2")
- 单部门、多部门(candidateGroups="部门id1:,部门id2:")
- 角色或部门(candidateGroups="角色id1:, :部门id1")
- 角色与部门
四、数据表结构
ACT_RE_ *:RE代表repository。具有此前缀的表包含静态信息,例如流程定义和流程资源(图像,规则等)。
ACT_RU_ *:RU代表runtime。这些是包含运行时的流程实例,用户任务,变量,作业等的运行时数据的运行时表。
Flowable仅在流程实例执行期间存储运行时数据,并在流程实例结束时删除记录。这使运行时表保持小而快。
ACT_HI_ *:HI代表history。这些是包含历史数据的表,例如过去的流程实例,变量,任务等。
ACT_GE_ *:general数据,用于各种用例。
ACT_ID_*:Idm的用户、组
数据表:
ACT_HI_ACTINST 流程实例的历史运行节点表
ACT_HI_TASKINST 流程实例的历史任务表
ACT_HI_VARINST 流程实例的历史运行节点的变量表
ACT_HI_PROCINST 流程历史部署记录
ACT_HI_IDENTITYLINK 对应ACT_RU_IDENTITYLINK的历史记录表
ACT_RE_DEPLOYMENT 流程部署
ACT_RE_PROCDEF 流程定义表
ACT_RU_EXECUTION 流程实例执行过程的所有节点记录
ACT_RU_IDENTITYLINK 流程实例运行过程中,各节点对应的用户
ACT_RU_TASK 流程实例运行时的任务表
ACT_RU_VARIABLE 流程实例运行时节点的变量表
ACT_GE_BYTEARRAY 资源文件表
五、Docker环境运行
1. 前置条件
Docker 环境
2. 运行Flowable6.4.2
Docker Hub上提供了所有工作流的UI应用程序。
要启动 Flowable REST 应用需要H2内存数据库:
[root@localhost ~]# docker run -p8080:8080 flowable/flowable-rest
这个API文档的访问地址为:http://localhost:8080/flowable-rest/docs/
用户名:rest-admin 密码:test
要运行完整的Flowable 工作流,可以运行run the ‘All-in-One’ Docker 镜像,这个镜像包含Flowable IDM、Modeler、Task 、Admin UI 应用,运行容器为Tomcat,数据为内存数据库H2。
[root@localhost ~]# docker run -p8080:8080 flowable/all-in-one
Flowable Modeler; http://localhost:8080/flowable-modeler
Flowable Task; http://localhost:8080/flowable-task
Flowable Admin; http://localhost:8080/flowable-admin
Flowable IDM; http://localhost:8080/flowable-idm
3. 运行测试
1) 用户组权限管理
(用户名/密码: admin/test)
http://192.168.247.130:8080/flowable-idm/#/login
2) 流程定义管理
http://192.168.247.130:8080/flowable-modeler
3) 用户任务管理
http://192.168.247.130:8080/flowable-task/#/
4) 后台管理
http://192.168.247.130:8080/flowable-admin