• 工作流


    工作流:一套业务流程
    员工编写请假条----->部门经理进行处理----->总经理------>人事登记

    数据库中生成记录
    工号 姓名 部门编号 请假日期 请假天数 请假事由 状态
    001 张三 1 2020年3月30日 3 zxxx 0,1 0代表提交失败 1代表提交成功

    部门经理:部门经理的部门编号和审批员工的部门编号要一致,状态=1
    同意:2 驳回:3
    总经理:可以查看到状态为2的数据,代表部门经理已经审批
    同意:4 驳回:5
    人事:可以查看到状态为4的数据
    同意:6 驳回:7

    工作流引擎:帮助自动化管理业务流程,Activiti7



    Activiti7操作流程:
    1.部署Activiti,一般将Activiti和业务部署到一起
    2.定义流程图
    3.通过Activiti提供API生成流程定义的内容
    4.用户查看代办流程
    5.用户处理
    6.流程结束

    安装Activiti Designer 流程设计器:
    idea插件官网:https://plugins.jetbrains.com/
    打开IDEA工具,选择file---->settings---->plugins
    方案一:搜索actiBPM插件,如果能搜索到的情况下右侧有下载链接
    方案二:进入IDEA插件官网,搜索actiBPM,点击Get获取,选择最新版本进行下载,下载完成是一个jar包
    重复上面的动作打开IDEA工具,选择file---->settings---->plugins,点击小齿轮设置,选择第三项Install Plugin from disk
    选择对应Jar包,然后就可以看到对应的actiBMP,点击Restart重启IDEA

    编写流程图:
    创建一个bpmn文件,通过每一个流程控制内容书写流程


    搭建Activiti开发环境:
    步骤一:导入依赖

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.wn</groupId>
      <artifactId>activiti</artifactId>
      <version>1.0-SNAPSHOT</version>
      <modules>
        <module>activiti_day01</module>
      </modules>
      <packaging>pom</packaging>
    
      <name>activiti Maven Webapp</name>
      <!-- FIXME change it to the project's website -->
      <url>http://www.example.com</url>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
        <slf4j.version>1.6.6</slf4j.version>
        <log4j.version>1.2.12</log4j.version>
      </properties>
    
      <dependencies>
        <dependency>
          <groupId>org.activiti</groupId>
          <artifactId>activiti-engine</artifactId>
          <version>7.0.0.Beta1</version>
        </dependency>
    
        <dependency>
          <groupId>org.activiti</groupId>
          <artifactId>activiti-spring</artifactId>
          <version>7.0.0.Beta1</version>
        </dependency>
    
        <dependency>
          <groupId>org.activiti</groupId>
          <artifactId>activiti-bpmn-model</artifactId>
          <version>7.0.0.Beta1</version>
        </dependency>
    
        <dependency>
          <groupId>org.activiti</groupId>
          <artifactId>activiti-bpmn-converter</artifactId>
          <version>7.0.0.Beta1</version>
        </dependency>
    
        <dependency>
          <groupId>org.activiti</groupId>
          <artifactId>activiti-json-converter</artifactId>
          <version>7.0.0.Beta1</version>
        </dependency>
    
        <dependency>
          <groupId>org.activiti</groupId>
          <artifactId>activiti-bpmn-layout</artifactId>
          <version>7.0.0.Beta1</version>
        </dependency>
    
        <dependency>
          <groupId>org.activiti.cloud</groupId>
          <artifactId>activiti-cloud-services-api</artifactId>
          <version>7.0.0.Beta1</version>
        </dependency>
    
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>5.1.40</version>
        </dependency>
    
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
        </dependency>
    
        <!-- log start -->
        <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>${log4j.version}</version>
        </dependency>
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>${slf4j.version}</version>
        </dependency>
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
          <version>${slf4j.version}</version>
        </dependency>
        <!-- log end -->
    
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.4.5</version>
        </dependency>
    
        <dependency>
          <groupId>commons-dbcp</groupId>
          <artifactId>commons-dbcp</artifactId>
          <version>1.4</version>
        </dependency>
      </dependencies>


    步骤二:创建Activiti配置文件

    <!--数据源-->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/activiti-y2170"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
    </bean>
    
    <!--配置Activiti使用的processEngine对象 默认命名为processEngineConfiguration-->
    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
    <!--注入数据源-->
    <property name="dataSource" ref="dataSource"/>
    <!--配置数据源方式二:-->
    <!--<property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>-->
    
    <!--指定数据库生成策略-->
    <property name="databaseSchemaUpdate" value="true"/>
    </bean>


    步骤三:创建一个测试类,加载对应配置文件即可

    public static void main(String[] args) {
    //加载配置
    ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
    //获取ProcessEngine对象
    ProcessEngine processEngine = configuration.buildProcessEngine();
    }
    
    public static void main(String[] args) {
    //加载配置 默认查找bean的id为processEngineConfiguration,可以更改
    ProcessEngineConfiguration configuration = ProcessEngineConfiguration.
    createProcessEngineConfigurationFromResource("activiti.cfg.xml","processEngineConfiguration01");
    
    //获取ProcessEngine对象,默认根据activiti.cfg.xml文件加载配置文件
    /*ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();*/
    
    ProcessEngine processEngine = configuration.buildProcessEngine();
    }

    Activiti数据库构成:
    ACT_RE_*: 'RE'表示 repository。 这个前缀的表包含了流程定义和流程静态资源 (图片, 规则,等等)。
    ACT_RU_*: 'RU'表示 runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务, 等运行中的数据。 Activiti 只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
    ACT_HI_*: 'HI'表示 history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。
    ACT_GE_*: GE 表示general。通用数据, 用于不同场景下。

  • 相关阅读:
    MySQL-LSN
    MySQL Binlog三种格式介绍及分析
    MySQL中的seconds_behind_master的理解
    MySQL的四种事务隔离级别
    pt-table-sync修复mysql主从不一致的数据
    MySQL主从不同步、数据不一致解决办法
    nginx的应用【静态代理、动静分离】
    Redis数据缓存淘汰策略【FIFO 、LRU、LFU】
    Java基本知识点o(1), o(n), o(logn), o(nlogn)的了解
    JS函数篇【2】
  • 原文地址:https://www.cnblogs.com/danxun/p/12600384.html
Copyright © 2020-2023  润新知