官方概念:业务过程的部分或整体在计算机应用环境下的自动化,是对工作流程及其各操作步骤之间业务规则的抽象、概括描述”,它主要解决的是“使在多个参与者之间按照一种提前定义好的规则流程来传递与执行文档、信息或任务的过程,让这个过程可以自动进行或者部分自动执行,从而完成预期的业务目标
我个人理解的是工作流引擎是把流程中不同的操作或步骤用某种方式连接起来
把原来杂乱无章的一系列活动规范起来变成有流程的活动,就比如说请假
请假需要多个人审批
工作流
就是工作从开始到完成的过程。工作流由流程逻辑和路线规则组成。流程逻辑定义了任务的顺序和必须遵循的路线规则,还有截止期限以及由工作流引擎实现的其他业务规则
流程定义
一个图形流程定义或流程图,代表工作流的流程逻辑元素以及各元素之间的关系
首先来看一个案例:请假
小明发起请假流程 -> 班长审批 -> 班主任审批 -> 结束
程序员的角度
不使用工作流能够完成以上功能吗?
答案:可以实现,但是每个活动节点都需要开发交互页面和业务逻辑,每次活动的流转都需要硬性判断下一步活动节点及操作人,每次操作都需要维护业务数据和流程的相关数据
使用流程引擎可以简化开发难度,流程引擎会维护流程数据并有丰富的api关联业务,并且有开始后的流程定义工具,把流程用xml文件从业务中分离出来,完成一个节点后会自动流转到下一个节点
使用流程引擎只需要定义流程,不需要关流程的衔接和变量的持久化
多人协作或(需要动态变更)的业务流程场景
看完上面的内容大家应该对activiti有一定的了解,activiti官方为我们提供了一套相对完整的activiti应用
首先去官网下载activiti压缩包,如果官网访问不到可以戳这里下载
activiti6.0.0下载+jd-gui
database文件夹下存放的是activiti数据表sql,不同数据库有不同的sql文件
wars文件夹下可以看到三个war包
- activiti-app.war
- activiti-rest.war
- activiti-admin.war
以上三个war包都是基于activiti开发的示例应用,并且都是使用内存数据库所以不需要配置数据库环境,直接丢到tomcat中就可以使用,当然如果你想使用本地的数据库可以用压缩工具打开war包修改WEB-INF/classes/META-INF/activiti-app/下的activiti-app.properties 文件即可
activiti-app.war 是一套完整的工作流应用
activiti-rest.war 是一套提供restful接口的应用,其实activiti已经提供了restful接口,这个war包只是稍微配置了一下并部署了几个示例流程
activiti-admin.war 顾名思义是可以管理activiti流程相关的应用,这个大家可以打开就可以很快上手
第一步:首先要有tomcat环境,相信大家都会配
第二布: 把那三个war包丢到tomcat的webapps目录下
第三步:启动tomcat服务器
经过以上三部就可以在游览器访问app了
其中只有activiti-app 和 activiti-admin有界面,URL和密码可以看下面的表格
URL | 用户名 | 密码 |
---|---|---|
localhost:8080/activiti-app | admin | test |
localhost:8080/activiti-admin | admin | admin |
第一个Kickstart App 是用来设计流程的,这里就需要了解一下bpmn规范
第二个Task App 是用来处理流程任务的app
第三个Identity management 是用来管理用户和组的
这里主要介绍Kickstart App其他两个点进去就会用了
Kickstart App 中有四个tab
第一个Processes 是用来设计流程的点击Create Process 就可以新建一个流程
第二个Forms是流程中要使用的表单,activiti会把表单存在数据中
第三个Decision Tables 是决策表,如果判断条件比较多可以使用决策表,减少ifelse代码 基于drools 实现
第四个Apps 是应用程序,一个应用程序可以包含多个流程
打开Kickstart App -> Process -> Create Process
这里大家可能不知道怎么画,去看看bpmn规范自然就知道怎么画了
打开Kickstart App -> Apps -> Create App
创建完成后,不要忘记点击publish发布流程
以上步骤做完后点击左上角的正方形回到首页,你会看到多个一个卡片
管理者审批完后整个流程就结束了
用户名密码可以看上面的表格,界面也是简洁明了,这里就贴张图不多介绍了
以上资料我都打包好了,大家可以戳这里下载activiti示例下载csdn资源必须要金币可联系qq771979036下载