activiti入门-activiti官方应用使用

0.目录

1.0 了解activiti

  • 1.1 什么是 activiti
  • 1.2 activiti 相关概念
  • 1.3 为什么使用 activiti
  • 1.4 activiti的适用场景
  • 1.5 使用activiti官方应用
    • 1.5.1 相关war包介绍及发布
    • 1.5.2 基本的请假流程
    • 1.5.3 使用activiti-admin.war 管理流程

2.0 activiti的使用

  • 2.1 activiti 入门案例
  • 2.2 activiti 数据库结构
  • 2.3 activiti 架构
  • 2.4 activiti 相关api学习
  • 2.5 activiti restful 接口调用

3.0 BPMN规范

4.0 activiti与现有的系统的整合

5.0 规则引擎drools的使用


1.0 了解activiti

1.1 什么是activiti

官方概念:业务过程的部分或整体在计算机应用环境下的自动化,是对工作流程及其各操作步骤之间业务规则的抽象、概括描述”,它主要解决的是“使在多个参与者之间按照一种提前定义好的规则流程来传递与执行文档、信息或任务的过程,让这个过程可以自动进行或者部分自动执行,从而完成预期的业务目标

我个人理解的是工作流引擎是把流程中不同的操作或步骤用某种方式连接起来
把原来杂乱无章的一系列活动规范起来变成有流程的活动,就比如说请假
请假需要多个人审批

1.2 activiti 相关概念

  • 工作流
    就是工作从开始到完成的过程。工作流由流程逻辑和路线规则组成。流程逻辑定义了任务的顺序和必须遵循的路线规则,还有截止期限以及由工作流引擎实现的其他业务规则

  • 流程定义
    一个图形流程定义或流程图,代表工作流的流程逻辑元素以及各元素之间的关系

  • 流程实例
    一个流程实例,通常称为工作,是一个流程定义的运行实例
  • 状态
    代表一种对外部参与者的依赖;这意味着在流程运行时流程引擎必须等待,直到外部参与者通知工作流系统指定的状态完成了
  • 动作
    在流程运行过程中,工作流系统为响应指定事件运行的一段程序逻辑;当流程运行过程中指定的事件发生时,工作流系统启动并执行这些动作
  • 流程上下文
    保存每一个流程运行的上下文信息;通常在流程定义中声明这些变量,然后在流程实例生成时被实例化
  • 参与者
    以下类型之一:资源集、特定资源、组织单元、角色(一个人在组织内部的作用)、人或系统(自动代理)
  • 活动
    组成流程定义中的一个逻辑步骤的任务。可以是自动的或人工的。自动指在流程操作过程中定义脚本和触发器的能力。流程定义中的特定活动可以作为无人参与的任务来运行,自动化可以在手工或人力驱动的任务中执行业务规则。常见的一种自动活动就是截止期限管理,如果某个工作项在预定的截止期限之前未能完成,该管理可以自动发送一条提醒消息或触发一个延期程序。
  • 活动所有者
    活动所有者是有权宣布一个活动结束,然后推进工作到流程中的下一个活动的参与者
  • 工作所有者
    工作所有者是有权整体控制流程实例执行过程的参与者
  • 工作项
    代表流程实例中活动的参与者将要执行的工作

1.3 为什么使用 activiti

首先来看一个案例:请假
小明发起请假流程 -> 班长审批 -> 班主任审批 -> 结束

程序员的角度
不使用工作流能够完成以上功能吗?
答案:可以实现,但是每个活动节点都需要开发交互页面和业务逻辑,每次活动的流转都需要硬性判断下一步活动节点及操作人,每次操作都需要维护业务数据和流程的相关数据
使用流程引擎可以简化开发难度,流程引擎会维护流程数据并有丰富的api关联业务,并且有开始后的流程定义工具,把流程用xml文件从业务中分离出来,完成一个节点后会自动流转到下一个节点
使用流程引擎只需要定义流程,不需要关流程的衔接和变量的持久化

1.4 activiti的适用场景

多人协作或(需要动态变更)的业务流程场景

1.5 使用activiti官方应用

看完上面的内容大家应该对activiti有一定的了解,activiti官方为我们提供了一套相对完整的activiti应用

首先去官网下载activiti压缩包,如果官网访问不到可以戳这里下载
activiti6.0.0下载+jd-gui

解压后可以在文件夹下看到一下几个文件夹
activiti入门-activiti官方应用使用_第1张图片

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流程相关的应用,这个大家可以打开就可以很快上手

1.5.1 相关war包介绍及发布

第一步:首先要有tomcat环境,相信大家都会配
第二布: 把那三个war包丢到tomcat的webapps目录下
第三步:启动tomcat服务器

经过以上三部就可以在游览器访问app了
其中只有activiti-app 和 activiti-admin有界面,URL和密码可以看下面的表格

URL 用户名 密码
localhost:8080/activiti-app admin test
localhost:8080/activiti-admin admin admin

首先访问activiti-app,你会看到如下界面
activiti入门-activiti官方应用使用_第2张图片

第一个Kickstart App 是用来设计流程的,这里就需要了解一下bpmn规范
第二个Task App 是用来处理流程任务的app
第三个Identity management 是用来管理用户和组的

这里主要介绍Kickstart App其他两个点进去就会用了
activiti入门-activiti官方应用使用_第3张图片

Kickstart App 中有四个tab
第一个Processes 是用来设计流程的点击Create Process 就可以新建一个流程
第二个Forms是流程中要使用的表单,activiti会把表单存在数据中
第三个Decision Tables 是决策表,如果判断条件比较多可以使用决策表,减少ifelse代码 基于drools 实现
第四个Apps 是应用程序,一个应用程序可以包含多个流程

1.5.2 基本的请假流程

1.首先在Identity management创建两个用户

  • employee
  • manager
    activiti入门-activiti官方应用使用_第4张图片

2.创建请假流程

打开Kickstart App -> Process -> Create Process
activiti入门-activiti官方应用使用_第5张图片

这里大家可能不知道怎么画,去看看bpmn规范自然就知道怎么画了

3.创建App

打开Kickstart App -> Apps -> Create App
activiti入门-activiti官方应用使用_第6张图片

创建完成后,不要忘记点击publish发布流程

activiti入门-activiti官方应用使用_第7张图片

以上步骤做完后点击左上角的正方形回到首页,你会看到多个一个卡片
activiti入门-activiti官方应用使用_第8张图片

4.使用employee用户登陆启动流程

activiti入门-activiti官方应用使用_第9张图片

5.employee用户完成任务

activiti入门-activiti官方应用使用_第10张图片

6.使用manager用户登陆完成任务

activiti入门-activiti官方应用使用_第11张图片

管理者审批完后整个流程就结束了

1.5.3 使用activiti-admin.war 管理流程

用户名密码可以看上面的表格,界面也是简洁明了,这里就贴张图不多介绍了

activiti入门-activiti官方应用使用_第12张图片

以上资料我都打包好了,大家可以戳这里下载activiti示例下载csdn资源必须要金币可联系qq771979036下载

你可能感兴趣的:(activiti)