前言:

Activiti官方文档地址:

https://www.activiti.org/

一.什么是工作流?

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

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

 

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

通俗来讲:说白了,就是一个流程管理框架,使业务可以按照设定好的流程走,且可以在线更新业务流程,使程序可以快速适应业务变化发展,使系统更好的维护和扩展,具体场景的话如 : 借款审核,报销申报,请假审批等。

二 .如何在项目中引用Activiti?

  • 2.1 首先在pom.xml中引用jar包
 <!-- activiti start -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-engine</artifactId>
            <version>5.22.0</version>
        </dependency>

        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-basic</artifactId>
            <version>5.22.0</version>
        </dependency>

        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-json-converter</artifactId>
            <version>5.22.0</version>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-explorer</artifactId>
            <version>5.22.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-simple-workflow</artifactId>
            <version>5.22.0</version>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring</artifactId>
            <version>5.22.0</version>
        </dependency>

2.2  在项目根目录下新建文件,创建工作流的23张表

 

2.3  activiti-contenxt.xml文件中的内容

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

    <!--配置流程引擎配置对象-->
    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
        <property name="jdbcDriver"  value="com.mysql.jdbc.Driver"/>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/main_config"/>
        <property name="jdbcUsername" value="root" />
        <property name="jdbcPassword" value="root" />
        <property name="databaseSchemaUpdate" value="true"/>
    </bean>
</beans>

2.4 生成的工作流的表

三.工作流的几张表具体作用

Activi 23张表的含义
序号表名解释
1act_ge_bytearray二进制数据表
2act_ge_property属性数据表,存储整个流程引擎级别的数据
3act_hi_actinst历史节点表
4act_hi_attachment历史附件表
5act_hi_comment历史意见表
6act_hi_identitylink历史流程人员表
7act_hi_detail历史详情表
8act_hi_procinst历史流程实例表
9act_hi_taskinst历史任务实例表
10act_hi_varinst历史变量表
11act_hi_group用户组变量表
12act_id_info用户扩展信息表
13act_id_membership用户与用户组对应信息表
14act_id_user用户信息表
15act_re_deployment部署信息表
16act_re_model流程设计模型部署表
17act_re_procdef流程定义数据表
18act_ru_event_subscrthrowEvent catchEvent 时间监听信息表
19act_ru_execution运行时流程执行实例表
20act_ru_identitylink运行时流程人员表,主要存储任务节点与参与者的相关信息
21act_ru_job运行时定时任务数据表
22act_ru_task运行时任务节点表
23act_ru_variable运行时流程变量数据表

 

四. 网上一些比较好的资料

1.  http://kailing.pub/article/index/arcid/157.html

2.  actviti的英文文档 :https://www.activiti.org/userguide/index.html

3.  中文文档: http://www.kailing.pub/PdfReader/web/viewer.html?file=Activiti5.4Guide

4.Activiti 工作流引擎:https://blog.csdn.net/qq_37716175/article/details/79190926

5.三分钟了解什么是工作流?https://blog.csdn.net/jiangyu1013/article/details/73250902

activiti 23张表的作用

五.工作流调用类

1.RepositoryService:提供一系列管理流程部署和流程定义的API。
2.RuntimeService:在流程运行时对流程实例进行管理与控制。
3.TaskService:对流程任务进行管理,例如任务提醒、任务完成和创建任务等。
4.IdentityService:提供对流程角色数据进行管理的API,这些角色数据包括用户组、用户及它们之间的关系。
5.ManagementService:提供对流程引擎进行管理和维护的服务。
6.HistoryService:对流程的历史数据进行操作,包括查询、删除这些历史数据。
7.FormService:表单服务。

后面遇到比较好的再补充上去。

 

 

 

 

 

 

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐