zoukankan      html  css  js  c++  java
  • activiti基本介绍

    由于新项目要用到工作流,之前也没接触过,这几天就学了学工作流Activiti。好记性不如烂笔头,在这里记录一下,以后也可以回过头看一看。

    概念:我的理解是通过定义流程,启动流程,执行流程等一系列操作,实现业务逻辑。在定义好流程后,会产生两个文件分别是*.bpmn和*.png。

    应用场景:比如常见的请假,正规一点的,可能需要好几级领导审批,或者根据不同的请假天数,对应不同的领导签字(后面会发现有了排他网关,实现很方便);费用报销、会议的多人会签等等,都是可以使用工作流来完成。

    数据库的支持: activiti的后台是有数据库的支持,所有的表都是以ACT_开头的,第二部分表示表的用途的两个字母标识,用途也和服务的API对应。

    下面这些我就直接截图了,码字的话,太多了。网上也都能看到这些表的说明。

     

    表的生成:

    有两种方式,(1)通过Java代码实现。(2)通过配置文件实现。这里附上如何配置的(参考b站上面的视频资源),一般都是用配置来实现。

    <!-- 
            ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
            //连接数据库的配置
            processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");
            processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/itcast0711activiti?useUnicode=true&characterEncoding=utf8");
            processEngineConfiguration.setJdbcUsername("root");
            processEngineConfiguration.setJdbcPassword("root");
            
            /**
                 public static final String DB_SCHEMA_UPDATE_FALSE = "false";不能自动创建表,需要表存在
                  public static final String DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop";先删除表再创建表
                  public static final String DB_SCHEMA_UPDATE_TRUE = "true";如果表不存在,自动创建表
             */
            processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
         -->
        <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
            <!-- 连接数据的配置 -->
            <property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property>
            <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&amp;characterEncoding=utf8"></property>
            <property name="jdbcUsername" value="root"></property>
            <property name="jdbcPassword" value="123456"></property>
            <!-- 没有表创建表 -->
            <property name="databaseSchemaUpdate" value="true"></property>
        </bean>

    重点来了!!! 重点来了!!!重点来了!!!

    activiti的核心就是ProcessEngine流程引擎对象,所有的操作,都是通过流程引擎来实现的,本篇就讲述几个常用Api。

    (1)ProcessEngine(核心)

    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

    (2)RepositoryService(规则相关)

     RepositoryService repositoryService = processEngine.getRepositoryService();

    (3)RunTimeServicce(运行时)

    RuntimeService runtimeService = processEngine.getRuntimeService();

    (4)TaskService(用户任务)

    TaskService taskService = processEngine.getTaskService();

    (5)ProcessDefinition(流程定义对象)

    (6)ProcessInstance(流程实例)

    下一章我们再说这些api的具体应用。

  • 相关阅读:
    LeetCode题解——两数之和
    题解LeetCode——回文数
    汇编语言入门教程
    python基础--局部变量与全局变量
    linux--基础知识1
    python基础--函数
    字符串format函数使用
    字符串的拼接
    python基础--6 集合
    python基础--5字典
  • 原文地址:https://www.cnblogs.com/wei-cy/p/12872319.html
Copyright © 2011-2022 走看看