启动流程使用runtimeService.startProcessInstanceByKey(processDefinitionKey,businessKey,variablesMap);
如:runtimeService.startProcessInstanceByKey("test1", "b2KEY", variableMap);
进入activiti表中去查看,ACT_HI_PROCINST表中有一个名为ACT_UNIQ_HI_BUS_KEY的索引,关联的是PROC_DEF_ID_, BUSINESS_KEY_这两个字段,索引的类型为Unique
PROC_DEF_ID_是流程定义ID,
BUSINESS_KEY_就是启动流程时传入的businessKey值,
也就是说同一个流程不能使用相同的businessKey值,这在实际应用中有会出现一些问题,如同一个业务数据的ID不能使用同一个流程2次。
所以能处理的办法就有两种:
1.是不使用这个字段而使用流程变量来存储了
2.就是在传入businessKey值的加一些随机数据或业务数据ID,如“businessKey_随机数”或“businessKey:ID”,只要保证不同就行了