一、什么是工作流
workflow,工作流程的计算模型,工作流程中先后组织起来的一系列规则
工作流要解决的主要问题是:
为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务
常见的工作流:
ERP,CRM,OA
工作流的生命周期
- 流程定义
收集业务需求转化为流程定义,由需求人员进行,由开发人员转化为计算机流程定义 - 流程发布
由开发人员打包各种资源,然后再系统管理中发布流程定义 - 流程执行
具体的流程引擎按照事先定义的流程处理路线及任务驱动的方式执行业务流程 - 流程监控
业务人员在办理任务的同时,收集每个任务的结果,然后根据结果做出相应处理 - 流程优化
为了满足业务变更的需求,对已经完成的流程进行二次,三次优化
二、Activiti工作流
Activiti是业务流程管理(BPM)框架,覆盖了业务流程管理、工作流、服务协等领域,
Spring boot会基于自动配置原理给我们隐式的创建一个工作流引擎对象ProcessEngine,并把RuntimeService(控制流程运行时数据流转)等核心服务注册到 Spring 容器中,我们只需要 依赖注入使用即可。
① 工作核心:ProcessEngine对象
负责生成流程运行时的各种势力及数据、监控和管理流程的运行
所有的操作都是从获取引擎开始的所以一般会把引擎作为全局变量
ProcessEngine processEngine = ProcessEngine.getDefaultProcessEngine();
② BPMN:业务流程建模与标注
描述流程的基本符号,包括这些图元如何组成一个业务流程图
③ 数据持久化
I 使用了mybatis
II 数据库表
都是以ACT
开头的
ACT_RE_*
: ‘RE’ 表示repository。 这个前缀的表包含了流程定义和流程静态资源(图片,规则,等等)。
ACT_RU_*
: 'RU’表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
ACT_ID_*
: 'ID’表示identity。 这些表包含身份信息,比如用户,组等等。
ACT_HI_*
: 'HI’表示history。 这些表包含历史数据,比如历史流程实例,变量,任务等等。
ACT_GE_*
: 通用数据,用于不同场景下,如存放资源文件。
23张表
④ activiti.cfg.xml配置文件
基于jdbc参数配置的数据库连接 会使用默认的mybatis连接池
配置了创建工具的基本参数和数据库连接池的参数
2.引擎服务器
7个大服务接口
3.流程设计器
eclipse有插件
4.原生支持spring
事务管理,解析表达式
5.分离运行时与历史数据
继承了jbpm4,表结构设计方面遵循运行时与历史数据的分离
开始activiti—>>>run next article