实  战

Activiti实战

闫洪磊 著

 

为什么要写这本书

2011年年末,公司承接了一个保险类的业务系统,包含处理核心业务的ERP系统以及日常办公的OA系统,很明显这两种类型的系统都离不开工作流引擎的支持。我用一周时间对比了几个开源的工作流引擎,最后决定使用Activiti作为整套系统的工作流引擎。

现在回想起来,当初的学习过程是多么的“痛苦”啊!当时Activiti才刚满周岁,除了官方提供的尚能看得过去的用户手册之外,再无其他资料可供参考,这对于国内开发者来说尤为痛苦。仅有的用户手册全部都是英文的,为了学习Activiti只能打开翻译软件硬着头皮把手册看了一遍,当然也离不开打入引擎内部的利器—Javadocs。幸运的是,我的第一份工作(3年时间)是为政府单位开发OA系统,这有助于理解在学习Activiti过程中遇到的一些概念性的内容,在此基础上前后花了一周时间写出了第一个在本书中被讲“烂”掉的请假流程。

国内很多技术爱好者都会使用IM软件或论坛建立技术交流社区,也有一些人开设博客撰写相关技术文章。在开始学习Activiti时,很多人都尝试着去寻找这样的社区,结果由于社区规模小、热度不高,常听到学习资料匮乏以及没有成熟的Demo可供参考这样的声音。我喜欢研究技术也乐于分享,从08年就开始以博客的形式分享一些技术学习心得,在基本掌握Activiti的使用方法后就响应社区的号召在GitHub上公开了Activiti入门Demo项目—kft-activiti-demo,并在个人博客上发布了几篇与Activiti有关的博文。随着国内使用Activiti的企业越来越多,使得Activiti中文社区活跃度大大增加。最初我要花不少时间回答社区中提出的有关Activiti的问题,长此以往,同一个问题每天要回答多次,而且kft-activiti-demo也太过简单,只能作为入门参考,为了能系统地介绍Activiti,就萌发了撰写一本关于Activiti的书籍的想法。

在2012年6月,机械工业出版社华章公司的首席策划杨福川联系我,表示有意向出版一本Activiti方面的书籍。我们一拍即合,于是就有了这本书,这也让我相信机会是留给有准备的人的。这本书原本预计一年完成,不过由于工作与家庭的原因,在2013年一度中断了大半年,导致这本书的难产。在此也对期待已久的读者说声对不起,同时也是因为你们给予的支持与压力促使我最终完成这本书。

在学习和使用Activiti的过程中也遇到了一些Bug或功能缺陷,例如基本上每个初学者都会遇到的流程图中文乱码问题。对于这些问题最初会通过Bug跟踪系统向官方提交问题,在Activiti的源码从SVN切换到GitHub后就可以很方便地让全球的开发者参与进来。笔者也借助GitHub这个平台为Activiti贡献了一些代码,借此机会也呼吁技术爱好者多多参与开源。

读者对象

本书以“理论+实战”的方式引导读者学习,不仅介绍如何使用Activiti,还详细介绍了其遵循的BPMN 2.0规范,所以无论读者是以技术为主还是以业务需求为主,都适合阅读本书。虽然本书中大部分示例都是B/S架构,但不表示Activiti不能在C/S架构中使用。另外,Activiti也不是只针对Java语言的,被其官方定义为BPM平台,借助REST也可以让非Java语言的系统使用Activiti。

适合阅读本书的读者有以下几类:

Activiti用户和爱好者

Activiti代码贡献者

流程引擎相关的项目经理或者需求人员

Activiti开发者,或运维人员

使用Activiti开发流程平台的公司

如何阅读本书

本书分为四大部分:

第一部分(第1、2章)为准备篇,介绍整个体系结构及其特点,并为后面的内容配置开发环境。

第二部分(第3、4章)为基础篇,介绍两种流程设计器的使用,以及BPMN 2.0规范。

第三部分(第5~14章)为实战篇,本书中内容最多的部分,该部分以实战为主,包括流程定义、流程实例、任务、子流程、多实例、事件以及监听器等。

第四部分(第15~21章)为高级篇,通过集成各种服务、中间件来阐述Activiti不仅是引擎,更是一个BPM平台,最后还深入源码内部剖析Activiti的设计模式及PVM。

勘误和支持

由于笔者的水平有限,加之编写时间仓促,书中难免会出现一些错误或不准确的地方,恳请读者批评指正。为此,特意创建一个在线支持与应急方案的站点http://www.kafeitu.me/activiti-in-action.html。大家可以将书中的错误发布在Bug勘误表页面中,同时,在遇到任何问题时,你可以访问其Q&A页面,笔者将尽量在线上为你提供最满意的解答。书中的全部源文件除可以从华章网站下载外,还可以从笔者提供的这个网址下载,笔者也会将相应的功能更新及时更正出来。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱yanhonglei@gmail.com,期待能够得到你们的真挚反馈。

致谢

首先要感谢Tom Beayens发起了这么优秀的开源项目,以及Alfresco公司Tijs Rademakers带领的Activiti团队对此项目的无偿贡献与支持。

感谢Activiti中文社区中每一位充满激情的朋友—袁启勋、临远、翔子、姜维、王垒、于广岳、第二少、小股东、陈浩、jackyrong、卖字母为生,以及名单之外的更多朋友,感谢他们长期以来对社区的支持和贡献。

感谢机械工业出版社华章公司的编辑杨福川和姜影,我始终坚信专业的事找专业的人做,两位在这两年的时间中从各个方面支持我的写作,他们的鼓励和帮助引导我顺利完成全部书稿。

感谢我的驴友们,和他们一起登山探险让我精神得以放松,希望以后的空余时间我们继续用双脚丈量大地。

最后感谢我的家人,感谢他们对我的支持和鼓励。

谨以此书献给我最亲爱的家人,以及众多热爱Activiti的朋友们!

闫洪磊(咖啡兔)

于上海

第一部分 准 备 篇

第1章 认识Activiti2

1.1 什么是Activiti2

1.2 工作流基础3

1.2.1 什么是BPM3

1.2.2 工作流生命周期4

1.2.3 什么是BPMN5

1.3 Activiti的特点5

1.4 Activiti的应用6

1.5 Activiti架构与组件7

1.6 Activiti与jBPM5比较8

1.7 本章小结9

第2章 搭建Activiti开发环境10

2.1 下载Activiti10

2.1.1 目录结构10

2.1.2 Javadocs12

2.2 环境配置检查14

2.2.1 检查并安装JDK14

2.2.2 检查并安装Ant14

2.2.3 检查并安装Maven15

2.3 配置文件介绍16

2.3.1 Activiti配置文件16

2.3.2 Maven配置文件17

2.4 Hello World18

2.4.1 最简单的流程定义18

2.4.2 创建单元测试类20

2.4.3 运行Hello World21

2.4.4 添加业务节点21

2.5 Activiti Explorer25

2.5.1 配置并运行Activiti Explorer25

2.5.2 使用Activiti Explorer26

2.6 本章小结29

第二部分 基 础 篇

第3章 流程设计工具32

3.1 基于B/S架构的流程设计器Activiti Modeler32

3.1.1 Activiti Modeler特点32

3.1.2 下载signavio-core-components33

3.1.3 配置打包与运行33

3.1.4 Windows用户打包36

3.1.5 设计请假流程37

3.1.6 导出bpmn2.0.xml41

3.2 在Activiti Explorer中使用Activiti Modeler41

3.3 基于Eclipse插件的流程设计器Activiti Designer44

3.3.1 Activiti Designer特点44

3.3.2 安装Activiti Designer45

3.3.3 设计流程46

3.3.4 自动化51

3.3.5 升级历史遗留的流程设计55

3.3.6 导入Activiti Modeler设计56

3.3.7 泳池与泳道57

3.3.8 在Activiti Designer中使用泳道与泳池58

Activiti实战. 导读相关推荐

  1. Activiti实战--书籍阅读导读

    Activiti实战 - 2015年机械工业出版社出版社出版闫洪磊编著图书 <Activiti实战 >立足于实践,不仅让读者知其然,全面掌握Activiti架构.功能.用法.技巧和最佳实践 ...

  2. java activiti_《Activiti实战》PDF 下载

    图书目录: 本书推荐 前言 第一部分 准备篇 第1章 认识Activiti 1.1 什么是Activiti 1.2 工作流基础 1.2.1 什么是BPM 1.2.2 工作流生命周期 1.2.3 什么是 ...

  3. 工作流引擎 Activiti 实战系列

    Activiti整合Spring 一.Activiti与Spring整合开发 1.1 Activiti与Spring整合的配置 1).在pom.xml文件引入坐标 如下 <properties& ...

  4. Activiti实战. 1.5Activiti架构与组件

    1.5Activiti架构与组件 Activiti架构中最重要的肯定是引擎,当然还有刚刚提到的外部工具和组件,如图1-2所示. 下面依次介绍Activiti架构图中的各个组件. Activiti En ...

  5. Activiti实战. 1.2工作流基础

    1.2工作流基础 1.2.1什么是BPM BPM是Business Process Management的缩写,中文含义是业务流程管理,是一套达成企业各种业务环节整合的全面管理模式. BPM是为了实现 ...

  6. 数据挖掘与数据化运营实战.导读

    本书是目前有关数据挖掘在数据化运营实践领域比较全面和系统的著作,也是诸多数据挖掘书籍中为数不多的穿插大量真实的实践应用案例和场景的著作,更是创造性地针对数据化运营中不同分析挖掘课题类型,推出一一对应的 ...

  7. 腾讯Android自动化测试实战导读

    前 言 Preface 为什么要写这本书 早在2010年年底,我们团队就有出一本关于移动互联网测试书籍的计划(那时候移动互联网测试书籍基本没有),当时计划的内容涉及面比较广,涵盖测试设计.测试用例管理 ...

  8. activiti实战系列 并行网关(parallelGateWay)

    流程图 13.2:部署流程定义+启动流程实例 13.3:查询我的个人任务 13.4:完成我的个人任务 说明: 1) 一个流程中流程实例只有1个,执行对象有多个 2)  并行网关的功能是基于进入和外出的 ...

  9. activiti实战系列 activiti连线

    11:连线 11.1:流程图 注意:如果将流程图放置在和java类相同的路径,需要配置: 11.2:部署流程定义+启动流程实例 11.3:查询我的个人任务 11.4:完成任务 说明: 1)使用流程变量 ...

最新文章

  1. 【 Verilog HDL 】函数(function)与任务(task)简单介绍
  2. 劫起|再谈Linux epoll惊群问题的原因和解决方案
  3. cufon,在网页上画出特殊字体
  4. minheight能继承吗_民法典亮点盘点 | 侄子能继承叔叔的遗产吗?
  5. 表情包+外卖+壁纸小程序源码
  6. ContextLoaderListener的作用详解
  7. Java:一步步带你深入了解神秘的Java反射机制
  8. Elasticsearch--入门-_put post方式添加数据---全文检索引擎ElasticSearch工作笔记005
  9. CSS3魔法堂:说说Multi-column Layout
  10. linux打开文件程序,linux – 获取打开特定文件的应用程序列表
  11. COVID-19 AI-related Technical Paper
  12. Friends第七季第八季, Candler Monica终于结婚了,Joey爱上了Rachel
  13. 在word中在方框里打钩
  14. 能耗在线监测系统在酒店节能管理中的应用
  15. 啥也不懂,实现Deepin系统如何有效安装TL-WDN5200H v2.0 linux驱动,自测成功
  16. word-search
  17. centos6.2安装Opera
  18. 微信服务器带宽是多少?使用大带宽服务器有什么好处?
  19. 使用easypoi将数据导入excel中
  20. Zookeeper高频面试题36问(附答案)

热门文章

  1. thinkphp 个别字段无法更新_Ripro子主题:jizhichlid极致主题,原创首发永久更新,不限域名永乐使用...
  2. 区分 UML 类图中的几种关系
  3. Sonar问题解决:普通方法调用静态属性
  4. 输出商品列表 用户输入序号 显示用户选中的商品
  5. Centos 6.5 搭建NFS服务器笔记
  6. 字符串匹配的KMP算法——Python实现
  7. Sound Mixer Fader
  8. 步步为营:Asp.Net 淘宝通用应用接口攻略
  9. 最亲密接触DhtmlJScript开发细节
  10. Linux(DeepInOS) 下 mysql 的安装与基本配置