工作流Activiti在資料庫中生成的表

猿人小鄭發表於2020-11-14

   工作流Activiti內建了一些表,一共是28張,在我們專案啟動的時候會在我們配置的資料庫中建立這些表,下面就搭建一個小demo,去look一下Activiti生產的這些表。

首先到Spring的官網,找到生成模板工程的地方(https://start.spring.io/),生成專案模板:

 

把生成的模板工程,匯入到開發工具中,這裡以eclipse為例,匯入的專案如下:

在pom.xml中加入Activiti依賴、mybatis依賴、mysql驅動等jar包:

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

		<!-- mybatis -->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.2</version>
		</dependency>
		
		<!-- mysql -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

資料庫就以mysql為例,使用Oracle、sqlserver都是一樣的,開啟MySQL workbench新建一資料庫:

把此資料庫連線加入到專案中的application.properties中,其中有些配置需要配置成你的,如資料庫地址、資料庫使用者名稱密碼等

server.port=8080
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/activitidemo01?autoReconnect=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=****
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.datang.activitidemo1.model
spring.activiti.check-process-definitions=false

啟動專案,會在資料庫中生成工作流所需要的表,一共是28張表:

表說明如下:

表名預設以“ACT_”開頭,並且表名的第二部分用兩個字母表明表的用例,而這個用例也基本上跟Service API匹配。

ACT_GE_* : “GE”代表“General”(通用),用在各種情況下;

ACT_HI_* : “HI”代表“History”(歷史),這些表中儲存的都是歷史資料,比如執行過的流程例項、變數、任務,等等。

ACT_ID_* : “ID”代表“Identity”(身份),這些表中儲存的都是身份資訊,如使用者和組以及兩者之間的關係。如果Activiti被整合在某一系統當中的話,這些表可以不用,可以直接使用現有系統中的使用者或組資訊;

ACT_RE_* : “RE”代表“Repository”(倉庫),這些表中儲存一些‘靜態’資訊,如流程定義和流程資源(如圖片、規則等);

ACT_RU_* : “RU”代表“Runtime”(執行時),這些表中儲存一些流程例項、使用者任務、變數等的執行時資料。Activiti只儲存流程例項在執行過程中的執行時資料,並且當流程結束後會立即移除這些資料,這是為了保證執行時表儘量的小並執行的足夠快;

act_evt_log	事件處理日誌表
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_procdef_info	死信任務
act_re_deployment	部署單元資訊
act_re_model	模型資訊
act_re_procdef	已部署的流程定義
act_ru_deadletter_job	執行失敗任務表
act_ru_event_subscr	執行時事件
act_ru_execution	執行時流程執行例項
act_ru_identitylink	執行時使用者關係資訊
act_ru_job	執行時作業
act_ru_suspended_job	執行時暫停任務
act_ru_task	執行時任務
act_ru_timer_job	執行時定時任務
act_ru_variable	執行時變數表

Activiti為我們提供了以下的服務,可以直接來呼叫API操縱工作流:

RepositoryService幫助我們實現流程定義的部署。此服務會處理與流程定義相關的靜態資料。
RuntimeService管理 ProcessInstances(當前正在執行的流程)以及流程變數
TaskService會跟蹤 UserTasks,需要由使用者手動執行的任務是Activiti API的核心。我們可以使用此服務建立任務,宣告並完成任務,分配任務的受讓人等。
FormService是一項可選服務,它用於定義中開始表單和任務表單。
IdentityService管理使用者和組。
HistoryService會跟蹤Activiti Engine的歷史記錄。我們還可以設定不同的歷史級別。
ManagementService與後設資料相關,在建立應用程式時通常不需要。
DynamicBpmnService幫助我們在不重新部署的情況下更改流程中的任何內容

相關文章