流程的人員參與角色:
- Assignee :簽收者(即待辦人)
- Candidate:候選人
- Owner:擁有者
- Starter:啟動者
- participant:參與者,包含查閱
流程變量的類型:
- String
- Date
- Double
- Integer
- Long
- Null
- Short
- jpa-entity
- Boolean
- Bytes
- serializable(可序列化)
- 自定義type(根據你自身配置)
- CustomVariableType
1、控制台的主要功能
Tasks: 任務管理功能。 這裡,如果你是辦理人,你可以看見運作中流程執行個體的自己的待辦任務,或者你可以拾取組任務。
Process: 顯示部署的流程定義清單,可以啟動一個新的流程執行個體。
Reporting: 生成報表和顯示之前儲存曆史的結果資料。
Manage: 用于管理流程引擎:管理使用者群組,執行和檢視停止的Jobs,檢視資料庫和部署新的流程定義。
2、流程圖
實際上流程定義XXX.bpmn2.xml是标準的XML檔案,描述從流程啟動到中間過程到結束的所有定義。
可以通過Activiti Designer 或 Activiti Explorer (Web界面)建立XXX.bpmn2.xml檔案,在web中,使用raphaeljs渲染輸出XML
如果不想使用Javascript生成流程圖,你可以在ui.properties檔案中禁用它。
activiti.ui.jsdiagram = false
作為替代可以采用上傳一張圖檔的形式。
展示目前流程執行個體的方式,通過REST的方式很簡單:
http://localhost:8080/activiti-explorer/diagram-viewer/index.html?processDefinitionId=reviewSaledLead:1:36&processInstanceId=41
其中
流程定義ID:processDefinitionId=reviewSaledLead:1:36
流程執行個體ID:processInstanceId=41
有了這兩個參數,就可以實時展示流程目前狀态,如果僅第一個參數,則隻展示流程定義圖
3、任務清單
- Inbox: 收件箱,顯示登入使用者需要辦理的所有任務清單。
- My tasks: 顯示登入使用者任務擁有者的任務清單。
- Queued: 顯示不用的組任務清單,并且登入使用者在該組中。這裡的所有任務都必須先拾取然後才能夠完成。
- Involved: 顯示登入使用者被參與的任務(即不是辦理人和任務擁有者)。
- 歸檔: 包含已經完成的(曆史的)任務。
4、表頭含義
- ACT_RE_*:’RE’表示repository(存儲),RepositoryService接口所操作的表。帶此字首的表包含的是靜态資訊,如,流程定義,流程的資源(圖檔,規則等)。
- ACT_RU_*:‘RU’表示runtime,運作時表-RuntimeService。這是運作時的表存儲着流程變量,使用者任務,變量,職責(job)等運作時的資料。Activiti隻存儲執行個體執行期間的運作時資料,當流程執行個體結束時,将删除這些記錄。這就保證了這些運作時的表小且快。
- ACT_ID_*:’ID’表示identity (組織機構),IdentityService接口所操作的表。使用者記錄,流程中使用到的使用者群組。這些表包含辨別的資訊,如使用者,使用者組,等等。
- ACT_HI_*:’HI’表示history,曆史資料表,HistoryService。就是這些表包含着流程執行的曆史相關資料,如結束的流程執行個體,變量,任務,等等
- ACT_GE_*:全局通用資料及設定(general),各種情況都使用的資料。
5、流程部署相關
deploymentId : 流程部署ID
擷取流程:
GET repository/deployments/{deploymentId}
部署資訊表( act_re_deployment ):
表結構說明
字段名稱 | 字段描述 | 資料類型 | 主鍵 | 為空 | 取值說明 |
ID_ | ID_ | nvarchar(64) | √ | 主鍵ID | |
NAME_ | 部署名稱 | nvarchar(255) | √ | 部署檔案名 | |
CATEGORY_ | 分類 | nvarchar(255) | √ | 類别 | |
DEPLOY_TIME_ | 部署時間 | datetime | √ | 部署時間 |
索引說明
索引名稱 | 組成字段名稱 | 索引類型 | 索引說明 |
PRIMARY | ID_ | Unique | 主鍵唯一索引 |
流程設計模型部署表( act_re_model )
表結構說明
字段名稱 | 字段描述 | 資料類型 | 主鍵 | 為空 | 取值說明 |
ID_ | ID_ | nvarchar(64) | √ | ID_ | |
REV_ | 樂觀鎖 | int | √ | 樂觀鎖 | |
NAME_ | 名稱 | nvarchar(255) | √ | 名稱 | |
KEY_ | KEY_ | nvarchar(255) | √ | 分類,例如: http://www.mossle.com/docs/activiti/ | |
CATEGORY_ | 分類 | nvarchar(255) | √ | 分類 | |
CREATE_TIME_ | 建立時間 | datetime | √ | 建立時間 | |
LAST_UPDATE_TIME_ | 最新修改時間 | datetime | √ | 最新修改時間 | |
VERSION_ | 版本 | int | √ | 版本 | |
META_INFO_ | META_INFO_ | nvarchar(255) | √ | 以json格式儲存流程定義的資訊 | |
DEPLOYMENT_ID_ | 部署ID | nvarchar(255) | √ | 部署ID | |
EDITOR_SOURCE_VALUE_ID_ | datetime | √ | |||
EDITOR_SOURCE_EXTRA_VALUE_ID_ | datetime | √ |
索引說明
索引名稱 | 組成字段名稱 | 索引類型 | 索引說明 |
PRIMARY | ID_ | Unique | 主鍵唯一索引 |
ACT_FK_MODEL_SOURCE | EDITOR_SOURCE_VALUE_ID_ | ||
ACT_FK_MODEL_SOURCE_EXTRA | EDITOR_SOURCE_EXTRA_VALUE_ID_ | ||
ACT_FK_MODEL_DEPLOYMENT | DEPLOYMENT_ID_ |
流程定義資料表( act_re_procdef )
略
取得流程資源:
GET repository/deployments/{deploymentId}/resources
成功響應體:
[
{
"id": "diagrams/my-process.bpmn20.xml",
"url": "http://localhost:8081/activiti-rest/service/repository/deployments/10/resources/diagrams%2Fmy-process.bpmn20.xml",
"dataUrl": "http://localhost:8081/activiti-rest/service/repository/deployments/10/resourcedata/diagrams%2Fmy-process.bpmn20.xml",
"mediaType": "text/xml",
"type": "processDefinition"
},
{
"id": "image.png",
"url": "http://localhost:8081/activiti-rest/service/repository/deployments/10/resources/image.png",
"dataUrl": "http://localhost:8081/activiti-rest/service/repository/deployments/10/resourcedata/image.png",
"mediaType": "image/png",
"type": "resource"
}
]
6、流程定義相關
獲得一個流程定義
GET repository/process-definitions/{processDefinitionId}
成功響應體:
{
"id" : "oneTaskProcess:1:4",
"url" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",
"version" : 1,
"key" : "oneTaskProcess",
"category" : "Examples",
"suspended" : false,
"name" : "The One Task Process",
"description" : "This is a process for testing purposes",
"deploymentId" : "2",
"deploymentUrl" : "http://localhost:8081/repository/deployments/2",
"graphicalNotationDefined" : true,
"resource" : "http://localhost:8182/repository/deployments/2/resources/testProcess.xml",
"diagramResource" : "http://localhost:8182/repository/deployments/2/resources/testProcess.png",
"startFormDefined" : false
}
獲得流程定義的所有候選啟動者
GET repository/process-definitions/{processDefinitionId}/identitylinks
成功響應體:
[
{
"url":"http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4/identitylinks/groups/admin",
"user":null,
"group":"admin",
"type":"candidate"
},
{
"url":"http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4/identitylinks/users/kermit",
"user":"kermit",
"group":null,
"type":"candidate"
}
]
為流程定義添加一個候選啟動者
POST repository/process-definitions/{processDefinitionId}/identitylinks
請求體(使用者):
{
"user" : "kermit"
}
請求體(組):
{
"groupId" : "sales"
}
獲得流程定義的一個候選啟動者
GET repository/process-definitions/{processDefinitionId}/identitylinks/{family}/{identityId}
URL參數
- processDefinitionId:流程定義的id。
- family:users 或 groups,依賴IdentityLink的類型。
- identityId:用來獲得候選啟動者的身份的userId 或 groupId。
成功響應體:
{
"url":"http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4/identitylinks/users/kermit",
"user":"kermit",
"group":null,
"type":"candidate"
}
7、流程執行個體
獲得流程執行個體
GET runtime/process-instances/{processInstanceId}
成功響應體:
{
"id":"7",
"url":"http://localhost:8182/runtime/process-instances/7",
"businessKey":"myBusinessKey",
"suspended":false,
"processDefinitionUrl":"http://localhost:8182/repository/process-definitions/processOne%3A1%3A4",
"activityId":"processTask",
"tenantId": null
}
啟動流程執行個體
POST runtime/process-instances
請求體(使用流程定義id啟動):
{
"processDefinitionId":"oneTaskProcess:1:158",
"businessKey":"myBusinessKey",
"variables": [
{
"name":"myVar",
"value":"This is a variable",
},
...
]
}
請求體(使用流程定義key啟動):
{
"processDefinitionKey":"oneTaskProcess",
"businessKey":"myBusinessKey",
"tenantId": "tenant1",
"variables": [
{
"name":"myVar",
"value":"This is a variable",
},
...
]
}
請求體(使用message啟動):
{
"message":"newOrderMessage",
"businessKey":"myBusinessKey",
"tenantId": "tenant1",
"variables": [
{
"name":"myVar",
"value":"This is a variable",
},
...
]
}
請求體中隻能使用
processDefinitionId
,
processDefinitionKey
或
message
三者之一。參數
businessKey
,
variables
和
tenantId
都是可選的。
為流程執行個體添加一個參與者
POST runtime/process-instances/{processInstanceId}/identitylinks
請求體:
{
"userId":"kermit",
"type":"participant"
}
userId 和 type 都是必填項。
成功響應體:
{
"url":"http://localhost:8182/runtime/process-instances/5/identitylinks/users/john/customType",
"user":"john",
"group":null,
"type":"customType"
}
注意groupId總是null,因為隻有使用者才能實際參與到流程執行個體中。
運作時流程事件訂閱( act_ru_event_subscr )
表結構說明
字段名稱 | 字段描述 | 資料類型 | 主鍵 | 為空 | 取值說明 |
ID_ | 事件ID | nvarchar(64) | √ | 事件ID | |
REV_ | 版本 | int | √ | 樂觀鎖Version | |
EVENT_TYPE_ | 事件類型 | nvarchar(255) | 事件類型 | ||
EVENT_NAME_ | 事件名稱 | nvarchar(255) | √ | 事件名稱 | |
EXECUTION_ID_ | 執行執行個體ID | nvarchar(64) | √ | 執行執行個體ID | |
PROC_INST_ID_ | 流程執行個體ID | nvarchar(64) | √ | 流程執行個體ID | |
ACTIVITY_ID_ | 活動執行個體ID | nvarchar(64) | √ | 活動執行個體ID | |
CONFIGURATION_ | 配置 | nvarchar(255) | √ | 配置 | |
CREATED_ | 是否建立 | datetime | 預設值 目前系統時間戳 CURRENT_TIMESTAMP |
索引說明
索引名稱 | 組成字段名稱 | 索引類型 | 索引說明 |
PRIMARY | ID_ | Unique | 主鍵唯一索引 |
ACT_IDX_EVENT_SUBSCR_CONFIG_ | CONFIGURATION_ | ||
ACT_FK_EVENT_EXEC | EXECUTION_ID_ |
運作時流程執行執行個體表( act_ru_execution )
表結構說明
字段名稱 | 字段描述 | 資料類型 | 主鍵 | 為空 | 取值說明 |
ID_ | ID_ | nvarchar(64) | √ | ID_ | |
REV_ | 樂觀鎖 | int | √ | 樂觀鎖 | |
PROC_INST_ID_ | 流程執行個體ID | nvarchar(64) | 流程執行個體ID | ||
BUSINESS_KEY_ | 業務主鍵ID | nvarchar(255) | √ | 業務主鍵ID | |
PARENT_ID_ | 父節點執行個體ID | nvarchar(64) | √ | 父節點執行個體ID | |
PROC_DEF_ID_ | 流程定義ID | nvarchar(64) | √ | 流程定義ID | |
SUPER_EXEC_ | SUPER_EXEC_ | nvarchar(64) | √ | SUPER_EXEC_ | |
ACT_ID_ | 節點執行個體ID | nvarchar(255) | √ | 節點執行個體ID即 ACT_HI_ACTINST中ID | |
IS_ACTIVE_ | 是否存活 | tinyint | √ | 是否存活 | |
IS_CONCURRENT_ | 是否并行 | tinyint | √ | 是否為并行(true/false) | |
IS_SCOPE_ | IS_SCOPE_ | tinyint | √ | IS_SCOPE_ | |
IS_EVENT_SCOPE_ | IS_EVENT_SCOPE_ | tinyint | √ | IS_EVENT_SCOPE_ | |
SUSPENSION_STATE_ | 是否挂起 | tinyint | √ | 挂起狀态 1激活 2挂起 | |
CACHED_ENT_STATE_ | int | √ |
索引說明
索引名稱 | 組成字段名稱 | 索引類型 | 索引說明 |
PRIMARY | ID_ | Unique | 主鍵唯一索引 |
ACT_UNIQ_RU_BUS_KEY | PROC_DEF_ID_, BUSINESS_KEY_ | Unique | |
ACT_IDX_EXEC_BUSKEY | BUSINESS_KEY_ | ||
ACT_FK_EXE_PROCINST | PROC_INST_ID_ | ||
ACT_FK_EXE_PARENT | PARENT_ID_ | ||
ACT_FK_EXE_SUPER | SUPER_EXEC_ |
運作時流程人員表( act_ru_identitylink )
表結構說明
字段名稱 | 字段描述 | 資料類型 | 主鍵 | 為空 | 取值說明 |
ID_ | ID_ | nvarchar(64) | √ | ID_ | |
REV_ | 樂觀鎖 | int | √ | 樂觀鎖 | |
GROUP_ID_ | 組ID | nvarchar(64) | √ | 組ID | |
TYPE_ | 類型 | nvarchar(255) | √ | 備注7 | |
USER_ID_ | 使用者ID | nvarchar(64) | √ | 使用者ID | |
TASK_ID_ | 節點執行個體ID | nvarchar(64) | √ | 節點執行個體ID | |
PROC_INST_ID_ | 流程執行個體ID | nvarchar(64) | √ | 流程執行個體ID | |
PROC_DEF_ID_ | 流程定義ID | nvarchar(255) | √ | 流程定義ID |
流程變量資料表( act_ru_variable )
表結構說明
字段名稱 | 字段描述 | 資料類型 | 主鍵 | 為空 | 取值說明 |
ID_ | ID_ | nvarchar(64) | √ | 主鍵辨別 | |
REV_ | 樂觀鎖 | int | √ | 樂觀鎖 | |
TYPE_ | 類型 | nvarchar(255) | 備注9 | ||
NAME_ | 名稱 | nvarchar(255) | 變量名稱 | ||
EXECUTION_ID_ | 執行執行個體ID | nvarchar(64) | √ | 執行的ID | |
PROC_INST_ID_ | 流程執行個體ID | nvarchar(64) | √ | 流程執行個體ID | |
TASK_ID_ | 節點執行個體ID | nvarchar(64) | √ | 節點執行個體ID(Local) | |
BYTEARRAY_ID_ | 位元組表ID | nvarchar(64) | √ | 位元組表的ID (ACT_GE_BYTEARRAY) | |
DOUBLE_ | DOUBLE_ | float | √ | 存儲變量類型為Double | |
LONG_ | LONG_ | numeric(19) | √ | 存儲變量類型為long | |
TEXT_ | TEXT_ | nvarchar(4000) | √ | '存儲變量值類型為String 如此處存儲持久化對象時,值jpa對象的class | |
TEXT2_ | TEXT2_ | nvarchar(4000) | √ | 此處存儲的是JPA持久化對象時,才會有值。此值為對象ID |
索引說明
索引名稱 | 組成字段名稱 | 索引類型 | 索引說明 |
PRIMARY | ID_ | Unique | 主鍵唯一索引 |
ACT_IDX_VARIABLE_TASK_ID | TASK_ID_ | ||
ACT_FK_VAR_EXE | EXECUTION_ID_ | ||
ACT_FK_VAR_PROCINST | PROC_INST_ID_ | ||
ACT_FK_VAR_BYTEARRAY | BYTEARRAY_ID_ |
其他的表較簡單,不寫了。
資料庫關系圖:
參考:
http://blog.csdn.net/qq710262350/article/details/42079433
官網文檔