activiti流程設計到表

http://blog.csdn.net/hj7jay/article/details/51302829

1  Activiti數據庫表結構

1.1      數據庫表名說明

    Activiti工作流總共包含23張數據表,所有的表名默認以“ACT_”開頭。

並且表名的第二部分用兩個字母表明表的用例,而這個用例也基本上跟Service API匹配。

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

u  ACT_HI_* : “HI”代表“History”(歷史),這些表中保存的都是歷史數據,比如執行過的流程實例、變量、任務,等等。Activit默認提供了4種歷史級別:

Ø  none: 不保存任何歷史記錄,可以提高系統性能;

Ø  activity:保存所有的流程實例、任務、活動信息;

Ø  audit:也是Activiti的默認級別,保存所有的流程實例、任務、活動、表單屬性;

Ø  full:最完整的歷史記錄,除了包含audit級別的信息之外還能保存詳細,例如:流程變量。

對於幾種級別根據對功能的要求選擇,如果需要日後跟蹤詳細可以開啓full

 

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

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

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

 

1.2      數據庫表結構

1.2.1   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

運行時變量表

 

1.2.2表名:ACT_GE_BYTEARRAY(通用的流程定義和流程資源)

用來保存部署文件的大文本數據。

保存流程定義圖片和xml、Serializable(序列化)的變量,即保存所有二進制數據,特別注意類路徑部署時候,不要把svn等隱藏文件或者其他與流程無關的文件也一起部署到該表中,會造成一些錯誤(可能導致流程定義無法刪除)。

ACT_GE_BYTEARRAY(act_ge_bytearray)

是否主鍵

字段名

字段描述

數據類型

可空

約束

缺省值

取值說明

ID_

主鍵ID,資源文件編號,自增長

VARCHAR(64)

 

REV_

版本號

INT(11)

Version

NAME_

部署的文件名稱,

VARCHAR(255)

mail.bpmn、mail.png 、mail.bpmn20.xml

DEPLOYMENT_ID_

來自於父表ACT_RE_DEPLOYMENT的主鍵

VARCHAR(64)

部署的ID

BYTES_

大文本類型,存儲文本字節流

LONGBLOB

GENERATED_

是否是引擎生成。

TINYINT(4)

0爲用戶生成

1爲Activiti生成

 

 

1.2.3   表名:ACT_GE_PROPERTY(系統相關屬性)

屬性數據表。存儲這個流程引擎級別的數據。

ACT_GE_PROPERTY(act_ge_property)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

取值說明

NAME_

屬性名稱

VARCHAR(64)

64

schema.version

schema.history

next.dbid

VALUE_

屬性值

VARCHAR(300)

300

5.*

create(5.*)

REV_INT

版本號

INT(11)

11

 

1.2.4表名:ACT_HI_ACTINST(歷史節點表)

歷史活動信息。這裏記錄流程流轉過的所有節點,與HI_TASKINST不同的是,taskinst只記錄usertask內容。

ACT_HI_ACTINST(act_hi_actinst)

是否主鍵

字段名

字段描述

數據類型

可空

約束

取值說明

ID_

ID_

VARCHAR(64)

 

PROC_DEF_ID_

流程定義ID

VARCHAR(64)

 

PROC_INST_ID_

流程實例ID

VARCHAR(64)

 

EXECUTION_ID_

流程執行ID

VARCHAR(64)

 

ACT_ID_

活動ID

VARCHAR(255)

 

節點定義ID

TASK_ID_

任務ID

VARCHAR(64)

任務實例ID 其他節點類型實例ID在這裏爲空

CALL_PROC_INST_ID_

請求流程實例ID

VARCHAR(64)

調用外部流程的流程實例ID'

ACT_NAME_

活動名稱

VARCHAR(255)

節點定義名稱

ACT_TYPE_

活動類型

VARCHAR(255)

 

如startEvent、userTask

ASSIGNEE_

代理人員

VARCHAR(64)

節點簽收人

START_TIME_

開始時間

DATETIME

 

2013-09-15 11:30:00

END_TIME_

結束時間

DATETIME

2013-09-15 11:30:00

DURATION_

時長,耗時

BIGINT(20)

毫秒值

 

 

1.2.5   表名:ACT_HI_ATTACHMENT附件信息)

ACT_HI_ATTACHMENT(act_hi_attachment)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

取值說明

ID_

ID_

VARCHAR(64)

64

主鍵ID

REV_

REV_

INT(11)

11

Version

USER_ID_

用戶id

VARCHAR(255)

255

用戶ID

NAME_

名稱

VARCHAR(255)

255

附件名稱

DESCRIPTION_

描述

VARCHAR(4000)

4000

描述

TYPE_

類型

VARCHAR(255)

255

附件類型

TASK_ID_

任務Id

VARCHAR(64)

64

節點實例ID

PROC_INST_ID_

流程實例ID

VARCHAR(64)

64

流程實例ID

URL_

連接

VARCHAR(4000)

4000

附件地址

CONTENT_ID_

內容Id

字節表的ID

VARCHAR(64)

64

ACT_GE_BYTEARRAY的ID

 

 

1.2.6   表名:ACT_HI_COMMENT(歷史審批意見表)

ACT_HI_COMMENT(act_hi_comment)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

取值說明

ID_

ID_

VARCHAR(64)

64

主鍵ID

TYPE_

意見記錄類型,爲comment時,爲處理意見

VARCHAR(255)

255

類型:event(事件)

comment(意見)

TIME_

記錄時間

DATETIME

填寫時間

USER_ID_

用戶Id

VARCHAR(255)

255

填寫人

TASK_ID_

任務Id

VARCHAR(64)

64

節點實例ID

PROC_INST_ID_

流程實例Id

VARCHAR(64)

64

流程實例ID

ACTION_

行爲類型。

爲addcomment時,爲處理意見

VARCHAR(255)

255

值爲下列內容中的一種:    AddUserLink、DeleteUserLink、AddGroupLink、DeleteGroupLink、AddComment、AddAttachment、DeleteAttachment

MESSAGE_

處理意見

VARCHAR(4000)

4000

用於存放流程產生的信息,比如審批意見

FULL_MSG_

全部消息

LONGBLOB

 

 

1.2.7表名:ACT_HI_DETAIL(歷史詳細信息)

歷史詳情表:流程中產生的變量詳細,包括控制流程流轉的變量,業務表單中填寫的流程需要用到的變量等。

ACT_HI_DETAIL(act_hi_detail)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

取值說明

ID_

ID_

VARCHAR(64)

64

主鍵

TYPE_

數據類型

VARCHAR(255)

255

類型:

FormProperty, //表單

VariableUpdate //參數

PROC_INST_ID_

流程實例ID

VARCHAR(64)

64

流程實例ID

EXECUTION_ID_

執行實例Id

VARCHAR(64)

64

執行實例ID

TASK_ID_

任務Id

VARCHAR(64)

64

任務實例ID

ACT_INST_ID_

活動實例Id

VARCHAR(64)

64

ACT_HI_ACTINST表的ID

NAME_

名稱

VARCHAR(255)

255

名稱

VAR_TYPE_

變量類型

VARCHAR(255)

255

參見VAR_TYPE_類型說明

REV_

REV_

INT(11)

11

Version

TIME_

創建時間

DATETIME

創建時間

BYTEARRAY_ID_

字節數組Id

VARCHAR(64)

64

ACT_GE_BYTEARRAY表的ID

DOUBLE_

DOUBLE_

DOUBLE

存儲變量類型爲Double

LONG_

LONG_

BIGINT(20)

20

存儲變量類型爲long

TEXT_

VARCHAR(4000)

4000

存儲變量值類型爲String

TEXT2_

值2

VARCHAR(4000)

4000

此處存儲的是JPA持久化對象時,纔會有值。此值爲對象ID

 

備註:VAR_TYPE_類型說明: jpa-entity、boolean、bytes、serializable(可序列化)、自定義type(根據你自身配置)、 CustomVariableType、date、double、integer、long、null、short、string

 

1.2.8   表名:ACT_HI_IDENTITYLINK (歷史流程人員表)

任務參與者數據表。主要存儲歷史節點參與者的信息。

ACT_HI_IDENTITYLINK(act_hi_identitylink)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

取值說明

ID_

ID_

VARCHAR(64)

64

ID_

GROUP_ID_

用戶組ID

VARCHAR(255)

255

組ID

TYPE_

用戶組類型

VARCHAR(255)

255

類型,主要分爲以下幾種:

assignee、

candidate、

owner、starter 、participant

USER_ID_

用戶ID

VARCHAR(255)

255

用戶ID

TASK_ID_

任務Id

VARCHAR(64)

64

節點實例ID

PROC_INST_ID_

流程實例Id

VARCHAR(64)

64

流程實例ID

 

1.2.9   表名:ACT_HI_PROCINST(歷史流程實例信息)核心表

ACT_HI_PROCINST(act_hi_procinst)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

備註

ID_

ID_

VARCHAR(64)

64

PROC_INST_ID_

流程實例ID

VARCHAR(64)

64

BUSINESS_KEY_

業務Key

VARCHAR(255)

255

PROC_DEF_ID_

流程定義Id

VARCHAR(64)

64

START_TIME_

開始時間

DATETIME

END_TIME_

結束時間

DATETIME

DURATION_

時長

BIGINT(20)

20

START_USER_ID_

發起人員Id

VARCHAR(255)

255

START_ACT_ID_

開始節點

VARCHAR(255)

255

END_ACT_ID_

結束節點

VARCHAR(255)

255

SUPER_PROCESS_INSTANCE_ID_

超級流程實例Id

VARCHAR(64)

64

DELETE_REASON_

刪除理由

VARCHAR(4000)

4000

 

1.2.10 表名:ACT_HI_TASKINST(歷史任務流程實例信息)核心表

ACT_HI_TASKINST(act_hi_taskinst)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

備註

ID_

ID_

VARCHAR(64)

64

主鍵ID

PROC_DEF_ID_

流程定義Id

VARCHAR(64)

64

流程定義ID

TASK_DEF_KEY_

任務定義Key

VARCHAR(255)

255

節點定義ID

PROC_INST_ID_

流程實例ID

VARCHAR(64)

64

流程實例ID

EXECUTION_ID_

執行ID

VARCHAR(64)

64

執行實例ID

NAME_

名稱

VARCHAR(255)

255

名稱

PARENT_TASK_ID_

父任務iD

VARCHAR(64)

64

父節點實例ID

DESCRIPTION_

描述

VARCHAR(4000)

4000

描述

OWNER_

實際簽收人 任務的擁有者

VARCHAR(255)

255

簽收人(默認爲空,只有在委託時纔有值)

ASSIGNEE_

代理人

VARCHAR(255)

255

簽收人或被委託

START_TIME_

開始時間

DATETIME

開始時間

CLAIM_TIME_

提醒時間

DATETIME

提醒時間

END_TIME_

結束時間

DATETIME

結束時間

DURATION_

時長

BIGINT(20)

20

耗時

DELETE_REASON_

刪除理由

VARCHAR(4000)

4000

刪除原因(completed,deleted)

PRIORITY_

優先級

INT(11)

11

優先級別

DUE_DATE_

應完成時間

DATETIME

過期時間,表明任務應在多長時間內完成

FORM_KEY_

表單key

VARCHAR(255)

255

desinger節點定義的

form_key屬性

 

1.2.11 表名:ACT_HI_VARINST歷史變量信息)

ACT_HI_VARINST(act_hi_varinst)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

備註

ID_

ID_

VARCHAR(64)

64

ID_

PROC_INST_ID_

流程實例ID

VARCHAR(64)

64

流程實例ID

EXECUTION_ID_

執行ID

VARCHAR(64)

64

執行實例ID

TASK_ID_

任務Id

VARCHAR(64)

64

任務實例ID

NAME_

名稱

VARCHAR(255)

255

參數名稱(英文)

VAR_TYPE_

變量類型

VARCHAR(100)

100

參見VAR_TYPE_類型說明

REV_

REV_

INT(11)

11

Version

BYTEARRAY_ID_

字節數組ID

VARCHAR(64)

64

ACT_GE_BYTEARRAY表的主鍵

DOUBLE_

DOUBLE_

DOUBLE

存儲DoubleType類型的數據

LONG_

LONG_

BIGINT(20)

20

存儲LongType類型的數據

TEXT_

TEXT_

VARCHAR(4000)

4000

存儲變量值類型爲String,如此處存儲持久化對象時,值jpa對象的class

TEXT2_

TEXT2_

VARCHAR(4000)

4000

此處存儲的是JPA持久化對象時,纔會有值。此值爲對象ID

 

1.2.12       表名:ACT_ID_GROUP(用戶組表)

用來存儲用戶組信息。

ACT_ID_GROUP(act_id_group)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

備註

ID_

用戶組ID

VARCHAR(64)

64

REV_

版本號

INT(11)

11

NAME_

用戶組描述信息

VARCHAR(255)

255

TYPE_

用戶組類型

VARCHAR(255)

255

 

1.2.13 表名:ACT_ID_INFO(用戶擴展信息表)

用戶擴展信息表。目前該表未用到。

ACT_ID_INFO(act_id_info)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

備註

ID_

VARCHAR(64)

64

REV_

版本號

INT(11)

11

USER_ID_

用戶ID

VARCHAR(64)

64

TYPE_

類型

VARCHAR(64)

64

KEY_

formINPut名稱

VARCHAR(255)

255

VALUE_

VARCHAR(255)

255

PASSWORD_

密碼

LONGBLOB

PARENT_ID_

父節點

VARCHAR(255)

255

 

1.2.14       表名:ACT_ID_MEMBERSHIP(用戶用戶組關聯表)

用來保存用戶的分組信息

ACT_ID_MEMBERSHIP(act_id_membership)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

備註

USER_ID_

用戶Id

VARCHAR(64)

64

GROUP_ID_

用戶組Id

VARCHAR(64)

64

 

1.2.15 表名:ACT_ID_USER(用戶信息表)

ACT_ID_USER(act_id_user)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

備註

ID_

ID_

VARCHAR(64)

64

REV_

版本號

INT(11)

11

FIRST_

用戶名稱

VARCHAR(255)

255

LAST_

用戶姓氏

VARCHAR(255)

255

EMAIL_

郵箱

VARCHAR(255)

255

PWD_

密碼

VARCHAR(255)

255

PICTURE_ID_

頭像Id

VARCHAR(64)

64

 

 

1.2.16 表名:ACT_RE_DEPLOYMENT(部署信息表)

用來存儲部署時需要持久化保存下來的信息

ACT_RE_DEPLOYMENT(act_re_deployment)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

備註

ID_

部署編號,自增長

VARCHAR(64)

64

NAME_

部署包的名稱

VARCHAR(255)

255

CATEGORY_

類型

VARCHAR(255)

255

 

TENANT_ID_

租戶

VARCHAR(255)

255

 

多租戶通常是在軟件需要爲多個不同組織服務時產生的概念

 

DEPLOY_TIME_

部署時間

TIMESTAMP

CURRENT_TIMESTAMP

 

1.2.17 表名:ACT_RE_MODEL(流程設計模型表)

    創建流程的設計模型時,保存在該數據表中。

ACT_RE_MODEL(act_re_model)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

備註

ID_

ID_

VARCHAR(64)

64

ID_

REV_

INT(11)

11

樂觀鎖

NAME_

模型的名稱:

比如:收文管理

VARCHAR(255)

255

名稱

KEY_

模型的關鍵字,流程引擎用到。

比如:FTOA_SWGL

VARCHAR(255)

255

分類,例如:

http://www.mossle.com/docs/activiti/

CATEGORY_

類型,用戶自己對流程模型的分類。

VARCHAR(255)

255

分類

CREATE_TIME_

創建時間

TIMESTAMP

創建時間

LAST_UPDATE_TIME_

最後修改時間

TIMESTAMP

最新修改時間

VERSION_

版本,從1開始。

INT(11)

11

版本

META_INFO_

數據源信息,比如:

{"name":"FTOA_SWGL","revision":1,"description":"豐臺財政局OA,收文管理流程"}

VARCHAR(4000)

4000

以json格式保存流程定義的信息

DEPLOYMENT_ID_

部署ID

VARCHAR(64)

64

部署ID

EDITOR_SOURCE_VALUE_ID_

編輯源值ID

VARCHAR(64)

64

是 ACT_GE_BYTEARRAY 表中的ID_值。

EDITOR_SOURCE_EXTRA_VALUE_ID_

編輯源額外值ID(外鍵ACT_GE_BYTEARRAY )

VARCHAR(64)

64

是 ACT_GE_BYTEARRAY 表中的ID_值。

 

TENANT_ID_

租戶

VARCHAR(255)

255

 

 

 

 

1.2.18 表名:ACT_RE_PROCDEF流程定義:解析表)

流程解析表,解析成功了,在該表保存一條記錄。業務流程定義數據表

ACT_RE_PROCDEF(act_re_procdef)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省

備註

ID_

流程ID,由“流程編號:流程版本號:自增長ID”組成

VARCHAR(64)

64

ID_

REV_

版本號

INT(11)

11

樂觀鎖

CATEGORY_

流程命名空間(該編號就是流程文件targetNamespace的屬性值)

VARCHAR(255)

255

流程定義的Namespace就是類別

NAME_

流程名稱(該編號就是流程文件process元素的name屬性值)

VARCHAR(255)

255

名稱

KEY_

流程編號(該編號就是流程文件process元素的id屬性值)

VARCHAR(255)

255

流程定義ID

VERSION_

流程版本號(由程序控制,新增即爲1,修改後依次加1來完成的)

INT(11)

11

版本

DEPLOYMENT_ID_

部署編號

VARCHAR(64)

64

部署表ID

RESOURCE_NAME_

資源文件名稱

VARCHAR(4000)

4000

流程bpmn文件名稱

DGRM_RESOURCE_NAME_

圖片資源文件名稱

VARCHAR(4000)

4000

png流程圖片名稱

DESCRIPTION_

描述信息

VARCHAR(4000)

4000

描述

HAS_START_FORM_KEY_

是否從key啓動

TINYINT(4)

4

start節點是否存在formKey

 0否  1是

SUSPENSION_STATE_

是否掛起

INT(11)

11

1激活 2掛起

注:此表和ACT_RE_DEPLOYMENT是多對一的關係,即,一個部署的bar包裏可能包含多個流程定義文件,每個流程定義文件都會有一條記錄在ACT_RE_PROCDEF表內,每個流程定義的數據,都會對於ACT_GE_BYTEARRAY表內的一個資源文件和PNG圖片文件。和ACT_GE_BYTEARRAY的關聯是通過程序用ACT_GE_BYTEARRAY.NAME與ACT_RE_PROCDEF.NAME_完成的,在數據庫表結構中沒有體現。

 

1.2.19 表名:ACT_RU_EVENT_SUBSCR(運行時事件)

ACT_RU_EVENT_SUBSCR(act_ru_event_subscr)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

備註

ID_

ID

VARCHAR(64)

64

REV_

版本號

INT(11)

11

EVENT_TYPE_

事件類型

VARCHAR(255)

255

EVENT_NAME_

事件名稱

VARCHAR(255)

255

EXECUTION_ID_

流程執行ID

VARCHAR(64)

64

PROC_INST_ID_

流程實例ID

VARCHAR(64)

64

ACTIVITY_ID_

活動ID

VARCHAR(64)

64

CONFIGURATION_

配置信息

VARCHAR(255)

255

CREATED_

創建時間

TIMESTAMP

CURRENT_TIMESTAMP

 

1.2.20       表名:ACT_RU_EXECUTION運行時流程執行實例)

核心,我的代辦任務查詢表

ACT_RU_EXECUTION(act_ru_execution)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

備註

ID_

ID_

VARCHAR(64)

64

ID_

REV_

版本號

INT(11)

11

樂觀鎖

PROC_INST_ID_

流程實例編號

VARCHAR(64)

64

流程實例ID

BUSINESS_KEY_

業務編號

VARCHAR(255)

255

業務主鍵ID

PARENT_ID_

父執行流程

VARCHAR(64)

64

父節點實例ID

PROC_DEF_ID_

流程定義Id

VARCHAR(64)

64

流程定義ID

SUPER_EXEC_

VARCHAR(64)

64

ACT_ID_

實例id

VARCHAR(255)

255

節點實例ID即

ACT_HI_ACTINST中ID

IS_ACTIVE_

激活狀態

TINYINT(4)

4

是否存活

IS_CONCURRENT_

併發狀態

TINYINT(4)

4

是否爲並行(true/false)

IS_SCOPE_

 

TINYINT(4)

4

 

IS_EVENT_SCOPE_

 

TINYINT(4)

4

 

SUSPENSION_STATE_

暫停狀態_

INT(11)

11

掛起狀態   1激活 2掛起

CACHED_ENT_STATE_

緩存結束狀態_

INT(11)

11

 

 

1.2.21 表名:ACT_RU_IDENTITYLINK(身份聯繫)

主要存儲當前節點參與者的信息,任務參與者數據表。

ACT_RU_IDENTITYLINK(act_ru_identitylink)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

取值說明

ID_

ID_

VARCHAR(64)

64

 

REV_

版本號

INT(11)

11

 

GROUP_ID_

用戶組ID

VARCHAR(255)

255

 

TYPE_

用戶組類型

VARCHAR(255)

255

主要分爲以下幾種:assignee、candidate、

owner、starter、participant。即:受讓人,候選人,所有者、起動器、參與者

USER_ID_

用戶ID

VARCHAR(255)

255

 

TASK_ID_

任務Id

VARCHAR(64)

64

 

PROC_INST_ID_

流程實例ID

VARCHAR(64)

64

 

PROC_DEF_ID_

流程定義Id

VARCHAR(64)

64

 

 

 

1.2.22 表名:ACT_RU_JOB(運行中的任務)

運行時定時任務數據表

ACT_RU_JOB(act_ru_job)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

取值說明

ID_

ID_

VARCHAR(64)

64

標識

REV_

版本號

INT(11)

11

版本

TYPE_

TYPE_

VARCHAR(255)

255

類型

LOCK_EXP_TIME_

LOCK_EXP_TIME_

TIMESTAMP

鎖定釋放時間

LOCK_OWNER_

LOCK_OWNER_

VARCHAR(255)

255

掛起者

EXCLUSIVE_

EXCLUSIVE_

TINYINT(1)

1

 

EXECUTION_ID_

EXECUTION_ID_

VARCHAR(64)

64

執行實例ID

PROCESS_INSTANCE_ID_

PROCESS_INSTANCE_ID_

VARCHAR(64)

64

流程實例ID

PROC_DEF_ID_

PROC_DEF_ID_

VARCHAR(64)

64

流程定義ID

RETRIES_

RETRIES_

INT(11)

11

 

EXCEPTION_STACK_ID_

EXCEPTION_STACK_ID_

VARCHAR(64)

64

異常信息ID

EXCEPTION_MSG_

EXCEPTION_MSG_

VARCHAR(4000)

4000

異常信息

DUEDATE_

DUEDATE_

TIMESTAMP

到期時間

REPEAT_

REPEAT_

VARCHAR(255)

255

重複

HANDLER_TYPE_

HANDLER_TYPE_

VARCHAR(255)

255

處理類型

HANDLER_CFG_

HANDLER_CFG_

VARCHAR(4000)

4000

標識

 

 

 

 

1.2.23 表名:ACT_RU_TASK(運行時任務數據表)

(執行中實時任務)代辦任務查詢表

ACT_RU_TASK(act_ru_task)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

取值說明

ID_

ID_

VARCHAR(64)

64

ID_

REV_

版本號

INT(11)

11

樂觀鎖

EXECUTION_ID_

實例id(外鍵EXECUTION_ID_)

VARCHAR(64)

64

執行實例ID

PROC_INST_ID_

流程實例ID(外鍵PROC_INST_ID_)

VARCHAR(64)

64

流程實例ID

PROC_DEF_ID_

流程定義ID

VARCHAR(64)

64

流程定義ID

NAME_

任務名稱

VARCHAR(255)

255

節點定義名稱

PARENT_TASK_ID_

父節任務ID

VARCHAR(64)

64

父節點實例ID

DESCRIPTION_

任務描述

VARCHAR(4000)

4000

節點定義描述

TASK_DEF_KEY_

任務定義key

VARCHAR(255)

255

任務定義的ID

OWNER_

所屬人(老闆)

VARCHAR(255)

255

擁有者(一般情況下爲空,只有在委託時纔有值)

ASSIGNEE_

代理人員

(受讓人)

VARCHAR(255)

255

簽收人或委託人

DELEGATION_

代理團

VARCHAR(64)

64

委託類型,DelegationState分爲兩種:PENDING,RESOLVED。如無委託則爲空

PRIORITY_

優先權

INT(11)

11

優先級別,默認爲:50

CREATE_TIME_

創建時間

TIMESTAMP

創建時間,CURRENT_TIMESTAMP

DUE_DATE_

執行時間

DATETIME

耗時

SUSPENSION_STATE_

暫停狀態

INT(11)

11

1代表激活 2代表掛起

 

 

1.2.24 表名:ACT_RU_VARIABLE(運行時流程變量數據表)

ACT_RU_VARIABLE(act_ru_variable)

是否主鍵

字段名

字段描述

數據類型

長度

可空

約束

缺省值

備註

ID_

ID_

VARCHAR(64)

64

主鍵標識

REV_

版本號

INT(11)

11

樂觀鎖

TYPE

編碼類型

VARCHAR(255)

255

參見VAR_TYPE_類型說明

NAME_

變量名稱

VARCHAR(255)

255

變量名稱

EXECUTION_ID_

執行實例ID

VARCHAR(64)

64

執行的ID

PROC_INST_ID_

流程實例Id

VARCHAR(64)

64

流程實例ID

TASK_ID_

任務id

VARCHAR(64)

64

節點實例ID(Local)

BYTEARRAY_ID_

字節組ID

VARCHAR(64)

64

字節表的ID

(ACT_GE_BYTEARRAY)

DOUBLE_

DOUBLE_

DOUBLE

存儲變量類型爲Double

LONG_

LONG_

BIGINT(20)

20

存儲變量類型爲long

TEXT_

TEXT_

VARCHAR(4000)

4000

存儲變量值類型爲String

如此處存儲持久化對象時,值jpa對象的class

TEXT2_

TEXT2_

VARCHAR(4000)

4000

此處存儲的是JPA持久化對象時,纔會有值。此值爲對象ID

 

 

2  Activiti中主要對象的關係

本節主要介紹在工作流中出現的幾個對象及其之間的關係,以及在Activiti中各個對象是如何關聯的。

在開始之前先看看下圖,對整個對象結構有個瞭解,再結合實例詳細介紹理解。

圖1.Activiti中幾個對象之間的關係

我們模擬一個請假的流程進行分析介紹,該流程主要包含以下幾個步驟:

u  員工申請請假

u  部門領導審批

u  人事審批

u  員工銷假

 

ProcessInstance對象

員工開始申請請假流程,通過runtimeService.startProcessInstance()方法啓動,引擎會創建一個流程實例(ProcessInstance)。

簡單來說流程實例就是根據一次(一條)業務數據用流程驅動的入口,兩者之間是一對一的關係。流程引擎會創建一條數據到ACT_RU_EXECUTION表,同時也會根據history的級別決定是否查詢相同的歷史數據到ACT_HI_PROCINST表。

啓動完流程之後業務和流程已經建立了關聯關係,第一步結束。

啓動流程和業務關聯區別:

u 對於自定義表單來說啓動的時候會傳入businessKey作爲業務和流程的關聯屬性

u 對於動態表單來說不需要使用businessKey關聯,因爲所有的數據都保存在引擎的表中

u 對於外部表單來說businessKey是可選的,但是一般不會爲空,和自定義表單類似

 

Execution對象

對於初學者來說,最難理解的地方就是ProcessInstance與Execution之間的關係,要分兩種情況說明。Execution的含義就是一個流程實例(ProcessInstance)具體要執行的過程對象。

不過在說明之前先聲明兩者的對象映射關係:

ProcessInstance(1)→ Execution(N),(其中N>=1)。

1)  值相等的情況:

除了在流程中啓動的子流程之外,流程啓動之後在表ACT_RU_EXECUTION中的字段ID_PROC_INST_ID_字段值是相同的。

圖2.ID_和PROC_INST_ID_相等

2)  值不相等的情況:

不相等的情況目前只會出現在子流程中(包含:嵌套、引入),例如一個購物流程中除了下單、出庫節點之外可能還有一個付款子流程,在實際企業應用中付款流程通常是作爲公用的,所以使用子流程作爲主流程(購物流程)的一部分。

當任務到達子流程時引擎會自動創建一個付款流程,但是這個流程有一個特殊的地方,在數據庫可以直觀體現,如下圖。

圖3.ID_和PROC_INST_ID_不相等

上圖中有兩條數據,第二條數據(嵌入的子流程)的PARENT_ID_等於第一條數據的ID_PROC_INST_ID_,並且兩條數據的PROC_INST_ID_相同。

上圖中還有一點特殊的地方,字段IS_ACTIVE_的值分別是0和1,說明正在執行子流程主流程掛起。

 

Task對象

前面說了ProcessInstance和業務是一對一關聯的,和業務數據最親密;而Task則和用戶最親密的(UserTask),用戶每天的待辦事項就是一個個的Task對象。

從圖1中看得出Execution和Task是一對一關係,Task可以是任何類型的Task實現,可以是用戶任務(UserTask)、Java服務(JavaServiceTask)等,在實際流程運行中只不過面向對象不同,用戶任務(UserTask)需要有人爲參與完成(complete),Java服務需要由系統自動執行(execution)。

圖4. 表ACT_RU_TASK

Task是在流程定義中看到的最大單位,每當一個Task完成的時候引擎會把當前的任務移動到歷史中,然後插入下一個任務插入到表ACT_RU_TASK中。結合請假流程來說就是讓用戶點擊“完成”按鈕提交當前任務是的動作,引擎自動根據任務的順序流或者排他分支判斷走向。

 

HistoryActivity(歷史活動)

圖5. 表ACT_HI_ACTINST

 

Activity包含了流程中所有的活動數據,例如開始事件(圖5表中的第1條數據)、各種分支(排他分支、並行分支等,圖5表中的第2條數據)、以及剛剛提到的Task執行記錄(如圖5表中的第3、4條數據)。

有些人認爲Activity和Task是多對一關係,其實不是,從上圖中可以看出來根本沒有Task相關的字段。

結合請假流程來說,如Task中提到的當完成流程的時候所有下一步要執行的任務(包括各種分支)都會創建一個Activity記錄到數據庫中。例如領導審覈節點點擊“同意”按鈕就會流轉到人事審批節點,如果“駁回”那就流轉到調整請假內容節點,每一次操作的Task背後實際記錄更詳細的活動(Activity)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章