Activiti

简介

  • 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
    工作流管理系统(Workflow Management System, WfMS)是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流逻辑进行工作流实例的执行。工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软件的支撑环境。
  • 常见的工作流框架
    Activity5.13、JBPM4.4、OSWorkFlow、WorkFlow
    工作流框架底层需要有数据库提供支持,activiti5.13版本,有23张表。JBPM4.4框架底层有数据库支持,18张表。JBPM底层使用hibernate操作数据库。Activiti框架底层使用的mybatis操作数据库。
  • 安装插件
    解压安装包,复制到eclipse中的dropins目录中
  • 初始化表结构
    使用activiti框架提供的建表语句
    使用activiti框架的自动建表功能
    不使用配置文件(不推荐使用)

    使用配置文件 要求配置文件名称必须为activiti-context.xml或者activiti.cfg.xml

  • 可以进一步简化
  • 了解23张表
    Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
    ACT_RE_: 'RE’表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
    ACT_RU_
    : 'RU’表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
    ACT_ID_: 'ID’表示identity。 这些表包含身份信息,比如用户,组等等。
    ACT_HI_
    : 'HI’表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
    ACT_GE_*: 通用数据, 用于不同场景下。

使用框架提供的API完成流程操作

  • 部署流程定义

  • 查询部署表

  • 查询流程定义列表

  • 删除部署信息(删除流程定义依赖删除部署信息)

  • 查询一次部署对应的流程定义文件名称和对应的输入流(bmpn png)

    只获取图片文件:

  • 启动流程实例
    根据一个流程定义具体的一次执行过程就是一个流程实例,一个流程定义对应多个流程实例(一对多关系)

    ByKey启动流程(推荐使用。因为他会选择最新版的)

  • 查询流程实例列表

  • 结束流程实例

  • 查询个人任务列表

  • 办理任务

  • 直接把任务向下执行一步

  • 查询最新版本的流程定义列表

  • 查询历史数据查询
    这里写图片描述
    这里写图片描述

  • Activiti框架提供的Service对象
    RepositoryService----操作静态的资源(流程定义,bpmn、png)
    RuntimeService-----操作流程实例(启动流程实例、查询流程实例、结束流程实例)
    TaskService-----操作任务(查询任务、办理任务)
    HistoryService----操作历史数据

  • Activiti框架提供的对象(和表有对应关系)
    Deployment-----act_re_deployment
    ProcessDefinition----act_re_procdef
    ProcessInstance-----act_ru_execution
    Task-----act_ru_task

  • 流程变量
    Jdk中提供的数据类型(String、Integer、List 、Map…)
    自定义的实体类(要求实现序列化接口)

设置流程变量

  • 在启动流程实例时设置
  • 在办理任务时设置
  • 使用RuntimeService的方法设置
  • 使用TaskService的方法设置

获取流程变量

  • 使用RuntimeService的方法获取
  • 使用TaskService的方法

任务的类型

  • 个人任务
    由某一个负责办理,在任务表中通过assignee字段记录
  • 公共任务(组任务)


  • 接收任务
    接收任务不是由某个人负责办理,通过signal方法让流程执行的

监听器(执行、任务)

  • 执行监听器
    第一步:按照框架的规则编写监听器类

    第二步:设计流程图,注册监听器类

    第三步:启动流程实例,Activiti框架通过反射调用监听器类
  • 任务监听器
    第一步:按照activiti框架的规则编写一个任务监听器类

    第二步:注册监听类

    第三步:办理任务,由框架通过反射调用监听器类

网关(并行、排他)

  • 排他网关
    第一步:设计流程图,使用排他网关

    第二步:执行流程,由框架根据设置的流程变量选择执行其中的一个分支
  • 并行网关

与spring整合

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

第二步:读取spring配置文件,创建spring工厂,获取流程引擎对象

搭建web项目环境

第一步:创建一个动态web项目
第二步:创建一个数据库,用户,为用户授权

第三步:导入jar(struts2.3.7+spring3.2+hibernate3.6.10+activiti5.13)
第四步:提供一个struts配置文件
第五步:在web.xml中配置过滤器

第六步:提供spring的配置文件applicationContext.xml

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值