一、什么是工作流

  工作流:官方解释的是指业务过程的部分或整体在计算机应用环境下的自动化。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。

  其实,工作流在我们身边也常用到,比如找公司报销费用、请假等。就拿请假来说,提交一个请假的申请,需要公司不同级别的人做审批,只有当领导审批通过后,请假申请才会生效,中间有任何一个领导审批不通过,请假申请就会无效。

二、什么是Activiti

  Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布自定义的流程定义,并通过提供的api进行流程调度。

三、Activiti的Api

  图片来自Activiti的官方文档:https://www.activiti.org/5.x/userguide/#chapterApi

    

activiti工作流 java 协同 activiti工作流原理_表单

 

    1、ProcessEngine  流程引擎

    Activiti的所有Service服务都是来自流程引擎ProcessEngine,ProcessEngine是Activiti的核心,流程引擎ProcessEngine通过流程配置文件可获得。

2、RepositoryService  流程存储服务

    RepositoryService服务用于部署流程定义并发布,使流程生效,  流程定义中包含了流程中每个步骤的结构和行为。本质上是解析配置的工作流程文件,将对应的数据存入数据库中,主要负责静态字资源。

  3、RuntimeService   流程运行服务

    RepositoryService服务用于启动一个流程定义的实例,也可以用来获取和保存流程变量。

  4、TaskService   流程任务服务

    RepositoryService服务用于认领并完成一个任务。可手动设置流程的认领者。

  5、HistoryServie  流程历史服务

    HistoryServie提供了Activiti流程引擎的所有历史数据。包括历史流程实例信息、历史流程节点信息、历史流程定义信息等等。

IdentityService  流程身份服务

    IdentityService  可以管理群组和用户,可用来创建,更新,删除,查询用户和群组。

启动表单和任务表单两个概念。 启动表单会在流程实例启动之前展示给用户, 任务表单会在用户完成任务时展示。

ManagementService  流程管理服务

      ManagementService  可以查询数据库的表和表的元数据。

  在实际的开发过程中,常用到RepositoryService、RuntimeService、TaskService、HistoryService这四个服务,IdentityService、FormService、ManagementService不常用,至少我在开发过程中并未用到这三个服务。

  后面的学习中会对这些服务做详细介绍,包括Api的使用及涉及的表数据。个人感觉,Activiti的学习主要有两点,一是画流程;二是对Activiti提供的原生Api的封装与调用。

  最重要的是学会参照官网文档学习,下面贴出官网地址,有时间可以多逛逛学习学习:

    中文:http://www.mossle.com/docs/activiti/index.html

    英文:https://www.activiti.org/5.x/userguide