/CrazyWorkflowHandoutsActiviti6

《疯狂工作流讲义(第 2 版)基于 Activiti6.X》作者:杨恩雄

Primary LanguageJavaMIT LicenseMIT

CrazyWorkflowHandoutsActiviti6

《疯狂工作流讲义(第 2 版)基于 Activiti6.X》作者:杨恩雄

课程资源

配套源码地址:http://pan.baidu.com/s/1eRHYf1C 提取密码: 06o2

教学视频地址:https://pan.baidu.com/s/12YjylKeDxKQtbV6uMf7TPQ 提取密码: r6pc

内容简介

工作流引擎Activiti经过多年的发展,已经变成一个成熟的工作流框架,在2017年,Activiti推出了全新的6.0版本,除了完善对BPMN规范的支持外,还加入了对DMN规范的支持。为了能让广大的程序开发者一探新版本Activiti的功能,笔者在第一版的基础上,编写了本书的第二版。

书中会对Activiti的知识进行全面讲解,并从源码角度对Activiti进行深度剖析。本书会以Activiti为基础,讲述该框架的API使用、BPMN规范,除了这些工作流的基本知识外,还讲解了新的DMN规范引擎、Activiti整合SpringBoot等内容。在本书的第18章,深入Activiti的源代码,展示舍弃流程虚拟机(PVM)之后的Activiti,如何对流程进行控制,让读者能一窥Activiti的庐山真面目。zui后一章,以一个案例结束本书的内容,案例中整合Spring、Struts2等主流框架,目的是让读者在学习的过程中更贴近实际案例。

作者简介

杨恩雄,从事十多年JavaEE企业应用开发,曾任中企动力系统设计师、中企开源项目经理、数码辰星科技公司项目经理,参与过多个企业级项目的设计与架构工作,曾负责辰星“电影票网络销售系统”的整体架构。精通Activiti、Drools、ESB等开源技术,在SOA、SaaS、大数据应用、互联网系统架构方面有着丰富的经验,曾出版《疯狂Java实战演义》《疯狂Workflow讲义》《疯狂SpringCloud微服务架构实战》等书籍。

目录

第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结构 5
  • 1.3 Activiti介绍 5
    • 1.3.1 Activiti的出现 5
    • 1.3.2 Activiti的发展 5
    • 1.3.3 选择Activiti还是jBPM 5
  • 1.4 本章小结 6
  • 2.1 下载与运行Activiti 8
    • 2.1.1 下载和安装JDK 8
    • 2.1.2 下载和安装MySQL 9
    • 2.1.3 下载和安装Activiti 10
  • 2.2 运行官方的Activiti示例 11
    • 2.2.1 请假流程概述 11
    • 2.2.2 新建用户 11
    • 2.2.3 定义流程 12
    • 2.2.4 发布流程 14
    • 2.2.5 启动与完成流程 15
    • 2.2.6 流程引擎管理 16
  • 2.3 安装开发环境 17
    • 2.3.1 下载Eclipse 17
    • 2.3.2 安装Activiti插件 18
  • 2.4 编写第一个Activiti程序 19
    • 2.4.1 如何运行本书示例 19
    • 2.4.2 建立工程环境 19
    • 2.4.3 创建配置文件 20
    • 2.4.4 创建流程文件 20
    • 2.4.5 加载流程文件与启动流程 21
  • 2.5 本章小结 22

第3章 Activiti数据库设计 23

  • 3.1 通用数据表 24
    • 3.1.1 资源表 24
    • 3.1.2 属性表 24
  • 3.2 流程存储表 25
    • 3.2.1 部署数据表 25
    • 3.2.2 流程定义表 25
  • 3.3 身份数据表 25
    • 3.3.1 用户表 25
    • 3.3.2 用户账号(信息)表 26
    • 3.3.3 用户组表 26
    • 3.3.4 关系表 26
  • 3.4 运行时数据表 26
    • 3.4.1 流程实例(执行流)表 26
    • 3.4.2 流程任务表 27
    • 3.4.3 流程参数表 27
    • 3.4.4 流程与身份关系表 27
    • 3.4.5 工作数据表 28
    • 3.4.6 事件描述表 28
  • 3.5 历史数据表 28
    • 3.5.1 流程实例表 28
    • 3.5.2 流程明细表 29
    • 3.5.3 历史任务表和历史行为表 29
    • 3.5.4 附件表和评论表 29
  • 3.6 DMN规则引擎表 30
    • 3.6.1 决策部署表 30
    • 3.6.2 决策表 30
    • 3.6.3 部署资源表 30
  • 3.7 本章小结 30

第4章 Activiti流程引擎配置 31

  • 4.1 流程引擎配置对象 32
    • 4.1.1 读取默认的配置文件 32
    • 4.1.2 读取自定义的配置文件 33
    • 4.1.3 读取输入流的配置 33
    • 4.1.4 使用createStandaloneInMemProcess- EngineConfiguration方法 34
    • 4.1.5 使用createStandaloneProcessEngine- Configuration方法 34
  • 4.2 数据源配置 35
    • 4.2.1 Activiti支持的数据库 35
    • 4.2.2 Activiti与Spring 35
    • 4.2.3 JDBC配置 35
    • 4.2.4 DBCP数据源配置 36
    • 4.2.5 C3P0数据源配置 37
    • 4.2.6 Activiti其他数据源配置 38
    • 4.2.7 数据库策略配置 38
    • 4.2.8 databaseType配置 39
  • 4.3 其他属性配置 40
    • 4.3.1 history配置 40
    • 4.3.2 asyncExecutorActivate配置 41
    • 4.3.3 邮件服务器配置 41
    • 4.4 ProcessEngineConfiguration bean 41
    • 4.4.1 ProcessEngineConfiguration及其子类 41
    • 4.4.2 自定义ProcessEngineConfiguration 42
  • 4.5 Activiti的命令拦截器 43
    • 4.5.1 命令模式 44
    • 4.5.2 责任链模式 45
    • 4.5.3 编写自定义拦截器 47
  • 4.6 本章小结 49

第5章 流程引擎的创建 50

  • 5.1 ProcessEngineConfiguration的buildProcessEngine方法 51
  • 5.2 ProcessEngines对象 51
    • 5.2.1 init方法与getDefaultProcessEngine方法 51
    • 5.2.2 registerProcessEngine方向和unregister方法 52
    • 5.2.3 retry方法 53
    • 5.2.4 destroy方法 53
  • 5.3 ProcessEngine对象 54
    • 5.3.1 服务组件 54
    • 5.3.2 关闭流程引擎 55
    • 5.3.3 流程引擎名称 56
  • 5.4 本章小结 56
  • 6.1 用户组管理 58
    • 6.1.1 Group对象 58
    • 6.1.2 创建用户组 58
    • 6.1.3 修改用户组 59
    • 6.1.4 删除用户组 60
  • 6.2 Activiti数据查询 61
    • 6.2.1 查询对象 61
    • 6.2.2 list方法 61
    • 6.2.3 listPage方法 62
    • 6.2.4 count方法 63
    • 6.2.5 排序方法 63
    • 6.2.6 ID排序问题 64
    • 6.2.7 多字段排序 66
    • 6.2.8 singleResult方法 67
    • 6.2.9 用户组数据查询 68
    • 6.2.10 原生SQL查询 69
  • 6.3 用户管理 71
    • 6.3.1 User对象 71
    • 6.3.2 添加用户 71
    • 6.3.3 修改用户 72
    • 6.3.4 删除用户 72
    • 6.3.5 验证用户密码 73
    • 6.3.6 用户数据查询 74
    • 6.3.7 设置认证用户 75
  • 6.4 用户信息管理 77
    • 6.4.1 添加和删除用户信息 77
    • 6.4.2 查询用户信息 78
    • 6.4.3 设置用户图片 78
  • 6.5 用户组与用户的关系 80
    • 6.5.1 绑定关系 80
    • 6.5.2 解除绑定 81
    • 6.5.3 查询用户组下的用户 81
    • 6.5.4 查询用户所属的用户组 82
  • 6.6 本章小结 83
  • 7.1 流程文件部署 85
    • 7.1.1 Deployment对象 85
    • 7.1.2 DeploymentBuilder对象 85
    • 7.1.3 添加输入流资源 86
    • 7.1.4 添加classpath资源 87
    • 7.1.5 添加字符串资源 88
    • 7.1.6 添加压缩包资源 88
    • 7.1.7 添加BPMN模型资源 89
    • 7.1.8 修改部署信息 90
    • 7.1.9 过滤重复部署 90
    • 7.1.10 取消部署时的验证 92
  • 7.2 流程定义的管理 93
    • 7.2.1 ProcessDefinition对象 93
    • 7.2.2 流程部署 93
    • 7.2.3 流程图部署 95
    • 7.2.4 流程图自动生成 95
    • 7.2.5 中止与激活流程定义 96
    • 7.2.6 流程定义缓存配置 97
    • 7.2.7 自定义缓存 98
  • 7.3 流程定义权限 100
    • 7.3.1 设置流程定义的用户权限 100
    • 7.3.2 设置流程定义的用户组权限 101
    • 7.3.3 IdentityLink对象 102
    • 7.3.4 查询权限数据 102
  • 7.4 RepositoryService数据查询与删除 104
    • 7.4.1 查询部署资源 104
    • 7.4.2 查询流程文件 105
    • 7.4.3 查询流程图 106
    • 7.4.4 查询部署资源名称 107
    • 7.4.5 删除部署资源 107
    • 7.4.6 DeploymentQuery对象 108
    • 7.4.7 ProcessDefinitionQuery对象 109
  • 7.5 本章小结 109

第8章 流程任务管理 110

  • 8.1 任务的创建与删除 111
    • 8.1.1 Task接口 111
    • 8.1.2 创建与保存Task实例 112
    • 8.1.3 删除任务 112
  • 8.2 任务权限 113
    • 8.2.1 设置候选用户组 114
    • 8.2.2 设置候选用户 115
    • 8.2.3 权限数据查询 116
    • 8.2.4 设置任务持有人 118
    • 8.2.5 设置任务代理人 119
    • 8.2.6 添加任务权限数据 119
    • 8.2.7 删除用户组权限 121
    • 8.2.8 删除用户权限 122
  • 8.3 任务参数 123
    • 8.3.1 基本类型参数设置 124
    • 8.3.2 序列化参数 125
    • 8.3.3 获取参数 126
    • 8.3.4 参数作用域 127
    • 8.3.5 设置多个参数 128
    • 8.3.6 数据对象 129
  • 8.4 任务附件管理 130
    • 8.4.1 Attachment对象 130
    • 8.4.2 创建任务附件 130
    • 8.4.3 附件查询 132
    • 8.4.4 删除附件 133
  • 8.5 任务评论与事件记录 133
    • 8.5.1 Comment对象 133
    • 8.5.2 新增任务评论 134
    • 8.5.3 事件的记录 135
    • 8.5.4 数据查询 136
  • 8.6 任务声明与完成 137
    • 8.6.1 任务声明 137
    • 8.6.2 任务完成 138
  • 8.7 本章小结 139

第9章 流程控制 140

  • 9.1 流程实例与执行流 141
    • 9.1.1 流程实例与执行流概念 141
    • 9.1.2 流程实例和执行流对象(ProcessInstance与Execution) 141
  • 9.2 启动流程 142
    • 9.2.1 startProcessInstanceById方法 142
    • 9.2.2 startProcessInstanceByKey方法 144
    • 9.2.3 startProcessInstanceByMessage 145
  • 9.3 流程参数 146
    • 9.3.1 设置与查询流程参数 147
    • 9.3.2 流程参数的作用域 147
    • 9.3.3 其他设置参数的方法 149
  • 9.4 流程操作 149
    • 9.4.1 流程触发 149
    • 9.4.2 触发信号事件 150
    • 9.4.3 触发消息事件 152
    • 9.4.4 中断与激活流程 153
    • 9.4.5 删除流程 154
  • 9.5 流程数据查询 155
    • 9.5.1 执行流查询 155
    • 9.5.2 流程实例查询 157
  • 9.6 本章小结 158

第10章 历史数据管理和流程引擎管理 159

  • 10.1 历史数据管理 160
    • 10.1.1 历史流程实例查询 160
    • 10.1.2 历史任务查询 161
    • 10.1.3 历史行为查询 163
    • 10.1.4 历史流程明细查询 165
    • 10.1.5 删除历史流程实例和历史任务 166
  • 10.2 工作的产生 167
    • 10.2.1 异步任务产生的工作 168
    • 10.2.2 定时中间事件产生的工作 169
    • 10.2.3 定时边界事件产生的工作 170
    • 10.2.4 定时开始事件产生的工作 171
    • 10.2.5 流程抛出事件产生的工作 172
    • 10.2.6 暂停工作的产生 174
    • 10.2.7 无法执行的工作 175
  • 10.3 工作管理 176
    • 10.3.1 工作查询对象 176
    • 10.3.2 获取工作异常信息 176
    • 10.3.3 转移与删除工作 177
  • 10.4 数据库管理 178
    • 10.4.1 查询引擎属性 178
    • 10.4.2 数据表信息查询 179
    • 10.4.3 数据库操作 180
    • 10.4.4 数据表查询 180
  • 10.5 本章小结 181

第11章 流程事件 182

  • 11.1 事件分类 183
    • 11.1.1 按照事件的位置分类 183
    • 11.1.2 按照事件的特性分类 183
  • 11.2 事件定义 183
    • 11.2.1 定时器事件定义 184
    • 11.2.2 cron表达式 184
    • 11.2.3 错误事件定义 186
    • 11.2.4 信号事件定义 186
    • 11.2.5 消息事件定义 187
    • 11.2.6 取消事件定义 187
    • 11.2.7 补偿事件定义 188
    • 11.2.8 其他事件定义 188
  • 11.3 开始事件 188
    • 11.3.1 无指定开始事件 188
    • 11.3.2 定时器开始事件 189
    • 11.3.3 消息开始事件 190
    • 11.3.4 错误开始事件 191
  • 11.4 结束事件 193
    • 11.4.1 无指定结束事件 193
    • 11.4.2 错误结束事件 194
    • 11.4.3 取消结束事件和取消边界事件 196
    • 11.4.4 终止结束事件 199
    1. 5 边界事件 200
    • 11.5.1 定时器边界事件 201
    • 11.5.2 错误边界事件 203
    • 11.5.3 信号边界事件 204
    • 11.5.4 补偿边界事件 206
  • 11.6 中间事件 209
    • 11.6.1 中间事件分类 209
    • 11.6.2 定时器中间事件 210
    • 11.6.3 信号中间Catching事件 211
    • 11.6.4 信号中间Throwing事件 213
    • 11.6.5 消息中间事件 215
    • 11.6.6 无指定中间事件 215
  • 11.7 补偿中间事件 215
    • 11.7.1 补偿执行次数 215
    • 11.7.2 补偿的执行顺序 217
    • 11.7.3 补偿的参数设置 220
  • 11.8 本章小结 221

第12章 流程任务 222

  • 12.1 BPMN 2.0任务 223
    • 12.1.1 任务的继承 223
    • 12.1.2 XML约束 223
    • 12.1.3 任务的类型 225
  • 12.2 用户任务 226
    • 12.2.1 分配任务候选人 226
    • 12.2.2 分配任务代理人 228
    • 12.2.3 权限分配扩展 228
    • 12.2.4 使用任务监听器进行权限分配 229
    • 12.2.5 使用JUEL分配权限 230
  • 12.3 脚本任务 232
    • 12.3.1 脚本任务 232
    • 12.3.2 JavaScript脚本 233
    • 12.3.3 Groovy脚本 234
    • 12.3.4 设置返回值 235
    • 12.3.5 JUEL脚本 236
  • 12.4 服务任务 237
    • 12.4.1 Java服务任务 238
    • 12.4.2 实现JavaDelegate 238
    • 12.4.3 使用普通Java Bean 240
    • 12.4.4 在Activiti中调用Web Service 241
    • 12.4.5 import元素 242
    • 12.4.6 itemDefinition和message元素 242
    • 12.4.7 interface与operation元素 243
    • 12.4.8 设置Web Service参数与返回值 243
    • 12.4.9 发布Web Service 243
    • 12.4.10 使用Web Service Task 245
    • 12.4.11 JavaDelegate属性注入 248
    • 12.4.12 在JavaDelegate中调用Web Service 251
    • 12.4.13 Shell任务 253
  • 12.5 其他任务 255
    • 12.5.1 手动任务和接收任务 255
    • 12.5.2 邮件任务 257
    • 12.5.3 Mule任务和业务规则任务 258
  • 12.6 任务监听器 259
    • 12.6.1 使用class指定监听器 259
    • 12.6.2 使用expression指定监听器 260
    • 12.6.3 使用delegateExpression指定监听器 261
    • 12.6.4 监听器的触发 262
    • 12.6.5 属性注入 263
  • 12.7 流程监听器 263
    • 12.7.1 配置流程监听器 263
    • 12.7.2 触发流程监听器的事件 264
  • 12.8 本章小结 267

第13章 其他流程元素 268

  • 13.1 子流程 269
    • 13.1.1 嵌入式子流程 269
    • 13.1.2 调用式子流程 271
    • 13.1.3 调用式子流程的参数传递 273
    • 13.1.4 事件子流程 275
    • 13.1.5 事务子流程 277
    • 13.1.6 特别子流程 280
  • 13.2 顺序流 282
    • 13.2.1 条件顺序流 282
    • 13.2.2 默认顺序流 284
  • 13.3 流程网关 286
    • 13.3.1 单向网关 286
    • 13.3.2 并行网关 288
    • 13.3.3 兼容网关 291
    • 13.3.4 事件网关 293
  • 13.4 流程活动特性 295
    • 13.4.1 多实例活动 295
    • 13.4.2 设置循环数据 297
    • 13.4.3 获取循环元素 298
    • 13.4.4 循环的内置参数 300
    • 13.4.5 循环结束条件 302
    • 13.4.6 补偿处理者 304
  • 13.5 本章小结 304

第14章 Activiti与规则引擎 305

  • 14.1 概述 306
    • 14.1.1 规则引擎Drools 306
    • 14.1.2 Drools下载与安装 306
  • 14.2 开发第一个Drools应用 307
    • 14.2.1 建立Drools环境 307
    • 14.2.2 编写规则 308
    • 14.2.3 加载与运行 308
  • 14.3 Drools规则语法概述 309
    • 14.3.1 规则文件结构 309
    • 14.3.2 关键字 310
    • 14.3.3 规则编译 310
  • 14.4 类型声明 311
    • 14.4.1 声明新类型 312
    • 14.4.2 使用ASM操作字节码 313
    • 14.4.3 类型声明的使用 314
    • 14.4.4 类型的继承 316
    • 14.4.5 声明元数据 317
  • 14.5 函数和查询 317
    • 14.5.1 函数定义和使用 318
    • 14.5.2 查询的定义和使用 320
  • 14.6 规则语法 321
    • 14.6.1 全局变量 322
    • 14.6.2 规则属性 323
    • 14.6.3 条件语法 327
    • 14.6.4 行为语法 330
  • 14.7 Activiti调用规则 331
    • 14.7.1 业务规则任务 332
    • 14.7.2 制定销售单优惠规则 333
    • 14.7.3 实现销售流程 336
  • 14.8 本章小结 339

第15章 基于DMN的Activiti规则引擎 340

  • 15.1 DMN规范概述 341
    • 15.1.1 DMN的出现背景 341
    • 15.1.2 Activiti与Drools 341
    • 15.1.3 DMN的XML样例 341
  • 15.2 DMN的XML规范 342
    • 15.2.1 决策 342
    • 15.2.2 决策表 343
    • 15.2.3 输入参数 343
    • 15.2.4 输出结果 344
    • 15.2.5 规则 344
  • 15.3 运行第一个应用 345
    • 15.3.1 建立项目 345
    • 15.3.2 规则引擎配置文件 346
    • 15.3.3 编写DMN文件 346
    • 15.3.4 加载与运行DMN文件 347
  • 15.4 规则引擎API简述 348
    • 15.4.1 创建规则引擎 348
    • 15.4.2 配置规则引擎 349
    • 15.4.3 数据查询 350
    • 15.4.4 执行DMN文件 350
  • 15.5 规则匹配 351
    • 15.5.1 MVEL表达式简介 351
    • 15.5.2 执行第一个表达式 351
    • 15.5.3 使用对象执行表达式 352
    • 15.5.4 规则引擎规则匹配逻辑 353
    • 15.5.5 自定义表达式函数 354
    • 15.5.6 Activiti中的自定义表达式函数 355
    • 15.5.7 销售打折案例 357
  • 15.6 本章小结 360

第16章 整合第三方框架 361

  • 16.1 Spring Framework 362
    • 16.1.1 Spring的IoC 362
    • 16.1.2 Spring的AOP 362
    • 16.1.3 使用IoC 363
    • 16.1.4 使用AOP 364
  • 16.2 Activiti整合Spring 365
    • 16.2.1 SpringProcessEngineConfiguration 365
    • 16.2.2 资源的部署模式 367
    • 16.2.3 ProcessEngineFactoryBean 367
    • 16.2.4 在bean中注入Activiti服务 368
    • 16.2.5 在Activiti中使用Spring的bean 369
  • 16.3 Activiti整合Web项目 371
    • 16.3.1 安装Tomcat插件 371
    • 16.3.2 加入Spring 373
    • 16.3.3 整合Hibernate 375
    • 16.3.4 配置声明式事务 377
    • 16.3.5 添加Struts配置 378
    • 16.3.6 实现一个最简单的逻辑 378
    • 16.3.7 测试事务 380
    • 16.3.8 添加Activiti 380
  • 16.4 Activiti与Spring Boot 381
    • 16.4.1 Spring Boot项目简介 381
    • 16.4.2 下载与安装Maven 382
    • 16.4.3 开发第一个Web应用 383
    • 16.4.4 Activiti与Spring Boot的整合 386
  • 16.5 Activiti与JPA 388
    • 16.5.1 建立与运行JPA项目 388
    • 16.5.2 在Activiti中使用JPA 390
    • 16.5.3 Activiti、Spring与JPA的整合 391
    • 16.5.4 基于JPA的例子 393
  • 16.6 本章小结 395

第17章 Activiti开放的Web Service 396

  • 17.1 Web Service简介 397
    • 17.1.1 Web Service 397
    • 17.1.2 SOAP协议 397
    • 17.1.3 REST架构 397
    • 17.1.4 REST的设计准则 398
    • 17.1.5 REST的主要特性 398
    • 17.1.6 SOAP RPC与REST的区别 399
  • 17.2 使用Sping MVC发布REST 399
    • 17.2.1 在Web项目中加入Spring MVC 400
    • 17.2.2 发布REST的Web Service 401
    • 17.2.3 使用Restlet编写客户端 402
    • 17.2.4 使用CXF编写客户端 402
    • 17.2.5 使用HttpClient编写客户端 403
    • 17.2.6 准备测试数据 403
    • 17.2.7 部署Activiti的Web Service 403
    • 17.2.8 接口访问权限 404
    • 17.2.9 访问Activiti接口 404
  • 17.3 流程存储服务 405
    • 17.3.1 上传部署文件 405
    • 17.3.2 部署数据查询 406
    • 17.3.3 部署资源查询 406
    • 17.3.4 查询单个部署资源 407
    • 17.3.5 删除部署 408
  • 17.4 本章小结 409

第18章 Activiti功能进阶 410

  • 18.1 流程控制逻辑 411
    • 18.1.1 概述 411
    • 18.1.2 设计流程对象 411
    • 18.1.3 创建流程节点行为类 413
    • 18.1.4 编写业务处理类 414
    • 18.1.5 将流程XML转换为Java对象 414
    • 18.1.6 编写客户端代码 416
  • 18.2 Activiti的表单 416
    • 18.2.1 概述 416
    • 18.2.2 表单属性 417
    • 18.2.3 外部表单 418
    • 18.2.4 关于动态工作流和动态表单 419
  • 18.3 流程图XML 419
    • 18.3.1 节点元素 419
    • 18.3.2 衔接元素 420
    • 18.3.3 流程图与流程文件的转换 420
  • 18.4 流程操作 421
    • 18.4.1 流程回退 421
    • 18.4.2 会签 422
  • 18.5 本章小结 424

第19章 办公自动化系统 425

  • 19.1 使用技术 426
    • 19.1.1 表现层技术 426
    • 19.1.2 MVC框架 426
    • 19.1.3 Spring和Hibernate 426
  • 19.2 功能简述 427
    • 19.2.1 系统的角色管理 427
    • 19.2.2 薪资计算流程 427
    • 19.2.3 请假流程 427
    • 19.2.4 薪资调整流程 427
    • 19.2.5 报销流程 428
  • 19.3 框架整合 428
    • 19.3.1 创建Web项目 428
    • 19.3.2 整合Spring 429
    • 19.3.3 整合Hibernate 430
    • 19.3.4 整合Struts2 432
    • 19.3.5 整合Activiti 433
  • 19.4 数据库设计 434
    • 19.4.1 薪资表 434
    • 19.4.2 请假记录表 434
    • 19.4.3 薪资调整记录表 435
    • 19.4.4 报销记录表 436
  • 19.5 初始化数据 437
    • 19.5.1 初始化角色数据 437
    • 19.5.2 薪资计算流程 438
    • 19.5.3 请假流程 439
    • 19.5.4 报销流程 439
    • 19.5.5 薪资调整流程 440
  • 19.6 角色管理 441
    • 19.6.1 用户组管理 442
    • 19.6.2 用户列表 443
    • 19.6.3 新建用户 445
    • 19.6.4 用户登录 446
  • 19.7 流程启动 447
    • 19.7.1 启动请假流程 447
    • 19.7.2 启动报销流程 450
    • 19.7.3 启动薪资调整流程 452
  • 19.8 申请列表 453
    • 19.8.1 申请列表的实现 453
    • 19.8.2 请假申请列表 454
    • 19.8.3 报销申请列表 455
    • 19.8.4 薪资调整列表 455
    • 19.8.5 查看流程图 456
  • 19.9 流程任务 457
    • 19.9.1 待办任务列表 457
    • 19.9.2 领取任务与受理任务列表 459
    • 19.9.3 查询任务信息 460
    • 19.9.4 任务审批 462
    • 19.9.5 运行OA的流程 463
  • 19.10 本章小结 463