啟動流程實例時,指定的businesskey,就會在act_ru_execution #流程實例的執行表中存儲businesskey。
Businesskey:業務標識,通常為業務表的主鍵,業務標識和流程實例一一對應。業務標識來源於業
務系統。存儲業務標識就是根據業務標識來關聯查詢業務系統的數據。
比如:請假流程啟動一個流程實例,就可以將請假單的 id 作為業務標識存儲到 activiti 中,將來查詢
activiti 的流程實例信息就可以獲取請假單的 id 從而關聯查詢業務系統數據庫得到請假單信息。
代碼:
// 根據流程定義的key啟動一個流程實例
ProcessInstance processInstance = runtimeService
.startProcessInstanceByKey(processDefinitionKey,
businessKey);
package com.zcc.activiti02;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.activiti.engine.runtime.ProcessInstance;
import java.util.List;
/**
* 啟動流程實例時添加businesskey
*/
public class BusinessKeyAdd {
public static void main(String[] args) {
//創建流程引擎配置類
ProcessEngineConfiguration processEngineConfiguration=
ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
//流程引擎對象
ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
//得到runtimeservice
RuntimeService runtimeService = processEngine.getRuntimeService();
//啟動流程實例,同時還要指定業務標識businesskey,本身就是請假單的id
//第一個參數流程實例的key,第二個參數:業務表示businesskey
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess", "1001");
System.out.println("businesskey:"+processInstance.getBusinessKey());
}
}