暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

JAVA-工作流产品

AKA程序王 2019-11-23
856

1. 工作流产品

1)什么是工作流

定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完。

2)有哪些解决方案

开源的工作流方案有,JBPM工作流,activity工作流,flowable工作流等。

2. flowable工作流

1)官网

https://www.flowable.org

2)能做什么?

Flowable是一个使用Java编写的轻量级业务流程引擎,它能够完成定义流程、流程部署、创建这些流程定义的流程实例、进行查询(正在进行的)、访问运行中或历史的流程实例与相关数据等。flowable都可以对这些操作进行管理。

2) 主要引擎

流程引擎(bpmn) ProcessEngine

控制流程引擎(cmmn) CmmnEngine

决策引擎(dmn) DmnEngine

表单引擎(form) FormEngine

内容引擎(content) ContentEngine

身份识别引擎(idm) IdmEngine

Process Engine是最常见的方式,能够处理绝大多数场景。

 

3)flowable的架构

 


3. 流程引擎

1)流程引擎ProcessEngine包含的服务有:

RepositoryService定义流程和部署流程

RuntimeService开始新流程实例和查询

HistoryService流程实例历史记录

IdentityService用户相关

TaskService任务相关

FormService动态表单

ManagementService任务管理

DynamicBpmnService动态流程服务

这些服务,可以定义流程、运行流程、查询历史、查询当前任务等。这些service是对34个表操作的封装。

2)核心配置文件

BPMN 2.0流程定义文件,它是一个标准的XML文件,用XML去描述流程的定义过程。例如:

 


flowable工程的holiday-request.bpmn20.xml,这个XML文件就是工作流的核心配置文件,这个xml文件可以用flowable工具画出来 。

3)例程

A. flowable项目的SimpleTest.java, 该例程不需要配置xml文件,主要演示表的自动创建:

 


数据库表简介:

 


B. 以官网提供的请假流程为例,见flowable项目的HolidayRequest.java

运行后,对应的数据,见数据库表act_hi_actinst。

4. 流程设计器、用户和流程管理系统

1)  下载

https://github.com/flowable/flowable-engine/releases/download/flowable-6.4.0/tomcat-flowable-6.4.0.zip下载tomcat-flowable-6.4.0.zip,在webapps目录里有四个war包:

flowable-idm:用户管理、授权

flowable-admin:实例、任务管理

flowable-modeler:设计器

flowable-task:个人任务管理

经过配置后,这些war包都能直接使用java -jar flowable-[项目].war启动。

2)启动

① 修改flowable-default.properties

依次解压,打开各个应用的classes目录,修改flowable-default.properties文件里的数据库连接信息,之后重命名文件为application.properties,如图:

 


② 添加mysql驱动

lib里加入数据库驱动文件,我的是mysql-connector-java-5.1.39.jar

③ 启动并访问

最后使用/tomcat-flowable/bin/startup.bat启动,默认端口8080,各个访问地址如下:

设计器http://localhost:8080/flowable-modeler

任务管理http://localhost:8080/flowable-task

实例、任务管理http://localhost:8080/flowable-admin

用户管理、授权http://localhost:8080/flowable-idm

备注:

A. 用户名密码为admin/test

B. 必须解压idm应用否则无法进行身份认证

3)流程设计器的使用

A.登录http://localhost:8080/flowable-modeler

 

B.使用

 



 


备注:

开始事件:图中用细线圆圈来表示,是流程实例的开始点

箭头:表示节点之间的流转指向。

用户任务 在图中用左上角有人的圆角矩形表示,这些是需要用户来操作的节点。图中有两个,第一个表示需要经理进行审批来同意或拒绝, 第二个表示用户来确认销假。

排它网关 用叉形符号填充的菱形表示,从该图中出来的箭头往往有多个,但只有一个满足条件,流程会沿着满足条件的方向流转。

自动化任务 左上角有齿轮形状的的圆角矩形,表示自动执行的节点。图中上面的表示请假被经理同意后自动注册通知到外部系统,下面的表示请假被经理拒绝后自动发邮件通知给申请人。

结束事件 图中用粗线圆圈表示,表示流程的结束。图中上面的结束事件表示请假成功结束,下面的表示请假失败结束。

 

 

 

4)其他应用的使用

 


 

用户创建、权限分配。

5.springboot+flowable工程

1)依赖

 


2) application.properties

 


备注:

flowable.async-executor-activate=false  关闭定时任务JOB.

3) 流程定义文件

src/resources/process/XXX.bpmn20.xml

4) Controller

直接注入ProcessEngine、RuntimeService、RepositoryService等对象即可,例如:

 




文章转载自AKA程序王,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论