内容安排:

  1. 工作流概念
  2. 常见的工作流框架
  3. 在eclipse中安装activiti框架的流程设计器插件
  4. activiti框架提供的数据库表结构
  5. 学习activiti框架提供的API

 

  1. 工作流概念

工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。

 

工作流管理系统(Workflow Management System, WfMS)是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流逻辑进行工作流实例的执行。工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软件的支撑环境。

 

工作流框架:用于处理工作流相关问题的框架

常见的工作流框架:activiti5.13、JBPM4.4、OSWorkflow

工作流框架底层是有一套数据库提供支持的,针对不同的数据库提供不同的sql建表语句。Activiti5.13框架对应23张表,JBPM4.4框架对应18张表。开发人员不需要自己编写sql操作这些表的,框架底层会生成sql操作。Activiti框架底层使用mybatis操作数据库,JBPM框架底层使用hibernate操作数据库。

 

Activiti框架目录结构:

  1. 安装eclipse插件----流程设计器插件

第一步:将上面的zip压缩文件解压到eclipse目录中 的dropins目录

第二步:重启eclipse,勾选save菜单中的复选框

第三步:使用插件设计流程图

 

 

  1. 创建activiti框架提供的数据库表
    1. 使用activiti框架提供的sql脚本建表

Activiti框架提供了sql文件,用于建表

第一步:手动创建一个数据库

第二步:进入数据库,执行框架提供的sql文件

 

    1. 使用activiti框架自动建表
      1. 没有提供xml配置文件

      1. 提供xml配置文件

Java代码:

      1. 使用默认配置文件

要求配置文件必须在类路径的根路径下,配置文件的名称必须为activiti-context.xml或者为activiti.cfg.xml,xml配置文件中必须配置流程引擎配置对象,id必须为processEngineConfiguration,必须配置流程引擎工厂bean,id必须为processEngine

Java代码:

 

  1. 了解activiti框架提供的23张表

Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。

  1. ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
  2. ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
  3. ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。
  4. ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
  5. ACT_GE_*: 通用数据, 用于不同场景下。
  1. BPMN

业务流程建模与标注(Business Process Model and Notation,BPMN) ,描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)

 

  1. Activiti的API使用

使用流程设计器插件设计一个流程

    1. 部署流程定义

操作的数据表:act_re_deployment部署表、act_re_procdef流程定义表、act_ge_bytearray二进制表

    1. 查询流程定义

操作的数据表:act_re_procdef流程定义表

    1. 启动流程实例

什么是流程实例??根据某个流程定义的一次具体执行过程,就是一个流程实例。流程定义和流程实例是一对多的关系。

操作的数据表:act_ru_execution流程实例表、act_ru_task任务表

 

    1. 查询任务

操作的数据表:act_ru_task任务表

    1. 办理任务

操作的数据表:act_ru_task任务表、act_ru_execution流程实例表

 

  1. 总结activiti中的几个对象
  1. 几个和流程相关的对象

Deployment:部署对象,和部署表对应act_re_deployment

ProcessDefinition:流程定义对象,和流程. 定义表对应act_re_procdef

ProcessInstance:流程实例对象,和流程实例表对应act_ru_execution

Task:任务对象,和任务表对应act_ru_task

 

  1. 几个Service对象

RepositoryService:操作部署、流程定义等静态资源信息

RuntimeService:操作流程实例,启动流程实例、查询流程实例、删除流程实例等动态信息

TaskService:操作任务,查询任务、办理任务等和任务相关的信息

HistoryService:操作历史信息的,查询历史信息

IdentityService:操作用户和组

 

  1. 几个Query对象

DeploymentQuery:对应查询部署表act_re_deployment

ProcessDefinitionQuery:对应查询流程定义表act_re_procdef

ProcessInstanceQuery:对应查询流程实例表act_ru_execution

TaskQuery:对应查询任务表act_ru_task

 

  1. 流程变量

    1. 设置流程变量
  1. 当流程实例启动时设置流程变量

  1. 当办理任务时设置流程变量

  1. 调用RuntimeService的方法设置流程变量

  1. 调用TaskService的方法设置流程变量

 

注意:如果需要设置自定义的实体类到流程变量表中,需要实现序列化接口

 

    1. 获取流程变量
  1. 使用RuntimeService的get方法获取

  1. 使用TaskService的get方法获取

 

  1. 组任务

个人任务:只有一个人负责办理的任务为个人任务。

组任务:可以有多个候选人,这些人都可以办理的任务为组任务。

 

    1. 候选人组任务

  1. 查询组任务

  1. 拾取组任务

注意:组任务只能由一个人拾取,不能多人拾取。

 

  1. 退回组任务

    1. 候选组组任务

 

  1. 创建组

  1. 创建用户

  1. 将用户加入组中

 

  1. 网关(排他网关)

排他网关特点:只有一个分支能执行。

 

  1. spring整合activiti框架

第一步:提供spring配置文件,配置数据源、事务管理器、spring提供的流程引擎配置对象、流程引擎工厂bean

第二步:创建spring工厂,从工厂中获取流程引擎对象

 

    以上,便是activity的一个基本学习流程,希望能够帮助到大家!

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐