Activiti5.9 流程实例中同一个流程businessKey重复的问题

启动流程使用runtimeService.startProcessInstanceByKey("test1", "b2KEY", variableMap);
其中“b2KEY”是流程实例的businessKey值,如果同一个流程KEY用同一个businessKey来启动就会报错com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'test1:3:604-b2KEY' for key 'ACT_UNIQ_HI_BUS_KEY'。

进入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值的加一些随机数据,如“businessKey_随机数”,只要保证不同就行了

猜你喜欢

转载自cyzgbw.iteye.com/blog/1520949