1. 首页
  2. 课程学习
  3. Java
  4. 疯狂工作流讲义 基于Activiti 6.x的应用开发

疯狂工作流讲义 基于Activiti 6.x的应用开发

上传者: 2018-12-27 03:29:57上传 TXT文件 148B 热度 26次
工作流引擎Activiti经过多年的发展,已经变成一个成熟的工作流框架,在2017年,Activiti推出了全新的6.0版本,除了完善对BPMN规范的支持外,还加入了对DMN规范的支持。为了能让广大的程序开发者一探新版本Activiti的功能,笔者在di yi版的基础上,编写了本书的第二版。书中会对Activiti的知识进行全面讲解,并从源码角度对Activiti进行深度剖析。本书会以Activiti为基础,讲述该框架的API使用、BPMN规范,除了这些工作流的基本知识外,还讲解了zui新的DMN规范引擎、Activiti整合Spring Boot等内容。在本书的第18章,深入Activiti的源代码,展示舍弃流程虚拟机(PVM)之后的Activiti,如何对流程进行控制,让读者能一窥Activiti的庐山真面目。zui后一章,以一个案例结束本书的内容,案例中整合Spring、Struts2等主流框架,目的是让读者在学习的过程中更贴近实际案例。 第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章 安装与运行Activiti 7 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章 用户组与用户 57 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章 流程存储 84 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 11. 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 定时器中间事件 构 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章 安装与运行Activiti 7 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章 用户组与用户 57 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章 流程存储 84 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 11. 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 定时器中间事件
用户评论