疯狂Workflow讲义——基于Activiti的工作流应用开发

出版日期:2014-5
ISBN:9787121226731
作者:杨恩雄
页数:542页

内容概要

杨恩雄,从事近十年的Java EE企业应用开发,曾任中企动力系统设计师,中企开源项目经理,参与过多个企业OA、ERP项目的设计与架构工作,具有丰富的B/S开发经验以及系统架构经验,现就职于数码辰星科技公司,担任项目经理一职,主要进行大地数字影院的信息化建设工作。

书籍目录

第1章 Activiti介绍
1
1.1 工作流介绍
2
1.2 BPMN 2.0规范简述
2
1.2.1 BPMN 2.0概述
3
1.2.2 BPMN 2.0元素
3
1.2.3 BPMN 2.0的XML结构
4
1.3 Activiti介绍
4
1.3.1 Activiti的出现
5
1.3.2 Activiti的发展
5
1.3.3 选择Activiti还是jBPM
5
1.4 本章小结
5
第2章 安装与运行Activiti
6
2.1 下载与运行Activiti
7
2.1.1 下载和安装Ant
7
2.1.2 下载和安装Maven
8
2.1.3 下载和安装Activiti
9
2.1.4 运行第一个Activiti应用
9
2.2 安装开发环境
11
2.2.1 下载Eclipse
11
2.2.2 安装Activiti插件
11
2.2.3 获取Activiti源代码
13
2.3 编写第一个Activiti程序
15
2.3.1 如何运行本书案例
15
2.3.2 建立工程环境
15
2.3.3 创建配置文件
16
2.3.4 创建流程文件
16
2.3.5 加载流程文件与启动流程
17
2.4 本章小结
18
第3章 Activiti数据库设计
19
3.1 通用数据表
20
3.1.1 资源表
20
3.1.2 属性表
20
3.2 流程存储表
21
3.2.1 部署数据表
21
3.2.2 流程定义表
21
3.3 身份数据表
21
3.3.1 用户表
21
3.3.2 用户账号(信息)表
22
3.3.3 用户组表
22
3.3.4 关系表
22
3.4 运行时数据表
23
3.4.1 流程实例(执行流)表
23
3.4.2 流程任务表
23
3.4.3 流程参数表
24
3.4.4 流程与身份关系表
24
3.4.5 工作数据表
24
3.4.6 事件描述表
25
3.5 历史数据表
25
3.5.1 流程实例表
25
3.5.2 流程明细表
26
3.5.3 历史任务表和历史行为表
26
3.5.4 附件表和评论表
26
3.6 本章小结
27
第4章 Activiti流程引擎配置
28
4.1 ProcessEngineConfiguration
29
4.1.1 createProcessEngineConfigurationFrom ResourceDefault方法
29
4.1.2 createProcessEngineConfiguration FromResource方法
30
4.1.3 createProcessEngineConfiguration FromInputStream方法
30
4.1.4 createStandaloneInMemProcess EngineConfiguration方法
30
4.1.5 createStandaloneProcessEngine Configuration方法
31
4.2 数据源配置
31
4.2.1 Activiti支持的数据库
32
4.2.2 Activiti与Spring
32
4.2.3 JDBC配置
32
4.2.4 DBCP数据源配置
33
4.2.5 C3P0数据源配置
34
4.2.6 Activiti其他数据源配置
35
4.2.7 databaseSchemaUpdate配置
35
4.2.8 databaseType配置
36
4.3 其他属性配置
37
4.3.1 history配置
37
4.3.2 jobExecutorActivate配置
38
4.3.3 邮件服务器配置
38
4.4 ProcessEngineConfiguration bean
38
4.4.1 ProcessEngineConfiguration及其子类
38
4.4.2 自定义ProcessEngineConfiguration 39
4.5 Activiti的命令拦截器
41
4.5.1 命令模式
41
4.5.2 责任链模式
43
4.5.3 编写自定义拦截器
45
4.6 本章小结
47
第5章 流程引擎的创建
48
5.1 ProcessEngineConfiguration的buildProcessEngine方法
49
5.2 ProcessEngines
49
5.2.1 init与getDefaultProcessEngine方法
49
5.2.2 registerProcessEngine和unregister方法
50
5.2.3 retry方法
50
5.2.4 destroy方法
51
5.3 ProcessEngine对象
51
5.3.1 服务组件
52
5.3.2 close方法
52
5.3.3 流程引擎名称
53
5.4 本章小结
54
第6章 用户组与用户
55
6.1 用户组管理
56
6.1.1 Group对象
56
6.1.2 创建用户组
56
6.1.3 修改用户组
57
6.1.4 删除用户组
58
6.2 Activiti数据查询
58
6.2.1 查询对象
59
6.2.2 list方法
59
6.2.3 listPage方法
60
6.2.4 count方法
60
6.2.5 排序方法
61
6.2.6 ID排序问题
62
6.2.7 多字段排序
63
6.2.8 singleResult方法
65
6.2.9 用户组数据查询
65
6.3 用户管理
67
6.3.1 User对象
67
6.3.2 添加用户
67
6.3.3 修改用户
68
6.3.4 删除用户
68
6.3.5 验证用户密码
69
6.3.6 用户数据查询
70
6.3.7 设置用户权限
71
6.4 用户信息管理
72
6.4.1 添加和删除用户信息
72
6.4.2 查询用户信息
73
6.4.3 添加与删除用户账号
74
6.4.4 查询用户信息
75
6.4.5 设置用户图片
76
6.5 用户组与用户关系
77
6.5.1 绑定关系
77
6.5.2 解除绑定
78
6.5.3 查询用户组下的用户
78
6.5.4 查询用户所属的用户组
79
6.6 本章小结
80
第7章 流程存储
81
7.1 流程文件部署
82
7.1.1 Deployment对象
82
7.1.2 DeploymentBuilder对象
82
7.1.3 添加输入流资源
83
7.1.4 添加classpath资源
84
7.1.5 添加字符串资源
85
7.1.6 添加压缩包资源
85
7.1.7 修改部署名称
86
7.1.8 过滤重复部署
86
7.1.9 资源部署
87
7.2 流程定义的管理
87
7.2.1 ProcessDefinition对象
87
7.2.2 流程部署
88
7.2.3 流程图部署
89
7.2.4 中止与激活流程定义
90
7.3 流程定义权限
91
7.3.1 设置流程定义的用户权限
91
7.3.2 设置流程定义的用户组权限
93
7.3.3 IdentityLink对象
93
7.3.4 查询权限数据
93
7.4 RepositoryService数据查询与删除
95
7.4.1 查询部署资源
96
7.4.2 查询流程文件
96
7.4.3 查询流程图
97
7.4.4 查询部署资源名称
98
7.4.5 删除部署资源
98
7.4.6 DeploymentQuery对象
99
7.4.7 ProcessDefinitionQuery对象
100
7.5 本章小结
100
第8章 流程任务管理
101
8.1 任务的创建与删除
102
8.1.1 Task对象
102
8.1.2 创建与保存Task实例
103
8.1.3 删除任务
103
8.2 任务权限
104
8.2.1 设置候选用户组
105
8.2.2 设置候选用户
106
8.2.3 权限数据查询
106
8.2.4 设置任务持有人
108
8.2.5 设置任务受理人
109
8.2.6 添加任务权限数据
110
8.2.7 删除用户组权限
112
8.2.8 删除用户权限
113
8.3 任务参数
115
8.3.1 基本类型参数设置
115
8.3.2 序列化参数
116
8.3.3 获取参数
117
8.3.4 参数作用域
118
8.3.5 设置多个参数
119
8.4 任务附件管理
120
8.4.1 AttachmentEntity对象
120
8.4.2 创建任务附件
120
8.4.3 附件查询
122
8.4.4 删除附件
123
8.5 任务评论与事件记录
123
8.5.1 CommentEntity对象
123
8.5.2 新增任务评论
124
8.5.3 事件的记录
124
8.5.4 数据查询
126
8.6 任务声明与完成
126
8.6.1 任务声明
126
8.6.2 任务完成
127
8.7 本章小结
128
第9章 流程控制
129
9.1 流程实例与执行流
130
9.1.1 流程实例与执行流概念
130
9.1.2 流程实例和执行流对象(ProcessInstance与Execution) 130
9.2 启动流程
131
9.2.1 startProcessInstanceById方法
131
9.2.2 startProcessInstanceByKey方法
133
9.2.3 startProcessInstanceByMessage
134
9.3 流程参数
135
9.3.1 设置与查询流程参数
136
9.3.2 流程参数的作用域
136
9.3.3 其他设置参数方法
138
9.4 流程操作
138
9.4.1 发送信号
138
9.4.2 触发信号事件
140
9.4.3 触发消息事件
143
9.4.4 中断与激活流程
145
9.4.5 删除流程
145
9.5 流程数据查询
146
9.5.1 执行流查询
146
9.5.2 流程实例查询
149
9.6 本章小结
150
第10章 历史数据管理和流程引擎管理
151
10.1 历史数据管理
152
10.1.1 历史流程实例查询
152
10.1.2 历史任务查询
154
10.1.3 历史行为查询
157
10.1.4 历史流程明细查询
159
10.1.5 删除历史流程实例和历史任务
161
10.2 工作的产生
162
10.2.1 异步任务产生的工作
162
10.2.2 定时中间事件产生的工作
164
10.2.3 定时边界事件产生的工作
165
10.2.4 定时开始事件产生的工作
166
10.2.5 流程抛出事件产生的工作
167
10.2.6 工作的执行
169
10.3 工作管理
170
10.3.1 JobQuery对象
170
10.3.2 获取工作异常信息
173
10.3.3 设置工作执行次数
173
10.4 数据库管理
174
10.4.1 查询引擎属性
175
10.4.2 数据表信息查询
175
10.4.3 数据库操作
176
10.4.4 数据表查询
177
10.5 本章小结
178
第11章 流程事件
179
11.1 事件分类
180
11.1.1 按照事件的位置分类
180
11.1.2 按照事件的特性分类
180
11.2 事件定义
180
11.2.1 定时器事件定义
181
11.2.2 cron表达式
181
11.2.3 错误事件定义
183
11.2.4 信号事件定义
183
11.2.5 消息事件定义
184
11.2.6 取消事件定义
184
11.2.7 补偿事件定义
185
11.2.8 其他事件定义
185
11.3 开始事件
185
11.3.1 无指定开始事件
185
11.3.2 定时器开始事件
186
11.3.3 消息开始事件
187
11.3.4 错误开始事件
189
11.4 结束事件
191
11.4.1 无指定结束事件
191
11.4.2 错误结束事件
191
11.4.3 取消结束事件和取消边界事件
193
11.5 边界事件
196
11.5.1 定时器边界事件
196
11.5.2 错误边界事件
198
11.5.3 信号边界事件
200
11.5.4 补偿边界事件
202
11.6 中间事件
205
11.6.1 中间事件分类
205
11.6.2 定时器中间事件
206
11.6.3 信号中间Catching事件
207
11.6.4 信号中间Throwing事件
209
11.6.4 消息中间事件
211
11.6.5 无指定中间事件
211
11.7 补偿中间事件
211
11.7.1 补偿执行次数
211
11.7.2 补偿执行范围
213
11.7.3 补偿的执行顺序
217
11.7.4 补偿的参数设置
219
11.8 本章小结
220
第12章 流程任务
221
12.1 BPMN 2.0中的任务
222
12.1.1 任务的继承
222
12.1.2 XML约束
222
12.1.3 任务的类型
224
12.2 用户任务
225
12.2.1 分配任务候选人
225
12.2.2 分配任务受理人
226
12.2.3 权限分配扩展
227
12.2.4 使用任务监听器进行权限分配
228
12.2.5 使用JUEL分配权限
229
12.3 脚本任务
231
12.3.1 脚本任务
231
12.3.2 JavaScript脚本
232
12.3.3 Groovy脚本
233
12.3.4 设置返回值
233
12.3.5 JUEL脚本
234
12.4 服务任务
235
12.4.1 Java服务任务
235
12.4.2 实现JavaDelegate
236
12.4.3 使用普通Java Bean
237
12.4.4 在Activiti中调用Web Service
238
12.4.5 import元素
238
12.4.6 itemDefinition元素和message元素
239
12.4.7 interface元素与operation元素
239
12.4.8 设置Web Service参数与返回值
239
12.4.9 发布Web Service
240
12.4.10 使用Web Service Task
241
12.4.11 JavaDelegate属性注入
244
12.4.12 在JavaDelegate中调用Web Service
246
12.4.13 Shell任务
247
12.5 其他任务
249
12.5.1 手工任务和接收任务
249
12.5.2 邮件任务
250
12.5.3 Mule任务和业务规则任务
252
12.6 任务监听器
252
12.6.1 使用class指定监听器
252
12.6.2 使用expression指定监听器
253
12.6.3 使用delegateExpression指定监听器
254
12.6.4 监听器的触发
254
12.6.5 属性注入
255
12.7 流程监听器
256
12.7.1 配置流程监听器
256
12.7.2 触发流程监听器的事件
257
12.8 本章小结
259
第13章 其他流程元素
260
13.1 子流程
261
13.1.1 嵌入式子流程
261
13.1.2 调用式子流程
263
13.1.3 调用式子流程的参数传递
265
13.1.4 事件子流程
267
13.1.5 事务子流程
269
13.2 顺序流
271
13.2.1 条件顺序流
272
13.2.2 默认顺序流
273
13.3 流程关口
275
13.3.1 单向关口
275
13.3.2 并行关口
277
13.3.3 兼容关口
279
13.3.4 事件关口
281
13.4 流程活动特性
283
13.4.1 多实例活动
283
13.4.2 设置循环数据
285
13.4.3 获取循环元素
286
13.4.4 循环的内置参数
288
13.4.5 循环结束条件
290
13.4.6 补偿处理者
291
13.5 本章小结
292
第14章 Activiti与规则引擎
293
14.1 概述
294
14.1.1 规则引擎Drools
294
14.1.2 Drools下载与安装
294
14.2 开发第一个Drools应用
295
14.2.1 建立Drools环境
295
14.2.2 编写规则
296
14.2.3 加载与运行
296
14.3 Drools规则语法概述
297
14.3.1 规则文件结构
297
14.3.2 关键字
298
14.3.3 规则编译
299
14.4 类型声明
299
14.4.1 声明新类型
300
14.4.2 使用ASM操作字节码
301
14.4.3 类型声明的使用
302
14.4.4 类型的继承
303
14.4.5 声明元数据
304
14.5 函数和查询
305
14.5.1 函数定义和使用
305
14.5.2 查询的定义和使用
307
14.6 规则语法
308
14.6.1 全局变量
308
14.6.2 规则属性
310
14.6.3 条件语法
313
14.6.4 行为语法
316
14.7 Activiti调用规则
317
14.7.1 业务规则任务
317
14.7.2 制定销售单优惠规则
318
14.7.3 实现销售流程
321
14.8 本章小结
323
第15章 整合第三方框架
324
15.1 Spring框架
325
15.1.1 Spring的IoC
325
15.1.2 Spring的AOP
326
15.1.3 使用IoC
326
15.1.4 使用AOP
327
15.2 Activiti整合Spring
328
15.2.1 SpringProcessEngineConfiguration 328
15.2.2 ProcessEngineFactoryBean
330
15.2.3 在bean中注入Activiti服务
331
15.2.4 在Activiti中使用Spring的bean 331
15.3 Activiti整合Web项目
333
15.3.1 安装Tomcat插件
334
15.3.2 加入Spring
336
15.3.3 整合Hibernate
337
15.3.4 配置声明式事务
339
15.3.5 添加Struts配置
340
15.3.6 实现一个最简单的逻辑
340
15.3.7 测试事务
342
15.3.8 加入Activiti
343
15.4 Mule ESB
344
15.4.1 Mule简介
344
15.4.2 开发第一个Mule应用
344
15.4.3 请求Mule服务
345
15.4.4 代理HTTP服务
346
15.4.5 Mule与Spring整合
347
15.4.6 在Activiti中向Mule发送请求
348
15.5 本章小结
351
第16章 Activiti开放的Web Service
352
16.1 Web Service简介
353
16.1.1 Web Service
353
16.1.2 SOAP协议
353
16.1.3 REST架构
353
16.1.4 REST的设计准则
354
16.1.5 REST的主要特性
354
16.1.6 SOAP RPC与REST的区别
355
16.2 Restlet简介
355
16.2.1 在Web工程中使用Restlet
356
16.2.2 发布REST的Web Service
357
16.2.3 编写客户端
358
16.2.4 访问控制
358
16.2.5 部署Activiti的Web Service
361
16.2.6 准备测试数据
361
16.2.7 查询流程引擎信息
362
16.2.8 使用HttpClient编写客户端
362
16.2.9 使用CXF编写客户端
363
16.3 流程存储服务
364
16.3.1 上传部署文件
364
16.3.2 部署数据查询
366
16.3.3 部署资源查询
367
16.3.4 查询单个部署资源
368
16.3.5 删除部署资源
369
16.3.6 删除多个部署资源
370
16.4 流程服务
371
16.4.1 查询流程定义集合
371
16.4.2 流程定义表单属性
372
16.4.3 查询流程定义表单
373
16.4.4 查询流程图
373
16.4.5 启动流程
373
16.4.6 查询流程实例集合
374
16.4.7 查询单个流程实例
374
16.4.8 查询流程图片
375
16.4.9 查询流程实例任务
376
16.4.10 发送信号
376
16.5 流程任务服务
377
16.5.1 查询任务摘要
377
16.5.2 获取任务集合
378
16.5.3 查询单个任务
379
16.5.4 查询任务表单
379
16.5.5 任务操作
379
16.6 身份服务
380
16.6.1 身份验证
380
16.6.2 查询用户
380
16.6.3 查询用户所属的用户组
381
16.6.4 查询用户组
381
16.6.5 查询用户组下的用户
381
16.7 管理服务
382
16.7.1 工作管理
382
16.7.2 数据库管理
382
16.8 本章小结
382
第17章 Activiti功能进阶
384
17.1 流程虚拟机
385
17.1.1 概述
385
17.1.2 初试PVM
385
17.1.3 自定义流程语言
386
17.1.4 执行流程语言
389
17.2 Activiti的表单
391
17.2.1 概述
392
17.2.2 表单属性
392
17.2.3 外部表单
393
17.2.4 关于动态工作流和动态表单
394
17.3 流程图XML
394
17.3.1 节点元素
395
17.3.2 衔接元素
395
17.3.3 流程图与流程文件的转换
395
17.4 流程操作
397
17.4.1 流程回退
397
17.4.2 会签
398
17.5 本章小结
400
第18章 办公自动化系统
401
18.1 使用技术
402
18.1.1 表现层技术
402
18.1.2 MVC框架
402
18.1.3 Spring和Hibernate
402
18.2 功能简述
403
18.2.1 系统的角色管理
403
18.2.2 薪资计算流程
403
18.2.3 请假流程
403
18.2.4 薪资调整流程
403
18.2.5 报销流程
404
18.3 框架整合
404
18.3.1 创建Web工程
404
18.3.2 加入Spring
406
18.3.3 加入Hibernate
407
18.3.4 整合Struts2
408
18.3.5 整合Activiti
409
18.4 数据库设计
410
18.4.1 薪资表
410
18.4.2 请假记录表
411
18.4.3 薪资调整记录表
412
18.4.4 报销记录表
412
18.5 初始化数据
413
18.5.1 初始化角色数据
413
18.5.2 薪资计算流程
414
18.5.3 请假流程
415
18.5.4 报销流程
415
18.5.5 薪资调整流程
416
18.6 角色管理
418
18.6.1 用户组管理
418
18.6.2 用户列表
420
18.6.3 新建用户
421
18.6.4 用户登录
422
18.7 流程启动
423
18.7.1 启动请假流程
423
18.7.2 启动报销流程
426
18.7.3 启动薪资调整流程
428
18.8 申请列表
429
18.8.1 申请列表
429
18.8.2 请假申请列表
430
18.8.3 报销申请列表
431
18.8.4 薪资调整列表
431
18.8.5 查看流程图
432
18.9 流程任务
434
18.9.1 待办任务列表
434
18.9.2 领取任务与受理任务列表
436
18.9.3 查询任务信息
437
18.9.4 任务审批
439
18.9.5 运行OA的流程
439
18.10 本章小结
440

作者简介

工作流框架Activiti是由jBPM4发展而来的,为了能帮助广大的Java研发者学习该框架,并将其应用到实际的生产中,笔者根据多年来的企业应用研发经验,编写了《疯狂Workflow讲义——基于Activiti的工作流应用开发》。
《疯狂Workflow讲义——基于Activiti的工作流应用开发》首先对Activiti的基础知识进行讲解,并从源代码的实现上讲解Activiti各个模块的API。此外详细讲述了BPMN 2.0规范的内容,包括目前Activiti对该规范的实现情况。《疯狂Workflow讲义——基于Activiti的工作流应用开发》还讲解了如何在实际企业应用中使用Activiti,并与其他流行的开源框架进行整合,包括企业应用开发所必需的Web Service、企业服务总线、规则引擎、IoC框架和ORM框架等。《疯狂Workflow讲义——基于Activiti的工作流应用开发》的最后通过讲解一个办公自动化系统的开发过程,让读者更了解Activiti在实际生产中的使用,让本书的内容不仅仅停留在理论的层次,更为读者开辟了实践的道路。


 疯狂Workflow讲义——基于Activiti的工作流应用开发下载 更多精彩书评



发布书评

 
 


精彩书评 (总计2条)

  •     没有实战介绍,通篇API介绍。 无营养
  •     看了9章了,十分的枯燥无味。技术书籍看着确实是会枯燥,但是他感觉真的没有花心思去写啊。前几章很大部分就是api的翻译,实在是有凑字数的嫌疑。按他这种编著我还不如直接去翻阅api,还能看源码不是更省事儿一些吗?真的没有重点,不知道后面部分会不会好一些,看了半天感觉都是记流水账,哎!其实这部分直接画个结构图,大致介绍一下各个模型的定义和关系不就好了么?然后再介绍这几层关系,介绍一下源码的层级结构以及彼此的调用、依赖关系,半小时就能理清的事情,生生写了接近100页,不知作者这样浪费我们的时间是何居心。

精彩短评 (总计2条)

  •     可以说是中文API介绍。
  •     虽然有些乏味,但是国内的workflow只有这本书。书中的内容还是蛮多的。不过要先熟悉过activiti,不然全是代码,确实晕晕乎乎的。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024