• Activiti学习(一)之工作流的介绍和使用


    什么是工作流

    1. 工作流介绍
    工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。

    2. 工作流系统
    一个软件系统中具有工作流的功能,我们把它称为工作流系统,一个系统中工作流的功能是什么?就是对系统的业务流程进行自动化管理,所以工作流是建立在业务流程的基础上,所以一个软件的系统核心根本上还是系统的业务流程,工作流只是协助进行业务流程管理。即使没有工作流业务系统也可以开发运行,只不过有了工作流可以更好的管理业务流程,提高系统的可扩展性。

    ⑴ 适用行业
    消费品行业,制造业,电信服务业,银证险等金融服务业,物流服务业,物业服务业,物业管理,大中型进出口贸易公司,政府事业机构,研究院所及教育服务业等,特别是大的跨国企业和集团公司。

    ⑵ 具体应用
    关键业务流程:订单、报价处理、合同审核、客户电话处理、供应链管理等
    行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政表单。
    人事管理类:员工培训安排、绩效考评、职位变动处理、员工档案信息管理等。
    财务相关类:付款请求、应收款处理、日常报销处理、出差报销、预算和计划申请等。
    客户服务类:客户信息管理、客户投诉、请求处理、售后服务管理等。
    特殊服务类:ISO 系列对应流程、质量管理对应流程、产品数据信息管理、贸易公司报关处理、
    物流公司货物跟踪处理等各种通过表单逐步手工流转完成的任务均可应用工作流软件自动规范
    地实施。
    3. 工作流实现方式
    在没有专门的工作流引擎之前,我们之前为了实现流程控制,通常的做法就是采用状态字段的值来跟踪流程的变化情况。这样不用角色的用户,通过状态字段的取值来决定记录是否显示。
    针对有权限可以查看的记录,当前用户根据自己的角色来决定审批是否合格的操作。如果合格将状态字段设置一个值,来代表合格;当然如果不合格也需要设置一个值来代表不合格的情况。
    这是一种最为原始的方式。通过状态字段虽然做到了流程控制,但是当我们的流程发生变更的时候,这种方式所编写的代码也要进行调整。
    那么有没有专业的方式来实现工作流的管理呢?并且可以做到业务流程变化之后,我们的程序可以不用改变,如果可以实现这样的效果,那么我们的业务系统的适应能力就得到了极大提升。

    Activity7概述

    介绍

    Alfresco软件在2010年5月17日宣布Activiti业务流程管理(BPM)开源项目的正式启动,其首席架构师由业务流程管理BPM的专家 Tom Baeyens担任,Tom Baeyens就是原来jbpm的架构师,而jbpm是一个非常有名的工作流引擎,当然activiti也是一个工作流引擎。

      Activiti是一个工作流引擎, activiti可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN2.0进行定义,业务流程按照预先定义的流程进行执行,实现了系统的流程由activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系统的健壮性,同时也减少了系统开发维护成本。

    ​ 官方网站:https://www.activiti.org/

    BPM

      BPM(Business Process Management),即业务流程管理,是一种规范化的构造端到端的业务流程,以持续的提高组织业务效率。常见商业管理教育如EMBA、MBA等均将BPM包含在内。

    BPM软件

      BPM软件就是根据企业中业务环境的变化,推进人与人之间、人与系统之间以及系统与系统之间的整合及调整的经营方法与解决方案的IT工具。

      通过BPM软件对企业内部及外部的业务流程的整个生命周期进行建模、自动化、管理监控和优化,使企业成本降低,利润得以大幅提升。

      BPM软件在企业中应用领域广泛,凡是有业务流程的地方都可以BPM软件进行管理,比如企业人事办公管理、采购流程管理、公文审批流程管理、财务管理等。

    BPMN

      BPMN(Business Process Model AndNotation)- 业务流程模型和符号 是由BPMI(BusinessProcess Management Initiative)开发的一套标准的业务流程建模符号,使用BPMN提供的符号可以创建业务流程。

      2004年5月发布了BPMN1.0规范.BPMI于2005年9月并入OMG(The Object Management Group对象管理组织)组织。OMG于2011年1月发布BPMN2.0的最终版本。

    具体发展历史如下:

      BPMN 是目前被各 BPM 厂商广泛接受的 BPM 标准。Activiti 就是使用 BPMN 2.0 进行流程建模、流程执行管理,它包括很多的建模符号,比如:

    Event

    用一个圆圈表示,它是流程中运行过程中发生的事情。


    活动用圆角矩形表示,一个流程由一个活动或多个活动组成

    Bpmn图形其实是通过xml表示业务流程,上边的.bpmn文件使用文本编辑器打开:

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
    3.   <process id="myProcess" name="My process" isExecutable="true">
    4.     <startEvent id="startevent1" name="Start"></startEvent>
    5.     <userTask id="usertask1" name="创建请假单"></userTask>
    6.     <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
    7.     <userTask id="usertask2" name="部门经理审核"></userTask>
    8.     <sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow>
    9.     <userTask id="usertask3" name="人事复核"></userTask>
    10.     <sequenceFlow id="flow3" sourceRef="usertask2" targetRef="usertask3"></sequenceFlow>
    11.     <endEvent id="endevent1" name="End"></endEvent>
    12.     <sequenceFlow id="flow4" sourceRef="usertask3" targetRef="endevent1"></sequenceFlow>
    13.   </process>
    14.   <bpmndi:BPMNDiagram id="BPMNDiagram_myProcess">
    15.     <bpmndi:BPMNPlane bpmnElement="myProcess" id="BPMNPlane_myProcess">
    16.       <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
    17.         <omgdc:Bounds height="35.0" width="35.0" x="130.0" y="160.0"></omgdc:Bounds>
    18.       </bpmndi:BPMNShape>
    19.       <bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
    20.         <omgdc:Bounds height="55.0" width="105.0" x="210.0" y="150.0"></omgdc:Bounds>
    21.       </bpmndi:BPMNShape>
    22.       <bpmndi:BPMNShape bpmnElement="usertask2" id="BPMNShape_usertask2">
    23.         <omgdc:Bounds height="55.0" width="105.0" x="360.0" y="150.0"></omgdc:Bounds>
    24.       </bpmndi:BPMNShape>
    25.       <bpmndi:BPMNShape bpmnElement="usertask3" id="BPMNShape_usertask3">
    26.         <omgdc:Bounds height="55.0" width="105.0" x="510.0" y="150.0"></omgdc:Bounds>
    27.       </bpmndi:BPMNShape>
    28.       <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
    29.         <omgdc:Bounds height="35.0" width="35.0" x="660.0" y="160.0"></omgdc:Bounds>
    30.       </bpmndi:BPMNShape>
    31.       <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
    32.         <omgdi:waypoint x="165.0" y="177.0"></omgdi:waypoint>
    33.         <omgdi:waypoint x="210.0" y="177.0"></omgdi:waypoint>
    34.       </bpmndi:BPMNEdge>
    35.       <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
    36.         <omgdi:waypoint x="315.0" y="177.0"></omgdi:waypoint>
    37.         <omgdi:waypoint x="360.0" y="177.0"></omgdi:waypoint>
    38.       </bpmndi:BPMNEdge>
    39.       <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
    40.         <omgdi:waypoint x="465.0" y="177.0"></omgdi:waypoint>
    41.         <omgdi:waypoint x="510.0" y="177.0"></omgdi:waypoint>
    42.       </bpmndi:BPMNEdge>
    43.       <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
    44.         <omgdi:waypoint x="615.0" y="177.0"></omgdi:waypoint>
    45.         <omgdi:waypoint x="660.0" y="177.0"></omgdi:waypoint>
    46.       </bpmndi:BPMNEdge>
    47.     </bpmndi:BPMNPlane>
    48.   </bpmndi:BPMNDiagram>
    49. </definitions>

    使用步骤

    部署activiti

      Activiti是一个工作流引擎(其实就是一堆jar包API),业务系统访问(操作)activiti的接口,就可以方便的操作流程相关数据,这样就可以把工作流环境与业务系统的环境集成在一起。

     流程定义

      使用activiti流程建模工具(activity-designer)定义业务流程(.bpmn文件) 。

      .bpmn文件就是业务流程定义文件,通过xml定义业务流程。

     流程定义部署

      activiti部署业务流程定义(.bpmn文件)。

      使用activiti提供的api把流程定义内容存储起来,在Activiti执行过程中可以查询定义的内容

      Activiti执行把流程定义内容存储在数据库中

    启动一个流程实例

      流程实例也叫:ProcessInstance

      启动一个流程实例表示开始一次业务流程的运行。

      在员工请假流程定义部署完成后,如果张三要请假就可以启动一个流程实例,如果李四要请假也启动一个流程实例,两个流程的执行互相不影响。

    用户查询待办任务(Task)

      因为现在系统的业务流程已经交给activiti管理,通过activiti就可以查询当前流程执行到哪了,当前用户需要办理什么任务了,这些activiti帮我们管理了,而不需要开发人员自己编写在sql语句查询。

    用户办理任务

      用户查询待办任务后,就可以办理某个任务,如果这个任务办理完成还需要其它用户办理,比如采购单创建后由部门经理审核,这个过程也是由activiti帮我们完成了。

     流程结束

      当任务办理完成没有下一个任务结点了,这个流程实例就完成了。


    Activiti环境

    开发环境

            jdk1.8或以上版本

            Mysql5及以上版本

            Tomcat8.5

            Idea

    Activiti环境

            我们使用:Activiti Betal 默认支持Spring5

    下载Activiti

    Activiti下载地址:http:activiti.org/download.html

    Maven依赖

    1. <dependency>
    2. <groupId>org.activiti</groupId>
    3. <artifactId>activiti-dependencies</artifactId>
    4. <version>7.0.0.Beta1</version>
    5. </dependency>

    按照idea流程设计器

    流程图设计工具

    Activiti-Model(推荐)

    Activiti默认的一款在线流程设计器,可在线设计.bpmn流程图文件,需要集成Activiti-Model,然后项目运行后可以在线设计流程图,推荐使用。

    camunda-modeler(推荐)

    基于 bpmn.io的面向 BPMN DMN和CMMN的集成建模解决方案,camunda-modeler是一款外部流程设计器,同普通安装软件一样安装完后双击.exe程序即可使用,也可以通过IDEA安装外部Tool使用。

    在这里插入图片描述

     官网版本: Camunda Modeler 3.0.0 Released - Camunda

    Camunda Modeler下载渠道
    官网下载

    https://bpmn.io/modeler/

    GitHub下载

    https://github.com/camunda/camunda-modeler

    三、IDEA安装外部Tools
    Tools——>External Tools

    在这里插入图片描述

     点击OK后,重启IDEA.

    点击项目右键找到External Tools ——> camunda-modeler开始流程设计

    在这里插入图片描述
    四、camunda-modeler学习资料
    camunda流程图设计工具
    https://segmentfault.com/t/camunda-modeler

    下载插件Activiti BPMN visualizer


    具体流程
    1、创建保存BPMN保存目录
    在 idea 中使用插件:Activiti BPMN visualizer,创建流程图,具体使用如下:

    注:将流程图创建在 resources\activiti 包下,入下图所示


    2、创建BPMN文件
    在新建的 activiti 包上右键,选择 New Activiti,填写文件名称后回车即可创建完成

     

     

    3、编写具体流程
    在创建好的文件中任意位置右键,选择 View BPMN Diagram,打开可视化界面(流程定义的界面)

     打开可视化编辑器,右键start events –>start event画一个开始事件。

     在绘图界面右键,打开对应的菜单,选择后绘制,选择当前节点,在下方出现对应的属性,根据需要可以配置,如下图所示:

     生成.png图片文件
    在流程图中点击右键生成

    注:此处可能生成的图片的时候没有描述,只有相关图片,此处解决方案为下图所示
    右键我的的流程的xml文件选择Diagrams

    选择你要保存的目录为止,此处建议和xml文件保存在一处

     

    Activiti 支持的数据库

    activiti 支持的数据库和版本如下:

     在MySQL生成表

    创建数据库
    创建 mysql 数据库 activiti (名字任意):

    CREATE DATABASE activiti DEFAULT CHARACTER SET utf8;

    使用java代码生成表
    1) 创建 java 工程
    使用idea 创建 java 的maven工程,取名:activiti01。

    2) 加入 maven 依赖的坐标(jar 包)
    首先需要在 java 工程中加入 ProcessEngine 所需要的 jar 包,包括:

    1. activiti-engine-7.1.0.M6.jar (我们使用maven)
    2. activiti 依赖的 jar 包: mybatis、 alf4j、 log4j 等
    3. activiti 依赖的 spring 包
    4. mysql数据库驱动
    5. 第三方数据连接池 dbcp
    6. 单元测试 Junit-4.12.jar

    我们使用 maven 来实现项目的构建,所以应当导入这些 jar 所对应的坐标到 pom.xml 文件中。

    完整的依赖内容如下:

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5.     <modelVersion>4.0.0</modelVersion>
    6.     <groupId>com.itheima</groupId>
    7.     <artifactId>activiti01</artifactId>
    8.     <version>1.0-SNAPSHOT</version>
    9.     <!-- activiti 的相关包 mysql的驱动包 mybatis log4j 数据库链接池-->
    10.     <properties>
    11.         <slf4j.version>1.6.6</slf4j.version>
    12.         <log4j.version>1.2.12</log4j.version>
    13.         <activiti.version>7.1.0.M6</activiti.version>
    14.     </properties>
    15.     <dependencies>
    16.         <dependency>
    17.             <groupId>org.activiti</groupId>
    18.             <artifactId>activiti-engine</artifactId>
    19.             <version>${activiti.version}</version>
    20.         </dependency>
    21.         <dependency>
    22.             <groupId>org.activiti</groupId>
    23.             <artifactId>activiti-spring</artifactId>
    24.             <version>${activiti.version}</version>
    25.         </dependency>
    26.         <!-- bpmn 模型处理 -->
    27.         <dependency>
    28.             <groupId>org.activiti</groupId>
    29.             <artifactId>activiti-bpmn-model</artifactId>
    30.             <version>${activiti.version}</version>
    31.         </dependency>
    32.         <!-- bpmn 转换 -->
    33.         <dependency>
    34.             <groupId>org.activiti</groupId>
    35.             <artifactId>activiti-bpmn-converter</artifactId>
    36.             <version>${activiti.version}</version>
    37.         </dependency>
    38.         <!-- bpmn json数据转换 -->
    39.         <dependency>
    40.             <groupId>org.activiti</groupId>
    41.             <artifactId>activiti-json-converter</artifactId>
    42.             <version>${activiti.version}</version>
    43.         </dependency>
    44.         <!-- bpmn 布局 -->
    45.         <dependency>
    46.             <groupId>org.activiti</groupId>
    47.             <artifactId>activiti-bpmn-layout</artifactId>
    48.             <version>${activiti.version}</version>
    49.         </dependency>
    50.         <!-- activiti 云支持 -->
    51.         <dependency>
    52.             <groupId>org.activiti.cloud</groupId>
    53.             <artifactId>activiti-cloud-services-api</artifactId>
    54.             <version>${activiti.version}</version>
    55.         </dependency>
    56.         <!-- mysql驱动 -->
    57.         <dependency>
    58.             <groupId>mysql</groupId>
    59.             <artifactId>mysql-connector-java</artifactId>
    60.             <version>5.1.40</version>
    61.         </dependency>
    62.         <!-- mybatis -->
    63.         <dependency>
    64.             <groupId>org.mybatis</groupId>
    65.             <artifactId>mybatis</artifactId>
    66.             <version>3.4.5</version>
    67.         </dependency>
    68.         <!-- 链接池 -->
    69.         <dependency>
    70.             <groupId>commons-dbcp</groupId>
    71.             <artifactId>commons-dbcp</artifactId>
    72.             <version>1.4</version>
    73.         </dependency>
    74.         <dependency>
    75.             <groupId>junit</groupId>
    76.             <artifactId>junit</artifactId>
    77.             <version>4.12</version>
    78.         </dependency>
    79.         <!-- log start -->
    80.         <dependency>
    81.             <groupId>log4j</groupId>
    82.             <artifactId>log4j</artifactId>
    83.             <version>${log4j.version}</version>
    84.         </dependency>
    85.         <dependency>
    86.             <groupId>org.slf4j</groupId>
    87.             <artifactId>slf4j-api</artifactId>
    88.             <version>${slf4j.version}</version>
    89.         </dependency>
    90.         <dependency>
    91.             <groupId>org.slf4j</groupId>
    92.             <artifactId>slf4j-log4j12</artifactId>
    93.             <version>${slf4j.version}</version>
    94.         </dependency>
    95.         <dependency>
    96.             <groupId>commons-io</groupId>
    97.             <artifactId>commons-io</artifactId>
    98.             <version>2.6</version>
    99.         </dependency>
    100.     </dependencies>
    101. </project>

    3) 添加log4j日志配置
    我们使用log4j日志包,可以对日志进行配置

    在resources 下创建log4j.properties

    1. # Set root category priority to INFO and its only appender to CONSOLE.
    2. #log4j.rootCategory=INFO, CONSOLE debug info warn error fatal
    3. log4j.rootCategory=debug, CONSOLE, LOGFILE
    4. # Set the enterprise logger category to FATAL and its only appender to CONSOLE.
    5. log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
    6. # CONSOLE is set to be a ConsoleAppender using a PatternLayout.
    7. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    8. log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    9. log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r[%15.15t] %-5p %30.30c %x - %m\n
    10. # LOGFILE is set to be a File appender using a PatternLayout.
    11. log4j.appender.LOGFILE=org.apache.log4j.FileAppender
    12. log4j.appender.LOGFILE.File=f:\act\activiti.log
    13. log4j.appender.LOGFILE.Append=true
    14. log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
    15. log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r[%15.15t] %-5p %30.30c %x - %m\n

    4) 添加activiti配置文件
    我们使用activiti提供的默认方式来创建mysql的表。

    默认方式的要求是在 resources 下创建 activiti.cfg.xml 文件,注意:默认方式目录和文件名不能修改,因为activiti的源码中已经设置,到固定的目录读取固定文件名的文件。

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:tx="http://www.springframework.org/schema/tx"
    6. xsi:schemaLocation="http://www.springframework.org/schema/beans
    7.                     http://www.springframework.org/schema/beans/spring-beans.xsd
    8. http://www.springframework.org/schema/contex
    9. http://www.springframework.org/schema/context/spring-context.xsd
    10. http://www.springframework.org/schema/tx
    11. http://www.springframework.org/schema/tx/spring-tx.xsd">
    12. </beans>

    5) 在 activiti.cfg.xml 中进行配置
    默认方式要在在activiti.cfg.xml中bean的名字叫processEngineConfiguration,名字不可修改

    在这里有2中配置方式:一种是单独配置数据源,一种是不单独配置数据源

    1、直接配置processEngineConfiguration
    processEngineConfiguration 用来创建 ProcessEngine,在创建 ProcessEngine 时会执行数据库的操作。

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4.        xmlns:context="http://www.springframework.org/schema/context"
    5.        xmlns:tx="http://www.springframework.org/schema/tx"
    6.        xsi:schemaLocation="http://www.springframework.org/schema/beans
    7.                     http://www.springframework.org/schema/beans/spring-beans.xsd
    8. http://www.springframework.org/schema/contex
    9. http://www.springframework.org/schema/context/spring-context.xsd
    10. http://www.springframework.org/schema/tx
    11. http://www.springframework.org/schema/tx/spring-tx.xsd">
    12.     <!-- 默认id对应的值 为processEngineConfiguration -->
    13.     <!-- processEngine Activiti的流程引擎 -->
    14.     <bean id="processEngineConfiguration"
    15.           class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
    16.         <property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>
    17.         <property name="url" value="jdbc:mysql://192.168.183.9:3306/activiti?useSSL=false&useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&characterSetResults=utf8"/>
    18.         <property name="jdbcUsername" value="root"/>
    19.         <property name="jdbcPassword" value="123456"/>
    20.         <!-- activiti数据库表处理策略 -->
    21.         <property name="databaseSchemaUpdate" value="true"/>
    22.     </bean>
    23. </beans>

    2、配置数据源后,在processEngineConfiguration 引用
    首先配置数据源

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4.        xmlns:context="http://www.springframework.org/schema/context"
    5.        xmlns:tx="http://www.springframework.org/schema/tx"
    6.        xsi:schemaLocation="http://www.springframework.org/schema/beans
    7.                     http://www.springframework.org/schema/beans/spring-beans.xsd
    8. http://www.springframework.org/schema/contex
    9. http://www.springframework.org/schema/context/spring-context.xsd
    10. http://www.springframework.org/schema/tx
    11. http://www.springframework.org/schema/tx/spring-tx.xsd">
    12.     <!-- 这里可以使用 链接池 dbcp-->
    13.     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    14.         <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    15.         <property name="url" value="jdbc:mysql://192.168.183.9:3306/activiti" />
    16.         <property name="username" value="root" />
    17.         <property name="password" value="123456" />
    18.         <property name="maxActive" value="3" />
    19.         <property name="maxIdle" value="1" />
    20.     </bean>
    21.     <bean id="processEngineConfiguration"
    22.           class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
    23.         <!-- 引用数据源 上面已经设置好了-->
    24.         <property name="dataSource" ref="dataSource" />
    25.         <!-- activiti数据库表处理策略 -->
    26.         <property name="databaseSchemaUpdate" value="true"/>
    27.     </bean>
    28. </beans>

    6) java类编写程序生成表
    创建一个测试类,调用activiti的工具类,生成acitivti需要的数据库表。

    直接使用activiti提供的工具类ProcessEngines,会默认读取classpath下的activiti.cfg.xml文件,读取其中的数据库配置,创建 ProcessEngine,在创建ProcessEngine 时会自动创建表。

    代码如下:

    1. import org.activiti.engine.ProcessEngine;
    2. import org.activiti.engine.ProcessEngineConfiguration;
    3. import org.junit.Test;
    4. public class TestDemo {
    5.     /**
    6.      * 生成 activiti的数据库表
    7.      */
    8.     @Test
    9.     public void testCreateDbTable() {
    10.         //使用classpath下的activiti.cfg.xml中的配置创建processEngine
    11.         ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    12.         System.out.println(processEngine);
    13.     }
    14. }

    说明:
    1、运行以上程序段即可完成 activiti 表创建,通过改变 activiti.cfg.xml 中databaseSchemaUpdate 参数的值执行不同的数据表处理策略。
    2 、 上 边 的 方法 getDefaultProcessEngine方法在执行时,从activiti.cfg.xml 中找固定的名称 processEngineConfiguration 。

    在测试程序执行过程中,idea的控制台会输出日志,说明程序正在创建数据表,类似如下,注意红框内容:

    执行完成后我们查看数据库, 创建了 25 张表,结果如下:

    到这,我们就完成activiti运行需要的数据库和表的创建。
    扩展

    (一)创建activiti表方式一:

    1、使用方法getDefaultProcessEngine
    2、默认从resources下读取名字为actviti.cfg.xml的文件
    3、创建processEngine时,就会创建mysql的表

    1.     //默认方式
    2.     ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    3.     RepositoryService repositoryService = processEngine.getRepositoryService();
    4.     repositoryService.createDeployment();
    5.     //获取流程引擎对象(此时创建activiti的表)
    6.     ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();

    (二)创建activiti表方式二:

    配置文件的名字可以自定义,bean的名字也可以自定义

    1.     ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.
    2.     createProcessEngineConfigurationFromResource("activiti.cfg.xml","processEngineConfiguration");
    3.     //获取流程引擎对象(此时创建activiti的表)
    4.     ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();

    表结构

    表功能

    序号

    表分类

    表名

    说明

    解释
    一般数据

    act_ge_bytearray

    二进制数据表

    通用的流程定义和流程资源

    act_ge_property

    属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录,

    系统相关属性
    流程历史记录

    act_hi_actinst

    历史节点表

    act_hi_attachment

    历史附件表

    act_hi_comment

    历史意见表

    act_hi_identitylink

    历史流程人员表

    act_hi_detail

    历史详情表,提供历史变量的查询

    act_hi_procinst

    历史流程实例表

    act_hi_taskinst

    历史任务实例表

    10

    act_hi_varinst

    历史变量表

    11

    act_id_group

    用户组信息表

    12

    act_id_info

    用户扩展信息表

    13

    act_id_membership

    用户与用户组对应信息表

    14

    act_id_user

    用户信息表

    流程定义表

     15

    act_re_deployment

    部署信息表

    16  

    act_re_model

    流程设计模型部署表

    17

    act_re_procdef

    流程定义数据表

    运行实列表

    18

    act_ru_event_subscr

    throwEvent、catchEvent时间监听信息表

    19

    act_ru_execution

    运行时流程执行实例表

    20

    act_ru_identitylink

    运行时流程人员表,主要存储任务节点与参与者的相关信息

    21

    act_ru_job

    运行时定时任务数据表

    22

    act_ru_task

    运行时任务节点表

    23

    act_ru_variable

    运行时流程变量数据表

    表以及索引信息

    2.1  二进制数据表(act_ge_bytearray

    2.1.1  简要描述

       保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。 

    2.1.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    主键ID

    REV_

    乐观锁

    int

    Version(版本)

    NAME_

    名称

    nvarchar(255)

    部署的文件名称,如:mail.bpmn、mail.png 、mail.bpmn20.xml

    DEPLOYMENT_ID_

    部署ID

    nvarchar(64)

    部署表ID

    BYTES_

    字节

    varbinary(max)

    部署文件

    GENERATED_

    是否是引擎生成

    tinyint

    0为用户生成 1为Activiti生成

    2.1.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    ACT_FK_BYTEARR_DEPL

    DEPLOYMENT_ID_

    2.2  属性数据表( act_ge_property )

    2.2.1  简要描述

    属性数据表。存储整个流程引擎级别的数据。

    2.2.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    NAME_

    名称

    nvarchar(64)

    schema.version

    schema.history

    next.dbid

    VALUE_

    nvarchar(300)

    5.*

    create(5.*)

    REV_

    乐观锁

    int

    version

    2.2.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    NAME_

    Unique

    主键唯一索引

    2.3  历史节点表(act_hi_actinst

    2.3.1   简要描述

      历史活动信息。这里记录流程流转过的所有节点,与HI_TASKINST不同的是,taskinst只记录usertask内容

    2.3.2   表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    PROC_DEF_ID_

    流程定义ID

    nvarchar(64)

    PROC_INST_ID_

    流程实例ID

    nvarchar(64)

    EXECUTION_ID_

    执行实例ID

    nvarchar(64)

    ACT_ID_

    节点ID

    nvarchar(225)

    节点定义ID

    TASK_ID_

    任务实例ID

    nvarchar(64)

    任务实例ID 其他节点类型实例ID在这里为空

    CALL_PROC_INST_ID_

    调用外部的流程实例ID

    nvarchar(64)

    调用外部流程的流程实例ID'

    ACT_NAME_

    节点名称

    nvarchar(225)

    节点定义名称

    ACT_TYPE_

    节点类型

    nvarchar(225)

    如startEvent、userTask

    ASSIGNEE_

    签收人

    nvarchar(64)

    节点签收人

    START_TIME_

    开始时间

    datetime

    2013-09-15 11:30:00

    END_TIME_

    结束时间

    datetime

    2013-09-15 11:30:00

    DURATION_

    耗时

    numeric(19,0)

    毫秒值

     2.3.3   索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    ACT_IDX_HI_ACT_INST_START

    START_TIME_

    ACT_IDX_HI_ACT_INST_END

    END_TIME_

    ACT_IDX_HI_ACT_INST_PROCINST

    PROC_INST_ID_ 、 ACT_ID_

    ACT_IDX_HI_ACT_INST_EXEC

    EXECUTION_ID_ 、 ACT_ID_

    2.4  历史附件表( act_hi_attachment )

    2.4.1  简要描述

      历史附件表。

    2.4.2   表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    主键ID

    REV_

    乐观锁

    integer

    Version

    USER_ID_

    用户ID

    nvarchar(255)

    用户ID

    NAME_

    名称

    nvarchar(255)

    附件名称

    DESCRIPTION_

    描述

    nvarchar(4000)

    描述

    TYPE_

    类型

    nvarchar(255)

    附件类型

    TASK_ID_

    任务实例ID

    nvarchar(64)

    节点实例ID

    PROC_INST_ID_

    流程实例ID

    nvarchar(64)

    流程实例ID

    URL_

    URL_

    nvarchar(4000)

    附件地址

    CONTENT_ID_

    字节表的ID

    nvarchar(64)

    ACT_GE_BYTEARRAY的ID

     2.4.3   索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    2.5  历史意见表( act_hi_comment )

    2.5.1   简要描述

      历史意见表。

    2.5.2   表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    主键ID

    TYPE_

    类型

    nvarchar(255)

    类型:event(事件)

    comment(意见)

    TIME_

    时间

    datetime

    填写时间'

    USER_ID_

    用户ID

    nvarchar(64)

    填写人

    TASK_ID_

    节点任务ID

    nvarchar(64)

    节点实例ID

    PROC_INST_ID_

    流程实例ID

    nvarchar(255)

    流程实例ID

    ACTION_

    行为类型

    nvarchar(64)

    见备注1

    MESSAGE_

    基本内容

    nvarchar(4000)

    用于存放流程产生的信息,比如审批意见

    FULL_MSG_

    全部内容

    varbinary(max)

    附件地址

     2.5.3   索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    2.6  历史详情表( act_hi_detail )

    2.6.1   简要描述

      历史详情表:流程中产生的变量详细,包括控制流程流转的变量,业务表单中填写的流程需要用到的变量等。

    2.6.2   表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    主键

    TYPE_

    类型

    nvarchar(255)

    见备注2

    PROC_INST_ID_

    流程实例ID

    nvarchar(64)

    流程实例ID

    EXECUTION_ID_

    执行实例ID

    nvarchar(64)

    执行实例ID

    TASK_ID_

    任务实例ID

    nvarchar(64)

    任务实例ID

    ACT_INST_ID_

    节点实例ID

    nvarchar(64)

    ACT_HI_ACTINST表的ID

    NAME_

    名称

    nvarchar(255)

    名称

    VAR_TYPE_

    参数类型

    nvarchar(255)

    见备注3

    REV_

    乐观锁

    int

    Version

    TIME_

    时间戳

    datetime

    创建时间

    BYTEARRAY_ID_

    字节表ID

    nvarchar

    ACT_GE_BYTEARRAY表的ID

    DOUBLE_

    DOUBLE_

    double precision

    存储变量类型为Double

    LONG_

    LONG_

    numeric

    存储变量类型为long

    TEXT_

    TEXT_

    nvarchar

    存储变量值类型为String

    TEXT2_

    TEXT2_

    nvarchar

    此处存储的是JPA持久化对象时,才会有值。此值为对象ID

     2.6.3   索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    ACT_IDX_HI_ACT_INST_START

    START_TIME_

    ACT_IDX_HI_ACT_INST_END

    END_TIME_

    ACT_IDX_HI_ACT_INST_PROCINST

    PROC_INST_ID_ 、 ACT_ID_

    ACT_IDX_HI_ACT_INST_EXEC

    EXECUTION_ID_ 、 ACT_ID_

    2.7  历史流程人员表( act_ru_identitylink )   

    2.7.1   简要描述

      任务参与者数据表。主要存储历史节点参与者的信息。

    2.7.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    ID_

    GROUP_ID_

    组ID

    nvarchar(255)

    组ID

    TYPE_

    类型

    nvarchar(255)

    备注4

    USER_ID_

    用户ID

    nvarchar(255)

    用户ID

    TASK_ID_

    节点实例ID

    nvarchar(64)

    节点实例ID

    PROC_INST_ID_

    流程实例ID

    nvarchar(64)

    流程实例ID

     2.7.3   索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    ACT_IDX_HI_IDENT_LNK_USER

    USER_ID_

    Unique

    ACT_IDX_HI_IDENT_LNK_TASK

    TASK_ID_

    ACT_IDX_HI_IDENT_LNK_PROCINST

    PROC_INST_ID_

    2.8  历史流程实例表(act_hi_procinst

    2.8.1   简要描述

      历史流程实例表。

    2.8.2   表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    主键ID

    PROC_INST_ID_

    流程实例ID

    nvarchar(64)

    流程实例ID

    BUSINESS_KEY_

    业务主键

    nvarchar(255)

    业务主键,业务表单的ID

    PROC_DEF_ID_

    流程定义ID

    nvarchar(64)

    流程定义ID

    START_TIME_

    开始时间

    datetime

    开始时间

    END_TIME_

    结束时间

    datetime

    结束时间

    DURATION_

    耗时

    Numeric(19)

    耗时

    START_USER_ID_

    起草人

    nvarchar(255)

    起草人

    START_ACT_ID_

    开始节点ID

    nvarchar(255)

    起草环节ID

    END_ACT_ID_

    结束节点ID

    nvarchar(255)

    结束环节ID

    SUPER_PROCESS

    _INSTANCE_ID_

    父流程实例ID

    nvarchar(64)

    父流程实例ID

    DELETE_REASON_

    删除原因

    nvarchar(4000)

    删除原因

    2.8.3   索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    PROC_INST_ID_

    PROC_INST_ID_

    Unique

    外键

    ACT_UNIQ_HI_BUS_KEY

    PROC_DEF_ID_,BUSINESS_KEY_

    Unique

    ACT_IDX_HI_PRO_INST_END

    END_TIME_

    ACT_IDX_HI_PRO_I_BUSKEY

    BUSINESS_KEY_

    2.9 历史任务实例表( act_hi_taskinst )

    2.9.1   简要描述

       历史任务实例表。

    2.9.2   表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    主键ID

    PROC_DEF_ID_

    流程定义ID

    nvarchar(64)

    流程定义ID

    TASK_DEF_KEY_

    节点定义ID

    nvarchar(255)

    节点定义ID

    PROC_INST_ID_

    流程实例ID

    nvarchar(64)

    流程实例ID

    EXECUTION_ID_

    执行实例ID

    nvarchar(64)

    执行实例ID

    NAME_

    名称

    varchar(255)

    名称

    PARENT_TASK_ID_

    父节点实例ID

    nvarchar(64)

    父节点实例ID

    DESCRIPTION_

    描述

    nvarchar(400)

    描述

    OWNER_

    实际签收人 任务的拥有者

    nvarchar(255)

    签收人(默认为空,只有在委托时才有值)

    ASSIGNEE_

    签收人或被委托

    nvarchar(255)

    签收人或被委托

    START_TIME_

    开始时间

    datetime

    开始时间

    CLAIM_TIME_

    提醒时间

    datetime

    提醒时间

    END_TIME_

    结束时间

    datetime

    结束时间

    DURATION_

    耗时

    numeric(19)

    耗时

    DELETE_REASON_

    删除原因

    nvarchar(4000)

    删除原因(completed,deleted)

    PRIORITY_

    优先级别

    int

    优先级别

    DUE_DATE_

    过期时间

    datetime

    过期时间,表明任务应在多长时间内完成

    FORM_KEY_

    节点定义的

    formkey

    nvarchar(255)

    desinger节点定义的

    form_key属性

     2.9.3   索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    2.10       历史变量表( act_hi_varinst )

    2.10.1  简要描述

      历史变量表。

    2.10.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    ID_

    PROC_INST_ID_

    流程实例ID

    nvarchar(64)

    流程实例ID

    EXECUTION_ID_

    执行实例ID

    nvarchar(255)

    执行实例ID

    TASK_ID_

    任务实例ID

    nvarchar(64)

    任务实例ID

    NAME_

    名称

    nvarchar(64)

    参数名称(英文)

    VAR_TYPE_

    参数类型

    varchar(255)

    备注5

    REV_

    乐观锁

    nvarchar(64)

    乐观锁 Version

    BYTEARRAY_ID_

    字节表ID

    nvarchar(400)

    ACT_GE_BYTEARRAY表的主键

    DOUBLE_

    DOUBLE_

    nvarchar(255)

    存储DoubleType类型的数据

    LONG_

    LONG_

    nvarchar(255)

    存储LongType类型的数据

    TEXT_

    TEXT_

    datetime

    备注6

    TEXT2_

    TEXT2_

    datetime

    此处存储的是JPA持久化对象时,才会有值。此值为对象ID

    2.10.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    ACT_IDX_HI_PROCVAR_PROC_INST

    PROC_INST_ID_

    ACT_IDX_HI_PROCVAR_NAME_TYPE

    NAME_, VAR_TYPE_

    2.11       用户组信息表( act_id_group )

    2.11.1  简要描述

      用来存储用户组信息。

    2.11.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    主键ID

    REV_

    乐观锁

    int

    乐观锁Version

    NAME_

    名称

    nvarchar(255)

    组名称

    TYPE_

    类型

    nvarchar(255)

    类型

    2.11.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    2.12       用户扩展信息表( act_id_info )

    2.12.1  简要描述

      用户扩展信息表。目前该表未用到~~~~~·

    2.12.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    主键ID

    REV_

    乐观锁

    int

    乐观锁Version

    USER_ID_

    用户ID

    nvarchar(64)

    TYPE_

    类型

    nvarchar(64)

    KEY_

    nvarchar(255)

    VALUE_

    nvarchar(255)

    PASSWORD_

    Image

    PARENT_ID_

    nvarchar(255)

    2.12.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    2.13       用户与分组对应信息表( act_id_membership )

    2.13.1  简要描述

        用来保存用户的分组信息。

    2.13.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    USER_ID

    用户ID

    nvarchar(64)

    GROUP_ID

    用户组ID

    nvarchar(64)

    2.13.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    USER_ID_, GROUP_ID_

    Unique

    主键唯一索引

    ACT_FK_MEMB_GROUP

    GROUP_ID_

    2.14       用户信息表( act_id_user )

    2.14.1  简要描述

      工作流用户信息

    2.14.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    主键ID

    REV_

    乐观锁

    int

    乐观锁Version

    FIRST_

    nvarchar(255)

    LAST_

    nvarchar(255)

    EMAIL_

    EMAIL_

    nvarchar(255)

    PWD_

    密码

    nvarchar(255)

    PICTURE_ID_

    图片ID

    nvarchar(64)

    2.14.3 索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    2.15       部署信息表( act_re_deployment )

    2.15.1  简要描述

        部署流程定义时需要被持久化保存下来的信息。

    2.15.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    主键ID

    NAME_

    部署名称

    nvarchar(255)

    部署文件名

    CATEGORY_

    分类

    nvarchar(255)

    类别

    DEPLOY_TIME_

    部署时间

    datetime

    部署时间

    2.15.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    2.16       流程设计模型部署表( act_re_model )

    2.16.1  简要描述

      流程设计器设计流程后,保存数据到该表。

    2.16.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    ID_

    REV_

    乐观锁

    int

    乐观锁

    NAME_

    名称

    nvarchar(255)

    名称

    KEY_

    KEY_

    nvarchar(255)

    分类,例如:

    http://www.mossle.com/docs/activiti/

    CATEGORY_

    分类

    nvarchar(255)

    分类

    CREATE_TIME_

    创建时间

    datetime

    创建时间

    LAST_UPDATE_TIME_

    最新修改时间

    datetime

    最新修改时间

    VERSION_

    版本

    int

    版本

    META_INFO_

    META_INFO_

    nvarchar(255)

    以json格式保存流程定义的信息

    DEPLOYMENT_ID_

    部署ID

    nvarchar(255)

    部署ID

    EDITOR_SOURCE_VALUE_ID_

    datetime

    EDITOR_SOURCE_EXTRA_VALUE_ID_

    datetime

    2.16.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    ACT_FK_MODEL_SOURCE

    EDITOR_SOURCE_VALUE_ID_

    ACT_FK_MODEL_SOURCE_EXTRA

    EDITOR_SOURCE_EXTRA_VALUE_ID_

    ACT_FK_MODEL_DEPLOYMENT

    DEPLOYMENT_ID_

    2.17       流程定义数据表( act_re_procdef )

    2.17.1  简要描述

       业务流程定义数据表。此表和ACT_RE_DEPLOYMENT是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在ACT_REPROCDEF表内,每个流程定义的数据,都会对于ACT_GE_BYTEARRAY表内的一个资源文件和PNG图片文件。和ACT_GE_BYTEARRAY的关联是通过程序用ACT_GE_BYTEARRAY.NAME与ACT_RE_PROCDEF.NAME_完成的,在数据库表结构中没有体现

    2.17.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    ID_

    REV_

    乐观锁

    int

    乐观锁

    CATEGORY_

    分类

    nvarchar(255)

    流程定义的Namespace就是类别

    NAME_

    名称

    nvarchar(255)

    名称

    KEY_

    定义的KEY

    nvarchar(255)

    流程定义ID

    VERSION_

    版本

    int

    版本

    DEPLOYMENT_ID_

    部署表ID

    nvarchar(64)

    部署表ID

    RESOURCE_NAME_

    bpmn文件名称

    nvarchar(4000)

    流程bpmn文件名称

    DGRM_RESOURCE_NAME_

    png图片名称

    nvarchar(4000)

    流程图片名称

    DESCRIPTION_

    描述

    nvarchar(4000)

    描述

    HAS_START_FORM_KEY_

    是否存在开始节点formKey

    tinyint

    start节点是否存在formKey

     0否  1是

    SUSPENSION_STATE_

    是否挂起

    tinyint

    1 激活 2挂起

    2.17.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    ACT_UNIQ_PROCDEF

    KEY_, VERSION_

    Unique

    2.18      ( act_ru_event_subscr )

    2.18.1  简要描述

        没有用到该表~~~ 网上找到的资料~~~不足之处请说明补充 谢谢~~

    2.18.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    事件ID

    nvarchar(64)

    事件ID

    REV_

    版本

    int

    乐观锁Version

    EVENT_TYPE_

    事件类型

    nvarchar(255)

    事件类型

    EVENT_NAME_

    事件名称

    nvarchar(255)

    事件名称

    EXECUTION_ID_

    执行实例ID

    nvarchar(64)

    执行实例ID

    PROC_INST_ID_

    流程实例ID

    nvarchar(64)

    流程实例ID

    ACTIVITY_ID_

    活动实例ID

    nvarchar(64)

    活动实例ID

    CONFIGURATION_

    配置

    nvarchar(255)

    配置

    CREATED_

    是否创建

    datetime

    默认值 当前系统时间戳

    CURRENT_TIMESTAMP

    2.18.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    ACT_IDX_EVENT_SUBSCR_CONFIG_

    CONFIGURATION_

    ACT_FK_EVENT_EXEC

    EXECUTION_ID_

    2.19       运行时流程执行实例表( act_ru_execution )

    2.19.1  简要描述

    流程执行记录表。

    2.19.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    ID_

    REV_

    乐观锁

    int

    乐观锁

    PROC_INST_ID_

    流程实例ID

    nvarchar(64)

    流程实例ID

    BUSINESS_KEY_

    业务主键ID

    nvarchar(255)

    业务主键ID

    PARENT_ID_

    父节点实例ID

    nvarchar(64)

    父节点实例ID

    PROC_DEF_ID_

    流程定义ID

    nvarchar(64)

    流程定义ID

    SUPER_EXEC_

    SUPER_EXEC_

    nvarchar(64)

    SUPER_EXEC_

    ACT_ID_

    节点实例ID

    nvarchar(255)

    节点实例ID即

    ACT_HI_ACTINST中ID

    IS_ACTIVE_

    是否存活

    tinyint

    是否存活

    IS_CONCURRENT_

    是否并行

    tinyint

    是否为并行(true/false)

    IS_SCOPE_

    IS_SCOPE_

    tinyint

    IS_SCOPE_

    IS_EVENT_SCOPE_

    IS_EVENT_SCOPE_

    tinyint

    IS_EVENT_SCOPE_

    SUSPENSION_STATE_

    是否挂起

    tinyint

    挂起状态   1激活 2挂起

    CACHED_ENT_STATE_

    int

    2.19.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    ACT_UNIQ_RU_BUS_KEY

    PROC_DEF_ID_, BUSINESS_KEY_

    Unique

    ACT_IDX_EXEC_BUSKEY

    BUSINESS_KEY_

    ACT_FK_EXE_PROCINST

    PROC_INST_ID_

    ACT_FK_EXE_PARENT

    PARENT_ID_

    ACT_FK_EXE_SUPER

    SUPER_EXEC_

    2.20       运行时流程人员表( act_ru_identitylink )

    2.20.1  简要描述

    任务参与者数据表。主要存储当前节点参与者的信息。

    2.20.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    ID_

    REV_

    乐观锁

    int

    乐观锁

    GROUP_ID_

    组ID

    nvarchar(64)

    组ID

    TYPE_

    类型

    nvarchar(255)

    备注7

    USER_ID_

    用户ID

    nvarchar(64)

    用户ID

    TASK_ID_

    节点实例ID

    nvarchar(64)

    节点实例ID

    PROC_INST_ID_

    流程实例ID

    nvarchar(64)

    流程实例ID

    PROC_DEF_ID_

    流程定义ID

    nvarchar(255)

    流程定义ID

    2.20.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    ACT_IDX_IDENT_LNK_USER

    USER_ID_

    Unique

    ACT_IDX_IDENT_LNK_GROUP

    GROUP_ID_

    ACT_IDX_ATHRZ_PROCEDEF

    PROC_DEF_ID_

    ACT_FK_TSKASS_TASK

    TASK_ID_

    ACT_FK_IDL_PROCINST

    PROC_INST_ID_

    2.21       运行时定时任务数据表( act_ru_job )

    2.21.1  简要描述

    运行时定时任务数据表。用到网上找的资料 字段描述..

    2.21.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    标识

    nvarchar(64)

    标识

    REV_

    版本

    int

    版本

    TYPE_

    类型

    nvarchar(255)

    类型

    LOCK_EXP_TIME_

    锁定释放时间

    datetime

    锁定释放时间

    LOCK_OWNER_

    挂起者

    nvarchar(255)

    挂起者

    EXCLUSIVE_

    bit

    EXECUTION_ID_

    执行实例ID

    nvarchar(64)

    执行实例ID

    PROCESS_INSTANCE_ID_

    流程实例ID

    nvarchar(64)

    流程实例ID

    PROC_DEF_ID_

    流程定义ID

    nvarchar(64)

    流程定义ID

    RETRIES_

    int

    EXCEPTION_STACK_ID_

    异常信息ID

    nvarchar(64)

    异常信息ID

    EXCEPTION_MSG_

    异常信息

    nvarchar(4000)

    异常信息

    DUEDATE_

    到期时间

    datetime

    到期时间

    REPEAT_

    重复

    nvarchar(255)

    重复

    HANDLER_TYPE_

    处理类型

    nvarchar(255)

    处理类型

    HANDLER_CFG_

    nvarchar(4000)

    标识

    2.21.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    ACT_FK_JOB_EXCEPTION

    EXCEPTION_STACK_ID_

    2.22       运行时任务节点表( act_ru_task )

    2.22.1  简要描述

    行时任务数据表。

    2.22.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    ID_

    REV_

    乐观锁

    int

    乐观锁

    EXECUTION_ID_

    执行实例ID

    nvarchar(64)

    执行实例ID

    PROC_INST_ID_

    流程实例ID

    nvarchar(64)

    流程实例ID

    PROC_DEF_ID_

    流程定义ID

    nvarchar(64)

    流程定义ID

    NAME_

    节点定义名称

    nvarchar(255)

    节点定义名称

    PARENT_TASK_ID_

    父节点实例ID

    nvarchar(64)

    父节点实例ID

    DESCRIPTION_

    节点定义描述

    nvarchar(4000)

    节点定义描述

    TASK_DEF_KEY_

    节点定义的KEY

    nvarchar(255)

    任务定义的ID

    OWNER_

    实际签收人

    nvarchar(255)

    拥有者(一般情况下为空,只有在委托时才有值)

    ASSIGNEE_

    签收人或委托人

    nvarchar(255)

    签收人或委托人

    DELEGATION_

    委托类型

    nvarchar(64)

    备注8

    PRIORITY_

    优先级别

    int

    优先级别,默认为:50

    CREATE_TIME_

    创建时间

    datetime

    创建时间

    DUE_DATE_

    过期时间

    datetime

    耗时

    SUSPENSION_STATE_

    是否挂起

    int

    1代表激活 2代表挂起

    2.22.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    ACT_IDX_TASK_CREATE

    CREATE_TIME_

    ACT_FK_TASK_EXE

    EXECUTION_ID_

    ACT_FK_TASK_PROCINST

    PROC_INST_ID_

    ACT_FK_TASK_PROCDEF

    PROC_DEF_ID_

    2.23       运行时流程变量数据表( act_ru_variable )

    2.23.1  简要描述

    运行时流程变量数据表。

    2.23.2  表结构说明

    字段名称

    字段描述

    数据类型

    主键

    为空

    取值说明

    ID_

    ID_

    nvarchar(64)

    主键标识

    REV_

    乐观锁

    int

    乐观锁

    TYPE_

    类型

    nvarchar(255)

    备注9

    NAME_

    名称

    nvarchar(255)

    变量名称

    EXECUTION_ID_

    执行实例ID

    nvarchar(64)

    执行的ID

    PROC_INST_ID_

    流程实例ID

    nvarchar(64)

    流程实例ID

    TASK_ID_

    节点实例ID

    nvarchar(64)

    节点实例ID(Local)

    BYTEARRAY_ID_

    字节表ID

    nvarchar(64)

    字节表的ID

    (ACT_GE_BYTEARRAY)

    DOUBLE_

    DOUBLE_

    float

    存储变量类型为Double

    LONG_

    LONG_

    numeric(19)

    存储变量类型为long

    TEXT_

    TEXT_

    nvarchar(4000)

    '存储变量值类型为String

       如此处存储持久化对象时,值jpa对象的class

    TEXT2_

    TEXT2_

    nvarchar(4000)

    此处存储的是JPA持久化对象时,才会有值。此值为对象ID

    2.23.3  索引说明

    索引名称

    组成字段名称

    索引类型

    索引说明

    PRIMARY

    ID_

    Unique

    主键唯一索引

    ACT_IDX_VARIABLE_TASK_ID

    TASK_ID_

    ACT_FK_VAR_EXE

    EXECUTION_ID_

    ACT_FK_VAR_PROCINST

    PROC_INST_ID_

    ACT_FK_VAR_BYTEARRAY

    BYTEARRAY_ID_

    备注:

    备注1:行为类型。值为下列内容中的一种:

        AddUserLink、DeleteUserLink、AddGroupLink、DeleteGroupLink、AddComment、AddAttachment、DeleteAttachment

    备注2类型:

       FormProperty,   //表单

       VariableUpdate  //参数

    备注3、5、9:参数类型:

     jpa-entity、boolean、bytes、serializable(可序列化)、自定义type(根据你自身配置)、

     CustomVariableType、date、double、integer、long、null、short、string

    备注4、7:类型,主要分为以下几种:

       assignee 、  candidate 、 owner 、starter 、participant

    备注6:

     存储变量值类型为String,如此处存储持久化对象时,值jpa对象的class

    备注8:委托类型,DelegationState分为两种:PENDING,RESOLVED。如无委托则为空

    Activiti类关系图

    上面我们完成了Activiti数据库表的生成,java代码中我们调用Activiti的工具类,下面来了解Activiti的类关系

    4.1 类关系图


    在新版本中,我们通过实验可以发现IdentityService,FormService两个Serivce都已经删除了。

     所以后面我们对于这两个Service也不讲解了,但老版本中还是有这两个Service,同学们需要了解一下

    4.2 activiti.cfg.xml

    activiti的引擎配置文件,包括:ProcessEngineConfiguration的定义、数据源定义、事务管理器等,此文件其实就是一个spring配置文件。

    4.3 流程引擎配置类

    流程引擎的配置类(ProcessEngineConfiguration),通过ProcessEngineConfiguration可以创建工作流引擎ProceccEngine,常用的两种方法如下:

    4.3.1 StandaloneProcessEngineConfiguration

    使用StandaloneProcessEngineConfigurationActiviti可以单独运行,来创建ProcessEngine,Activiti会自己处理事务。

    配置文件方式:

    通常在activiti.cfg.xml配置文件中定义一个id为 processEngineConfiguration 的bean.

    方法如下:

    1. <bean id="processEngineConfiguration"
    2.           class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
    3.        
    4.        
    5.         <property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>
    6.        
    7.         <property name="jdbcUrl" value="jdbc:mysql:///activiti"/>
    8.        
    9.         <property name="jdbcUsername" value="root"/>
    10.        
    11.         <property name="jdbcPassword" value="123456"/>
    12.        
    13.         <property name="databaseSchemaUpdate" value="true"/>
    14.     bean>

    还可以加入连接池:

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4.        xmlns:context="http://www.springframework.org/schema/context"
    5.        xmlns:tx="http://www.springframework.org/schema/tx"
    6.        xsi:schemaLocation="http://www.springframework.org/schema/beans
    7.                     http://www.springframework.org/schema/beans/spring-beans.xsd
    8. http://www.springframework.org/schema/contex
    9. http://www.springframework.org/schema/context/spring-context.xsd
    10. http://www.springframework.org/schema/tx
    11. http://www.springframework.org/schema/tx/spring-tx.xsd">
    12.     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    13.         <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    14.         <property name="url" value="jdbc:mysql:///activiti"/>
    15.         <property name="username" value="root"/>
    16.         <property name="password" value="123456"/>
    17.         <property name="maxActive" value="3"/>
    18.         <property name="maxIdle" value="1"/>
    19.     </bean>
    20.     <!--在默认方式下 bean的id  固定为 processEngineConfiguration-->
    21.     <bean id="processEngineConfiguration"
    22.           class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
    23.         <!--引入上面配置好的 链接池-->
    24.         <property name="dataSource" ref="dataSource"/>
    25.         <!--actviti数据库表在生成时的策略  true - 如果数据库中已经存在相应的表,那么直接使用,如果不存在,那么会创建-->
    26.         <property name="databaseSchemaUpdate" value="true"/>
    27.     </bean>
    28. </beans>

    4.3.2 SpringProcessEngineConfiguration

    通过org.activiti.spring.SpringProcessEngineConfiguration 与Spring整合。

    创建spring与activiti的整合配置文件:

    activity-spring.cfg.xml(名称可修改)

    1. <beans xmlns="http://www.springframework.org/schema/beans"
    2.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    3. xmlns:context="http://www.springframework.org/schema/context"
    4.    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    5. xsi:schemaLocation="http://www.springframework.org/schema/beans 
    6.       http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
    7.       http://www.springframework.org/schema/mvc 
    8.       http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd 
    9.       http://www.springframework.org/schema/context 
    10.        http://www.springframework.org/schema/context/spring-context-3.1.xsd 
    11.       http://www.springframework.org/schema/aop 
    12.       http://www.springframework.org/schema/aop/spring-aop-3.1.xsd 
    13.       http://www.springframework.org/schema/tx 
    14.       http://www.springframework.org/schema/tx/spring-tx-3.1.xsd ">
    15.    <!-- 工作流引擎配置bean -->
    16.    <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
    17.       <!-- 数据源 -->
    18.       <property name="dataSource" ref="dataSource" />
    19.       <!-- 使用spring事务管理器 -->
    20.       <property name="transactionManager" ref="transactionManager" />
    21.       <!-- 数据库策略 -->
    22.       <property name="databaseSchemaUpdate" value="drop-create" />
    23.       <!-- activiti的定时任务关闭 -->
    24.      <property name="jobExecutorActivate" value="false" />
    25.    </bean>
    26.    <!-- 流程引擎 -->
    27.    <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
    28.       <property name="processEngineConfiguration" ref="processEngineConfiguration" />
    29.    </bean>
    30.    <!-- 资源服务service -->
    31.    <bean id="repositoryService" factory-bean="processEngine"
    32.       factory-method="getRepositoryService" />
    33.    <!-- 流程运行service -->
    34.    <bean id="runtimeService" factory-bean="processEngine"
    35.       factory-method="getRuntimeService" />
    36.    <!-- 任务管理service -->
    37.    <bean id="taskService" factory-bean="processEngine"
    38.       factory-method="getTaskService" />
    39.    <!-- 历史管理service -->
    40.    <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" />
    41.    <!-- 用户管理service -->
    42.    <bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService" />
    43.    <!-- 引擎管理service -->
    44.    <bean id="managementService" factory-bean="processEngine" factory-method="getManagementService" />
    45.    <!-- 数据源 -->
    46.    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    47.       <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    48.       <property name="url" value="jdbc:mysql://localhost:3306/activiti" />
    49.       <property name="username" value="root" />
    50.       <property name="password" value="mysql" />
    51.       <property name="maxActive" value="3" />
    52.       <property name="maxIdle" value="1" />
    53.    </bean>
    54.    <!-- 事务管理器 -->
    55.    <bean id="transactionManager"
    56.     class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    57.       <property name="dataSource" ref="dataSource" />
    58.    </bean>
    59.    <!-- 通知 -->
    60.    <tx:advice id="txAdvice" transaction-manager="transactionManager">
    61.       <tx:attributes></tx:attributes>
    62.           <!-- 传播行为 -->
    63.           <tx:method name="save*" propagation="REQUIRED" />
    64.           <tx:method name="insert*" propagation="REQUIRED" />
    65.           <tx:method name="delete*" propagation="REQUIRED" />
    66.           <tx:method name="update*" propagation="REQUIRED" />
    67.           <tx:method name="find*" propagation="SUPPORTS" read-only="true" />
    68.           <tx:method name="get*" propagation="SUPPORTS" read-only="true" />
    69.        </tx:attributes>
    70.    </tx:advice>
    71.    <!-- 切面,根据具体项目修改切点配置 -->
    72.    <aop:config proxy-target-class="true">
    73.       <aop:advisor advice-ref="txAdvice"  pointcut="execution(* com.itheima.ihrm.service.impl.*.(..))"* />
    74.   </aop:config>
    75. </beans>

    创建processEngineConfiguration

    ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml")
    

    ​ 上边的代码要求activiti.cfg.xml中必须有一个processEngineConfiguration的bean

    也可以使用下边的方法,更改bean 的名字:

    ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(String resource, String beanName);

    4.4 工作流引擎创建

    工作流引擎(ProcessEngine),相当于一个门面接口,通过ProcessEngineConfiguration创建processEngine,通过ProcessEngine创建各个service接口。

    4.4.1 默认创建方式

    将activiti.cfg.xml文件名及路径固定,且activiti.cfg.xml文件中有 processEngineConfiguration的配置, 可以使用如下代码创建processEngine:

    1. //直接使用工具类 ProcessEngines,使用classpath下的activiti.cfg.xml中的配置创建processEngine
    2. ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    3. System.out.println(processEngine);

    4.4.2 一般创建方式

    1. //先构建ProcessEngineConfiguration
    2. ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
    3. //通过ProcessEngineConfiguration创建ProcessEngine,此时会创建数据库
    4. ProcessEngine processEngine = configuration.buildProcessEngine();

    代码如下:

    1. import org.activiti.engine.ProcessEngine;
    2. import org.activiti.engine.ProcessEngineConfiguration;
    3. import org.junit.jupiter.api.Test;
    4. import org.springframework.boot.test.context.SpringBootTest;
    5. @SpringBootTest
    6. class JwtApplicationTests {
    7. @Test
    8. void contextLoads() {
    9. }
    10. /**
    11. * 生成 activiti的数据库表
    12. */
    13. @Test
    14. public void testCreateDbTable() {
    15. /*
    16. * 需要使用activiti提供的工具类ProcessEngines,提供的getDefaultProcessEngine
    17. * getDefaultProcessEngine会默认resources下读取名字为activiti.cfg.xml的文件
    18. * 创建Process时就会创建mysql的表
    19. * 默认方式
    20. * //使用classpath下的activiti.cfg.xml中的配置创建processEngine
    21. * ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    22. * RepositoryService repositoryService = processEngine.getRepositoryService();
    23. * repositoryService.createDeployment();
    24. * */
    25. //使用自定义的方式
    26. //配置文件的名字可以自定义,bean的名字也可以自定义
    27. ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration
    28. .createProcessEngineConfigurationFromResource("activiti.cfg.xml"
    29. , "processEngineConfiguration");
    30. //获取流程引擎对象
    31. ProcessEngine processEngine = processEngineConfiguration
    32. .buildProcessEngine();
    33. System.out.println(processEngine);
    34. }
    35. }

    4.5 Servcie服务接口

    Service是工作流引擎提供用于进行工作流部署、执行、管理的服务接口,我们使用这些接口可以就是操作服务对应的数据表

    4.5.1 Service创建方式

    通过ProcessEngine创建Service

    方式如下:

    1. RuntimeService runtimeService = processEngine.getRuntimeService();
    2. RepositoryService repositoryService = processEngine.getRepositoryService();
    3. TaskService taskService = processEngine.getTaskService();

    4.5.2 Service总览

    service名称 service作用
    RepositoryService activiti的资源管理类
    RuntimeServiceactiviti的流程运行管理类
    TaskServiceactiviti的任务管理类
    HistoryServiceactiviti的历史管理类
    ManagerServiceactiviti的引擎管理类

    简单介绍:

    RepositoryService

    是activiti的资源管理类,提供了管理和控制流程发布包和流程定义的操作。使用工作流建模工具设计的业务流程图需要使用此service将流程定义文件的内容部署到计算机。

    除了部署流程定义以外还可以:查询引擎中的发布包和流程定义。

    暂停或激活发布包,对应全部和特定流程定义。 暂停意味着它们不能再执行任何操作了,激活是对应的反向操作。获得多种资源,像是包含在发布包里的文件, 或引擎自动生成的流程图。

    获得流程定义的pojo版本, 可以用来通过java解析流程,而不必通过xml。

    RuntimeService
    Activiti的流程运行管理类。可以从这个服务类中获取很多关于流程执行相关的信息

    TaskService
    Activiti的任务管理类。可以从这个类中获取任务的信息。

    HistoryService
    Activiti的历史管理类,可以查询历史信息,执行流程时,引擎会保存很多数据(根据配置),比如流程实例启动时间,任务的参与者, 完成任务的时间,每个流程实例的执行路径,等等。 这个服务主要通过查询功能来获得这些数据。

    ManagementService
    Activiti的引擎管理类,提供了对 Activiti 流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于 Activiti 系统的日常维护。
     

  • 相关阅读:
    linux study01
    【服务器数据恢复】戴尔某型号服务器raid故障的数据恢复案例
    get和post请求的区别
    预测明天什么股能涨起来,预测明天什么股能涨停
    快捷方式图标小箭头刷新慢?百度网盘的锅---附“解除“百度网盘限速技巧(这次是百度网盘先动手的啊)
    【Linux】解决`arguments must be process or job IDs`报错
    【教程】uni-app iOS打包解决profile文件与私钥证书不匹配问题
    介绍 TensorFlow 的基本概念和使用场景
    基于混沌权重和精英引导的鲸鱼优化算法-附代码
    第2章-矩阵及其运算-矩阵创建(1)
  • 原文地址:https://blog.csdn.net/weixin_53998054/article/details/127551695