Activiti5入门--工作流相关概念

职场人都知道,个人因处理公司的事务或受公司指派出差执行公司的某项公务而发生的费用,由经办人或申请人按公司的规定,可以凭业务发生的原始单据(发票)向公司报销费用。因此,对于一个公司来说,对于报销都有专门的规定。

假设有一个这样的公司,其报销制度是这样的

  1. 首先,由申请人按照规定准备好报销需要的相关材料
  2. 然后,由申请人将材料送至部门负责人处复核并签字
  3. 负责人签字以后,申请人携带相关材料交给财务部审核
  4. 经财务部审核无误后,由财务部交给总经理审核
  5. 总经理审核通过之后,批准财务部给与报销费用

如果这一连串的事情顺利的话,申请人就可以获得经济补偿。对于该公司的每一个人来说,其申请过程大致可以遵循上面的步骤。可以看到,按照报销制度,员工从申请报销到获得经济补偿这一过程中,出现了多个参与者和多次的相关材料的流转。

其实,在生活工作中,有很多事情都可以像上面的规定一样,制定一定的规定处理事务。将这些过程加以抽象归纳,并自动化,就可以将其称为“工作流”,下面介绍“工作流”的相关概念。

工作流的基本概念

工作流的定义

所谓的工作流,其实就是“业务过程的部分或整体在计算机应用环境下的自动化”。

工作流的作用

对于一个工作流来说,其主要解决的是:

使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标或者促使此目标的实现。

工作流管理系统

工作流管理系统(WFMS)是一个软件系统。它完成工作量的定义和管理,并按照在系统中预定好的工作流规则进行工作流实例的执行。需要注意的是,工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软件支撑环境

工作流管理联盟(WFMC)这样定义工作流管理系统

工作流管理系统是一个软件系统,它通过执行经过计算的流程定义去支持一批专门设定的业务流程。工作流管理系统被用来定义、管理和执行工作流程。

工作流系统的目标:管理工作的流程以确保工作在正确的时间被期望的人员所执行–在自动化进行的业务过程中插入人工的执行和干预。

工作流框架-Activiti5

Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。简单来说,Activiti框架是工作流的具体实现

对于Activiti来说,其主要组成有以下几个部分

  • ProcessEngine对象,其作用有两点:一,负责生成流程运行时的各种实例和数据;二,监控和管理流程的运行。

  • BPMN(业务流程建模与标注)规范,其定义了流程的基本符号以及这些图元如何组成以生成一个业务流程图,通过IDE插件可以实现实现具体的业务流程图,减轻开发者负担,而这正是Activiti框架的特点之一。

  • 支撑Activiti完成功能的数据库表,总共有23张,其所有的表都以ACT_开头,后面用两个字符表示其用途,大体可以分为5大类:资源库流程规则表、运行时数据库表、历史数据库表、组织数据库表、通用表
  • 核心配置文件activiti.cfg.xml,用来配置流程引擎创建工具的基本参数和数据库连接池参数,在activiti中,默认使用MyBatis连接池。

需要注意的是,工作流Activiti的表是用来存放流程数据的,而业务数据所需的表需要用户根据实际情况自行创建和维护,在实际开发中,开发者通过业务数据表和流程表相关联来实现有意义的功能。

小结

综上所述,使用Activiti工作流框架的两个基本步骤是

  1. 首先,先定义工作流,使用插件画出业务流程图,此时会产生两种文件
    • *.bpmn文件:该文件提供给计算机进行流程的执行和信息的传递
    • *.png文件:提供给用户查看流程
  2. 调用Activiti的API执行和管理工作流