传智播客activiti课堂笔记2

2019-08-29 19:10

Activiti第二天 流程实例、个人任务

课程安排:

Api:

流程实例: 流程实例是什么? 启动流程实例的方法(掌握) 两种方法,第二种方法在企业开发常用(涉及和业务系统整合)

查询流程实例(掌握)

查询结果如何和业务整合。 流程实例的暂停和激活(了解)

个人任务: 个人任务分配方法。(掌握)

三种分配方法,以第二种(UEL表达式)和第三种方法(监听器设置)在企业开发常用 。

查询个人任务。(掌握)

查询结果如何和业务整合。 完成个人任务(办理任务) 案例: 完成activiti实现采购流程管理。 创建采购单 提交采购单 审核采购单 学习目标:

1、 重点学习activiti开发方法

2、 学习springmvc和mybatis开发方法

1 复习

什么是工作流? 利用计算机技术对业务流程进行自动化管理,实现多个参与者按照预先定义的流程自动执行业务流程。 什么是activiti? Activiti是实现工作流的一个引擎(框架,组件),通常activiti是要嵌入到业务系统实现业务流程管理。 1、 利用bpmn2.0标准进行流程定义

2、 将流程定义的文件(.bpmn和.png,.bpmn是必须的)部署到activiti中

此时,activiti就可以去管理部署的流程定义 3、 启动一个流程实例 4、 查询待办任务

5、 办理任务 6、 流程结束

三个环境:

环境1: 没有加入activiti的采购系统

和加入activiti的采购系统进行功能开发对比 Procject:

数据库:(包括采购系统的表)

环境2:用于activiti的api测试 Project:

数据库:(包括activiti数据库表,包括23张)

环境3:用于activiti和业务系统整合开发,加入activiti的采购系统 Project:

数据库:(包括activiti数据库表和采购系统的表)

Activiti的架构:

activiti.cfg.xml:spring配置文件,配置ProcessEngine对象和各各Service

ProcessEngineConfiguration:

在上边的activiti.cfg.xml进行配置,通过此对象创建ProcessEngine

(重点)SpringProcessEngineConfiguration:用于spring和activiti的整合 Service:

RepositoryService RuntimeService TaskService HistoryService IdentityService FormService ManagerService activiti的资源管理类 activiti的流程运行管理类 activiti的任务管理类 activiti的历史管理类 activiti的用户身份管理类 activiti的表单管理类 activiti的引擎管理类 注:红色标注为常用service。

什么是流程定义? 如果要让activiti去管理业务流程,需要按照bpmn2.0标准进行业务流程定义(.bpmn文件,png文件),流程定义的过程在线下操作,定义生成 的文件是静态的。

什么是流程定义部署? 在线下定义的bpmn文件,需要通过activiti的api部署到activiti的数据库中,这样activiti才能去按照流程定义的内容管理业务流程。

2 流程实例

2.1 什么是流程实例?

参与者(可以是用户也可以是程序)按照流程定义内容发起一个流程,发起的这个流程就是一个流程实例。是动态的。

流程定义和流程实例图解: 流程定义(.bpmn和png文件) 静态的 比如:定义采购流程 张三创建一个采购单李四创建一个采购单XXX创建一个采购单 (采购单号:001),这(采购单号:002),这(采购单号:XXX),这 时启动一个流程实例 时启动一个流程实例 时启动一个流程实例 动态的:流程的执行 动态的:流程的执行 动态的:流程的执行

总结:

流程定义是静态的,流程实例是动态的,流程实例的启动是需要参与者来操作的,流程实例按照流程定义来启动,不同的流程实例之间互不影响 。

使用流程实例记录不同流程的执行过程。

2.2 启动流程实例

必须先启动一个流程实例,activiti才开始去管理控制这个业务流程(流程实例)。

2.2.1 根据流程定义key来启动一个实例

使用RuntimeService 启动一个流程实例,启动流程实例依赖于流程定义,启动实例之前 需要将流程定义部署到activit中。

RuntimeService:用于管理当前正在运行流程信息。

代码如下:

测试结果:

2.2.1.1

数据库表

记录流程当前 运行的信息:

SELECT * FROM act_ru_execution #流程实例执行表

记录了流程实例的当前执行信息,如果该流程实例结束,流程实例的执行信息从该表删除。

Id_:流程实例执行id

Proc_inst_id_:流程实例id

流程实例执行id和流程实例id区别:

如果流程实例运行当前有多个分支,每个分支执行id和流程实例id不一样,总会有一条记录执行id和流程实例id是一样的。

记录数:当前 执行分支数+1 (每个分支执行id和流程实例id不一样) Business_key_:业务标识 Proc_def_id_:流程定义id

Act_id_:流程实例当前结点id(包括任务、事件等类型的结点)

SELECT * FROM act_hi_procinst #流程实例历史 表 记录流程实例的历史 信息

Start_time_:流程实例开始运行时间,就是流程实例启动的时间 End_time_:流程实例结束运行时间,如果 为空表示该流程未结束 Duration:流程实例运行时长.


传智播客activiti课堂笔记2.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:CS的顶级会议和期刊

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: