1.什么是工作流?
工作流是通过计算机自动管理业务流程,实现多个参与者按照预定义的流程自动执行业务流程。
Activiti是一个工作流的引擎(框架,jar、组件),对业务流程的自动化管理。Activiti按照bpmn2.0标准进行流程定义,按照定义流程(bpmn文件)去自动执行业务流程。
3.数据库
通过部署环境运行之后,查询数据库,关于activiti的数据共有23张表。下面主要介绍一些常用的表:
1.act_ru_execution #流程实例执行表
2.act_hi_procinst#流程实例历史 表
3.act_ru_task#当前运行任务表 记录当前任务信息,如果任务完成了,从此表删除任务记录。
Id_:任务id(主键)对任务的操作根据此id执行
Execution_id_:对应流程实例的执行id
proc_inst_id_:对应流程实例的id
proc_def_id_:对应流程定义的id
name_:任务名称
task_def_key_:任务标识
assignee_:任务办理人
4. act_ru_identitylink #流程当前参与者(人、组)信息 记录流程当前参与者信息,记录了流程执行过程中所有参与者
5.act_hi_taskinst #历史任务表 记录任务的历史信息,在任务创建时向历史任务表插入一条记录
6.act_hi_actinst #历史活动表 记录流程执行过程中所有结点
7.act_ru_variable#当前流程变量表
Type_:变量类型
Name_:变量名称
Execution_id_:流程实例执行id(global和local变量存储)
Proc_inst_id_:流程实例 id(global和local变量存储)
Task_id_:流程变量所属的任务id(local变量存储)
BYTEARRAY_ID_:如果流程变量为pojo,字段存储引用act_ge_bytearray表的主键,在资源表act_ge_bytearray存储pojo流程变量的序列化信息。
Long_和text_:根据变量类型存储变量值
8.act_hi_varinst #历史 流程变量表 记录流程执行所创建的所有流程变量
9.act_ru_task #当前任务表
任务拾取后,task表中assignee记录任务的负责人
10.act_ru_identitylink #流程参与者 如果任务设置候选,记录所有候选人信息
11.act_id_group #组信息
12.act_id_user #用户信息
13.act_id_membership #组和用户关系信息
4.UEL表达式
uel表达式设置任务办理人
uel即统一表达式语言
${assignee}
Assignee是一个流程变量,assignee是流程变量名称。
${assignee}获取流程变量的值,作为任务的办理人
5.网关网关共有三种网关:排它、并行、包含。
5.1排它:选择分支执行流程,分支上需要设置condition条件,如果分支的条件结果为true,那么该分支会通过排他网关。
如果分支上的条件都不满足,没有一条线经过排他网关,activiti会抛出异常。
5.2并行:不需要设置条件。
5.3包含:是前两者的结合体。