文章目录


1. 工作流简述

1.1.工作流是什么

​工作流(Workflow)​​,就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。

工作流就是通过计算机技术对业务流程进行自动化管理。实现多个参与者按照预定的流程去自动执行业务流程。

工作流管理系统的目标:管理工作的流程以确保工作在正确的时间被期望的人员所执行——在自动化进行的业务过程中插入人工的执行和干预。

《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_业务流程

1.2.哪些行业需要工作流

消费品行业,制造业,电信服务业,银证险等金融服务业,物流服务业,物业服务业,物业管理,大中型进出口贸易公司,政府事业机构,研究院所及教育服务业等,特别是大的跨国企业和集团公司。

总结一句话:凡是有组织机构的公司都有可能用到工作流。

1.3.工作流系统的使用

  1. 关键业务流程:订单、报价处理、采购处理、合同审核、客户电话处理、供应链管理等
  2. 行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政表单。
  3. 人事管理类:员工培训安排、绩效考评、职位变动处理、员工档案信息管理等。
  4. 财务相关类:付款请求、应收款处理、日常报销处理、出差报销、预算和计划申请等。
  5. 客户服务类:客户信息管理、客户投诉、请求处理、售后服务管理等。
  6. 特殊服务类:ISO系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、物流公司货物跟踪处理等各种通过表单逐步手工流转完成的任务均可应用工作流软件自动规范地实施。

2.常见的工作流框架

Activity5.13、JBPM4.4、OSWorkFlow、WorkFlow

工作流框架底层需要有数据库提供支持,activiti5.13版本,有23张表。JBPM4.4框架底层有数据库支持,18张表。JBPM底层使用hibernate操作数据库。Activiti框架底层使用的mybatis操作数据库。

3.Activti的历史简介

Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。

创始人Tom Baeyens是JBoss jBPM的项目架构师,以及另一位架构师Joram Barrez,一起加入到创建Alfresco这项首次实现Apache开源许可的BPMN 2.0引擎开发中来。

Activiti前身是jbpm4,Activiti架构和jbpm4基本上是一样的。

架构师Tom Baeyens说:“Activiti有非常大的影响力来改变目前BPM的生态。Activiti的Apache授权,完整的功能,将使Activiti到达一个新的水平。Activiti将推动业界的创新,因为BPM技术可以广泛而自由地被应用。通过实现这些想法以及开源社区的努力,也让Activiti成为事实上的 BPM和BPMN标准执行“。它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。

《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_ide_02

4.重要的名词解释

4.1.工作流引擎

ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。

4.2.BPM

BPM,即业务流程管理,是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法,常见商业管理教育如EMBA、MBA等均将BPM包含在内。

4.3.BPMN

BPMN:业务流程建模与标注,包括这些图元如何组合成一个业务流程图(Business Process Diagram);讨论BPMN的各种的用途,包括以何种精度来影响一个流程图中的模型;BPMN作为一个标准的价值,以及BPMN未来发展的远景。

具体发展历史如下:
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_数据库_03

流对象:一个业务流程图有三个流对象的核心元素。

事件:一个事件用圆圈来描述,表示一个业务流程期间发生的东西。事件影响流程的流动,一般有一个原因(触发器)或一个影响(结果)。基于它们对流程的影响,有三种事件:开始,中间以及终止事件
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_ide_04
活动:用圆角矩形表示,一个流程由一个活动或多个活动组成
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_业务流程_05
条件:条件用熟悉的菱形表示,用于控制序列流的分支与合并。另外,它还可以作为传统的选择,还包括路径的分支与合并。其内部的标记会给出控制流的类型。
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_数据库_06

Activiti使用Bpmn2.0标准进行流程定义(流程建模),bpmn采用xml描述 。
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_数据库_07
如何使用bpmn进行流程建模
通常情况下,使用建模工具进行流程图绘制,生成一个图形,通过工具查看bpmn的xml描述 。
如果熟练,手动编写pbmn的xml文档。(对坐标和结点的大小通过工具完成)

5.准备环境

5.1.Activiti软件环境

1)   JDK1.6或者更高版本
2) 支持的数据库有:h2,mysql,oracle,mysql,db2等
3) 支持Activiti运行的jar包,可以通过maven依赖引入

5.2.相关资源下载

  1. JDK可以到sun的官网下载
    ​​​http://www.oracle.com/technetwork/java/javase/downloads/index.html​
  2. 数据库,例如:mysql可以在官网上下载。
    ​​​http://www.mysql.com​
  3. activiti也可以到Activiti官方网站下载得到。
    ​​​http://activiti.org/download.html​

5.3.流程设计器(IDEA插件)

5.3.1.安装插件

点击菜单【File】–>【Settings…】打开【Settings】窗口。

点击左侧【Plugins】按钮,在右侧输出"actiBPM",点击下面的【Search in repositories】链接会打开【Browse Repositories】窗口。
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_ide_08
2.开始安装
进入【Browse Repositories】窗口,选中左侧的【actiBPM】,点击右侧的【Install】按钮,开始安装。
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_数据库_09
3.安装进度
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_数据库_10
4.安装完成
安装完成后,会提示【Restart IntelliJ IDEA】,重启IDEA即可完成安装。
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_数据库_11
5.查看结果
打开【Settings】窗口,在【Plugins】中可看到安装的【actiBPM】插件,表示安装成功。
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_ide_12

5.3.2.最新版IDEA找不到actiBPM插件

idea升级最新版后,有个项目要用到 activiti 来做流程引擎开发,发现插件里面搜索不到 actiBPM 插件。一脸懵逼,应该是 actiBPM插件的更新速度没有追上 IDEA,需要自己下载jar后导入。记录下过程,本文使用IDEA版本是2019.3,

一、到 IDEA 官网下载 actiBPM 插件
地址:https://plugins.jetbrains.com/,搜索 actiBPM,下载。
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_业务流程_13
然后找到,
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_ide_14
二、引入下载好的 jar 包
File -> Settings -> Plugins -> Install Plugin from Disk,选择已经下载的jar,导入。
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_数据库_15

《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_数据库_16
三、重启IDE
导入后,提示重启IDE,重启后查看已安装的插件,actiBPM已经装好了。
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_数据库_17
然后,右键,也看到bpm的标签了,成功。
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_ide_18

5.3.3.使用Activiti

1.创建BPMN文件
点击菜单【File】–>【New】–>【BpmnFile】
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_数据库_19
输入文件名称,点击【OK】按钮
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_ide_20
会出现如下绘制界面
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_ide_21
2.绘制流程图
鼠标左键拖拽右侧图标,将其拖下左侧界面上,同样的方式再拖拽其他图标
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_业务流程_22
鼠标移至图标的中心会变成黑白色扇形,拖拽到另一图标,即可连接
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_数据库_23
双击图标,可修改名称
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_ide_24
3.导出图片
右击bpmn文件,选择【Refactor】–>【Rename】,修改其扩展名为.xml,点击【Refactor】
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_业务流程_25
接着右击此xml文件,选择【Diagrams】–>【Show BPMN 2.0 Diagrams…】,打开如下界面
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_业务流程_26
点击上图中【Export to file】图标,弹出【Save as image】窗口,点击【OK】即可导出png图片
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_业务流程_27
4.解决中文乱码问题
在IDEA的安装目录,在下面两个文件中加上​​​-Dfile.encoding=UTF-8​​​《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_业务流程_28
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_数据库_29
重启IDEA,乱码问题解决
《Activiti工作流框架》专题(一)-Activiti工作流框架基础入门_业务流程_30