1. activiti之工作流介绍

news/2024/11/15 2:28:59/

前言

可能很多人对activiti 这个名词是陌生的,但是说到请假审批流程,贷款审批流程,加班申请流程等这些名词,相信大家都不会陌生。那么如果我们要实现这些流程的控制,流转,终止结束,该怎么实现呢?本专栏后面会详细介绍。

1. 工作流概念

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

1.1 工作流系统

一个软件系统中具有工作流的功能,我们把它称为工作流系统,一个系统中工作流的功能是什么?就是对系统的业务流程进行自动化管理,所以工作流是建立在业务流程的基础上,所以一个软件的系统核心根本上还是系统的业务流程,工作流只是协助进行业务流程管理。即使没有工作流业务系统也可以开发运行,只不过有了工作流可以更好的管理业务流程,提高系统的可扩展性。

1.2 适用行业

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

1.3 具体应用

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

1.4 实现方式

在没有专门的工作流引擎之前,我们之前为了实现流程控制,通常的做法就是采用状态字段的值来跟踪流程的变化情况。这样不同角色的用户,通过状态字段的取值来决定记录是否显示。(比如 1是提交,2是部门领导审批,3是总经理审批,4是老板审批。。。)那么如果中间突然要加一个审批环节,比如人事审批,此时我们的状态枚举值好维护(比如加个5 人事审批),但是流程的顺序依赖关系就又得另外管理。

针对有权限可以查看的记录,当前用户根据自己的角色来决定审批是否合格的操作。如果合格将状态字段设置一个值,来代表合格;当然如果不合格也需要设置一个值来代表不合格的情况。

这是一种最为原始的方式。通过状态字段虽然做到了流程控制,但是当我们的流程发生变更的时候,这种方式所编写的代码也要进行调整。

那么有没有专业的方式来实现工作流的管理呢?将这种流程管理,与我们的业务解耦,我们可以随意排列组合流程中间的节点,最终实现业务逻辑的控制。当业务流程变化之后,我们的程序可以不用改变,如果可以实现这样的效果,那么我们的业务系统的适应能力就得到了极大提升。

本专栏中的activiti 就是实现这种流程管理的经典框架。

2. activiti 介绍

Activiti是一个工作流引擎, activiti可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN2.0进行定义,业务流程按照预先定义的流程进行执行,实现了系统的流程由activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系统的健壮性,同时也减少了系统开发维护成本。
activiti官网

2.1 BPM

BPM(Business Process Management),即业务流程管理,是一种规范化的构造端到端的业务流程,以持续的提高组织业务效率。常见商业管理教育如EMBA、MBA等均将BPM包含在内。

2.2 BPM软件

BPM软件就是根据企业中业务环境的变化,推进人与人之间、人与系统之间以及系统与系统之间的整合及调整的经营方法与解决方案的IT工具。

通过BPM软件对企业内部及外部的业务流程的整个生命周期进行建模、自动化、管理监控和优化,使企业成本降低,利润得以大幅提升。

BPM软件在企业中应用领域广泛,凡是有业务流程的地方都可以BPM软件进行管理,比如企业人事办公管理、采购流程管理、公文审批流程管理、财务管理等。

2.3 BPMN

BPMN(Business Process Model Notation)- 业务流程模型和符号 是由BPMI(BusinessProcess Management
Initiative)开发的一套标准的业务流程建模符号,使用BPMN提供的符号可以创建业务流程。

2004年5月发布了BPMN1.0规范.BPMI于2005年9月并入OMG(The Object Management Group对象管理组织)组织。OMG于2011年1月发布BPMN2.0的最终版本。

BPMN 是目前被各 BPM 厂商广泛接受的 BPM 标准。Activiti 就是使用 BPMN 2.0 进行流程建模、流程执行管理,它包括很多的建模符号。BPMN定义了业务流程图,其基于流程图技术,同时为创建业务流程操作的图形化模型进行了裁减。业务流程的模型就是图形化对象的网图,包括活动(也可以说工作)和定义操作顺序的流控制。

2.3.2 BPMN 四种基本元素

  1. 流对象(Flow Objects):包括事件、活动、网关,是BPMN的核心元素;
  2. 连接对象(Connecting Objects):包括顺序流、消息流、关联;
  3. 泳道(Swimlanes):包括池和道两种类型;
  4. 人工信息(Artifacts):包括数据对象、组、注释。

在这里插入图片描述

更多关于bpmn的介绍,可以看这篇文章

2.4 使用步骤

2.4.1 部署activiti

Activiti是一个工作流引擎(其实就是一堆jar包API),业务系统访问(操作)activiti的接口,就可以方便的操作流程相关数据,这样就可以把工作流环境与业务系统的环境集成在一起。

2.4.2 流程定义

使用activiti流程建模工具(activity-designer)定义业务流程(.bpmn文件) 。
.bpmn文件就是业务流程定义文件,通过xml定义业务流程。

2.4.3 流程定义部署

activiti部署业务流程定义(.bpmn文件)。
使用activiti提供的api把流程定义内容存储起来,在Activiti执行过程中可以查询定义的内容
Activiti执行把流程定义内容存储在数据库中

2.4.4 启动一个流程实例

流程实例也叫:ProcessInstance
启动一个流程实例表示开始一次业务流程的运行。
在员工请假流程定义部署完成后,如果张三要请假就可以启动一个流程实例,如果李四要请假也启动一个流程实例,两个流程的执行互相不影响。

2.4.5 用户查询待办任务(Task)

因为现在系统的业务流程已经交给activiti管理,通过activiti就可以查询当前流程执行到哪了,当前用户需要办理什么任务了,这些activiti帮我们管理了,而不需要开发人员自己编写在sql语句查询。

2.4.6 用户办理任务

用户查询待办任务后,就可以办理某个任务,如果这个任务办理完成还需要其它用户办理,比如采购单创建后由部门经理审核,这个过程也是由activiti帮我们完成了。

2.4.7 流程结束

当任务办理完成没有下一个任务结点了,这个流程实例就完成了。

以上,本人菜鸟一枚,如有错误,请不吝指正。


http://www.ppmy.cn/news/637588.html

相关文章

2021-10-05 linux学习-部署(十二) 之Bind服务程序

Bind服务程序 BIND(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。 1 安装Bind dnf install -y bind-chroot 在bind服务程序中有下面这3个比较关键的文件 主配置文…

Debian 11 “bullseye” 安装笔记

Debian 11 “bullseye” 安装笔记 请访问原文链接:https://sysin.org/blog/debian-11-install/,查看最新版。原创作品,转载请保留出处。 作者:gc(at)sysin.org,主页:www.sysin.org ISO 下载:…

Linux就该这么学(三)

管道符、重定向与环境变量 一、输出重定向 若不区分标准输出和错误输出,只要命令有输出信息则全部追加写入到文件中。这就要用到&>>操作符了 如下:将ww.txt中的文件内容追加写入到redme.txt文件中(若redme.txt不存在,则…

【钓鱼】与【反钓鱼】的技术剖析

本文来自作者 肖志华 在 GitChat 上分享「钓鱼网站与反钓鱼技术剖析(圆桌会议)」,「阅读原文」查看交流实录 「文末高能」 编辑 | 仓井 钓鱼网站的简介阐述 钓鱼网站通常指伪装成银行及电子商务,窃取用户提交的银行帐号、密码等私…

开虚拟机服务器cpu百分之百应该管,为何我在虚拟机里开游戏CPU使用率90--100

这个病毒早成的原因也是有可能的。给你些资料参考下把。 经常出现CPU占用100%的情况,主要问题可能发生在下面的某些方面: CPU占用率高的九种可能 1、防杀毒软件造成故障 由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。处理方式:基本上没…

译: Linux 操作系统知多少

译: Linux 操作系统知多少 1.1 介绍1.2 选择发行指南1.2.1 Linux Mint1.2.2 Ubuntu1.2.3 MX Linux1.2.4 Arch Linux1.2.5 Gentoo1.2.6 Slackware Linux1.2.7 Debian GNU / Linux1.2.8 Fedora1.2.9 openSUSE1.2.10 CentOS1.2.11 FreeBSD 1.3 使用建议1.4 参考资料 直到今天为止,…

主要Linux发行版和FreeBSD概述

介绍 令人困惑的选择和数量不断增加的Linux发行版可能会使那些刚接触Linux的人感到困惑。这就是创建此页面的原因。它列出了10个Linux发行版(加上对FreeBSD的荣誉称号,到目前为止,它是所有BSD中最受欢迎的发行版),这些…

Fabric学习--环境搭建

前言:这是本人学习fabric的一个安装笔记,本来觉得应该很简单,一切从头开始安装,因为很久没有干活了,所以,前后安装了好几天,因为碰到的各种问题很多,有自己小白的错误,也…