天天看點

activiti7工作流引擎之建立流程模型表結構

建立配置檔案

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
						http://www.springframework.org/schema/contex http://www.springframework.org/schema/context/spring-context.xsd
						http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    <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?useSSL=false" />
        <property name="username" value="root" />
        <property name="password" value="123456" />
        <property name="maxActive" value="3" />
        <property name="maxIdle" value="1" />
    </bean>

    <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <property name="dataSource" ref="dataSource"></property>
        <property name="databaseSchemaUpdate" value="true"/>
    </bean>
</beans>
           

細節注釋

細節一:StandloneProcessEngineConfiguration中需要注入資料源。

細節二:StandloneProcessEngineConfiguration中屬性為databaseSchemaUpdate屬性值設定為true

指的是:容器啟動時如果資料庫中存在某個表就不在建立已存在的表結構,如果不存在則建立不存在的表結構。

細節三:StandloneProcessEngineConfiguration中id的名稱是processEngineConfiguration不能改變,如果改變啟動會報錯。

細節四:中文名稱儲存亂碼問題(在xml配置資料源是&要進行轉義&amp;)

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
             <property name="url" value="jdbc:mysql://localhost:3306/activiti? 
                useSSL=false&amp;useUnicode=true&amp;characterEncoding=utf8" />
    </bean>
           

建立log4j.perperties

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

           

生成流程表結構

(springBoot可以通過編寫自動配置類)

第一步:加載流程配置檔案,建立流程配置對象

ProcessEnginConfiguration.createProcessConfigurationResource
           

第二步:通過流程配置對象,建立流程引擎

package org.wxy.com.activiti;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.junit.Test;

/**
 * Unit test for simple App.
 */
public class AppTest {
	
	@Test
	public  void testprocess(){
	    //加載配置檔案建立工作流程配置對象
		//如果使用avtiviti預設的idprocessEngineConfiguration
		ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
		//如果修改了avtiviti預設的id時
		//ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml","修改的id");
		//建立工作流程引擎
		ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
    }
}
           

第三步:運作後資料庫,就會生成工作引擎相關表結構

表結構參考:https://blog.csdn.net/hj7jay/article/details/51302829

資料庫流程表結構說明

 Activiti工作流所有的表名預設以“ACT_”開頭并且表名的第二部分用兩個字母表明表的用例,而這個用例也基本上跟Service API比對。

  •  ACT_GE_* : “GE”代表“General”(通用),用在各種情況下;
  •  ACT_HI_* : “HI”代表“History”(曆史),記錄曆史資料,比如執行過的流程執行個體、變量、任務等等。、

  Activit預設提供了4種曆史級别:

  none: 不儲存任何曆史記錄,可以提高系統性能;

 activity:儲存所有的流程執行個體、任務、活動資訊;

 audit:也是Activiti的預設級别,儲存所有的流程執行個體、任務、活動、表單屬性;

 full:最完整的曆史記錄,除了包含audit級别的資訊之外還能儲存詳細,例如:流程變量。

       對于幾種級别根據對功能的要求選擇,如果需要日後跟蹤詳細可以開啟full。

  • ACT_ID_* : “ID”代表“Identity”(身份),這些表中儲存的都是身份資訊,如使用者群組以及兩者之間的關系。如果Activiti被內建在某一系統當中的話,這些表可以不用,可以直接使用現有系統中的使用者或組資訊;
  • ACT_RE_* : “RE”代表“Repository”(倉庫),這些表中儲存一些‘靜态’資訊,如流程定義和流程資源(如圖檔、規則等);
  • ACT_RU_* : “RU”代表“Runtime”(運作時),這些表中儲存一些流程執行個體、使用者任務、變量等的運作時資料。Activiti隻儲存流程執行個體在執行過程中的運作時資料,并且當流程結束後會立即移除這些資料,這是為了保證運作時表盡量的小并運作的足夠快;

 資料庫流程表結構清單

表分類 表名 解釋
一般資料 ACT_GE_BYTEARRAY 通用的流程定義和流程資源
ACT_GE_PROPERTY 系統相關屬性
流程曆史記錄 ACT_HI_ACTINST 曆史的流程執行個體
ACT_HI_ATTACHMENT 曆史的流程附件
ACT_HI_COMMENT 曆史的說明性資訊
ACT_HI_DETAIL 曆史的流程運作中的細節資訊
ACT_HI_IDENTITYLINK 曆史的流程運作過程中使用者關系
ACT_HI_PROCINST 曆史的流程執行個體
ACT_HI_TASKINST 曆史的任務執行個體
ACT_HI_VARINST 曆史的流程運作中的變量資訊
使用者使用者組表 ACT_ID_GROUP 身份資訊-組資訊
ACT_ID_INFO 身份資訊-組資訊
ACT_ID_MEMBERSHIP 身份資訊-使用者群組關系的中間表
ACT_ID_USER 身份資訊-使用者資訊
流程定義表 ACT_RE_DEPLOYMENT 部署單元資訊
ACT_RE_MODEL 模型資訊
ACT_RE_PROCDEF 已部署的流程定義
運作執行個體表 ACT_RU_EVENT_SUBSCR 運作時事件
ACT_RU_EXECUTION 運作時流程執行執行個體
ACT_RU_IDENTITYLINK 運作時使用者關系資訊
ACT_RU_JOB 運作時作業
ACT_RU_TASK 運作時任務
ACT_RU_VARIABLE 運作時變量表

Activity系統架構圖

activiti7工作流引擎之建立流程模型表結構

 ProcessEngin引擎接口

activiti7工作流引擎之建立流程模型表結構

注:簡單的方式生成工作流的表結構

前提條件是

1.配置檔案名稱必須是avtiviti.cfg.xml

2.  <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> id的名稱必須是    processEngineConfiguration

@Test
	public  void testprocess2(){
		//直接生成工作流引擎的25張表
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    }
	
           

繼續閱讀