Activiti工作流引擎开发系列
Activiti工作流引擎开发系列-01
作者:Jesai
没有伞的孩子,只能光脚奔跑!
前言:
初次接触工作流这个概念是自从2014年11月份开始,当时是由于我的毕业设计需要,还记得当时我毕业设计的题目是《基于BS结构模式的工程管理系统设计与实现——工程计划管理》,里面涉及到一个工程管理的审批。正好我当时12月份出来实习,实习所在的公司所做的OA系统普遍也需要工作流,但是公司项目所用的工作流是CCFLOW,这是一个基于C#的国产开源工作流引擎,但是我毕业设计做的是java,所以从2014年的11月开始,我就开始学习Activity。一直到今年的三月份,我终于形成一整个工作流的理论框架。其中有许多启发源自于目前所在公司的项目开发经验。算了一下,就整整学了2年两三个月吧。
工作流有多重要?也不是很重要。看你所在的公司用不用而已。这么说吧,目前我公司的工作流框架,核心部分只有一个人懂得。其他人都不会。试想,如果有一天,这个管理工作流的人要跳槽,那么老板会给他加个4K以上的工资挽留,我估计还是有可能发生的。学习工作流,不仅仅要学习别人的开源框架,还得慢慢的上升到工作流的思想,有那么一天,也许能开发出来自己的工作流引擎。
什么是工作流?
什么是工作流?对于没接触过工作流的人或许觉得很陌生。打个比例吧,假如你要请假,那么请假的时候需要向上级申请。有管理系统的公司请假流程一般使用公司的内部管理系统申请,然后逐级上报审批。这一整个审批过程的控制,就需要工作流来控制了。


如果要使用专业的术语来说,工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。在计算机中,工作流属于计算机支持的协同工作(CSCW)的一部分。后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。
工作流主要解决的主要问题是:为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。
工作流概念起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序活动而提出的一个概念,目的是通过将工作分解成定义良好的任务或角色,按照一定的规则和过程来执行这些任务并对其进行监控,达到提高工作效率、更好的控制过程、增强对客户的服务、有效管理业务流程等目的。尽管工作流已经取得了相当的成就,但对工作流的定义还没有能够统一和明确。
Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完成。
1993年工作流管理联盟(Workflow Management Coalition,WfMC)作为工作流管理的标准化组织而成立,标志着工作流技术逐步走向成熟。WfMC对工作流给出定义为:工作流是指一类能够完全自动执行的经营过程,根据一系列过程规则,将文档、信息或任务在不同的执行者之间进行传递与执行。
工作流的主要功能
工作流管理系统(WorkflowManagementSystem,WFMS)是定义、创建、执行工作流的系统。在最高层上,WFMS应能提供以下三个方面的功能支持:
建造功能:对工作流过程及其组成活动定义和建模;
运行控制功能:在运行环境中管理工作流过程,对工作流过程中的活动进行调度;
运行交互功能:指在工作流运行中,WFMS与用户(业务工作的参与者或控制者)及外部应用程序工具交互的功能。
工作流管理系统带来的好处
由于信息技术的发展和日趋激烈的商业竞争,人们不再满足于独立、零散的办公自动化和计算机应用,而是需要综合的、集成化的解决方案。作为一种对常规性事务进行管理、集成的技术,WFMS的出现是必然的。它可以带来以下收益:
1.改进和优化业务流程,提高业务工作效率;
2.实现更好的业务过程控制,提高顾客服务质量;
3.提高业务流程的柔性等。
工作流的应用领域

在后面,我将会把握整合Activiti开发的一个过程写一些列的文章。当然时间紧急,写出来的技术文可能比较粗糙,但是主要的是干货,后续我将会慢慢的完善整个系列的修饰。希望对此可以给广大开发者一个宝贵的开发经验。如果条件允许,我将会购买云主机和域名把项目上线给大家参考。
我目前整合的基本框架已经完成,后续还有很多的优化和完善工作要做,但是目前已经能够运行起来。
主要模块:

流程模型

整合Activity流程设计器

部署流程

查看部署流程图

部署操作

待办任务

待办操作

待办流程进度


已办任务

数据库:

待做:挂起,解挂,流程转发,流程查询,流程表单自动化、流程指派、流程追回······
关于源码问题:因为我基于我公司的权限系统项目上面开发的,不方便开源。但是以后如果时间充足我会考虑开源的。为了方便大家学习交流,我建立一个Activiti开发群,希望可以共同进步。文章可能有很多不严谨的地方。欢迎批评斧正。
QQ群:634320089
Activiti工作流引擎开发系列的更多相关文章
- Activiti工作流引擎参考资料
Activiti工作流引擎使用 工作流-Activiti核心API介绍 传智播客Activiti工作流视频教程(企业开发实例讲解) 工作流引擎Activiti演示项目 http://www.kafei ...
- Activiti工作流引擎简介
Activiti工作流引擎简介 一.概述 Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活 ...
- Activiti工作流引擎数据库表结构
Activiti工作流引擎数据库表结构 一.数据库表的命名 Acitiviti数据库中表的命名都是以ACT_开头的.第二部分是一个两个字符用例表的标识.此用例大体与服务API是匹配的. ACT_RE_ ...
- activiti工作流引擎
参考文章 Activiti-5.18.0与springMvc项目集成和activiti-explorer单独部署Web项目并与业务数据库关联方法(AutoEE_V2实现方式) https://blog ...
- Activiti工作流引擎使用
http://www.kafeitu.me/activiti/2012/03/22/workflow-activiti-action.html 1.简单介工作流引擎与Activiti 对于工作流引擎的 ...
- Activiti工作流引擎核心介绍
引言 Activiti 作为一个遵从 Apache 许可的工作流和业务流程管理开源平台,其核心是基于 Java 的超快速.超稳定的 BPMN 2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更 ...
- Activiti工作流引擎使用详解(一)
一.IDEA安装activiti插件 在插件库中查找actiBPM,安装该插件,如果找不到该插件,请到插件库中下载该包手动安装,插件地址 http://plugins.jetbrains.com/pl ...
- 基于Activiti工作流引擎实现的请假审核流程
概要 本文档介绍的是某商用中集成的Activiti工作流的部署及使用,该框架用的Activiti版本为5.19.0.本文档中主要以一个请假流程为例子进行说明,该例子的流程图如下: 这是一个可以正常运作 ...
- SpringBoot开发案例之整合Activiti工作流引擎
前言 JBPM是目前市场上主流开源工作引擎之一,在创建者Tom Baeyens离开JBoss后,JBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于Drools Flow重头来过,目前官 ...
随机推荐
- es6—变量的解构赋值
数组的解构赋值 ]]]]]]] = []}} = {}} = {}})]: first]: last} = arr} = {}) {}))}))}) {}))}))].]]]])})] }}} = { ...
- 12627 - Erratic Expansion——[递归]
Piotr found a magical box in heaven. Its magic power is that if you place any red balloon inside it ...
- 递归实现深拷贝( 只要学过js递归,看不懂找我包会 )
要用递归实现深拷贝,首先说说什么是深拷贝和浅拷贝 浅拷贝:一个值赋给另一个值,当原先的值不改变地址的情况下改变数据,另一个值跟着变 深拷贝:一个值赋给另一个值,当原先的值不改变地址的情况下改变数据,另 ...
- HDU 1711 Number Sequence (KMP 入门)
Number Sequence Problem Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and ...
- CF1045G AI robots
CF1045G AI robots 题目大意就不说了 这道题可以用CDQ分治做 但是,如何选择CDQ分治的维度一直是CDQ分治的难点所在 这道题我们有三种选择 1.让智商高的数智商低的 2.让看的近的 ...
- DP刷题记录
目录 dp刷题记录 codeforces 706C codeforces 940E BZOJ3997 POJ2279 GYM102082B GYM102082D codeforces132C L3-0 ...
- BGP团体属性的应用案例
XRV1 ===================================================================== version 15.5service times ...
- 魅族--魅蓝metal
评论:金属潮流平民化
- The second day of Crawler learning
用BeatuifulSoup和Requests爬取猫途鹰网 服务器与本地的交换机制 我们每次浏览网页都是再向网页所在的服务器发送一个Request,然后服务器接受到Request后返回Response ...
- windows7下mysql8.0.18部署安装
一.前期准备(windows7+mysql-8.0.18-winx64) 1.下载地址:https://dev.mysql.com/downloads/ 2.选择直接下载不登录账号,下载的压缩包大概两 ...