关闭

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

标签: activiti5
671人阅读 评论(0) 收藏 举报
分类:

启动流程使用runtimeService.startProcessInstanceByKey(processDefinitionKey,businessKey,variablesMap); 

如: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值的加一些随机数据或业务数据ID,如“businessKey_随机数”或“businessKey:ID”,只要保证不同就行了
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:16627次
    • 积分:227
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:39篇
    • 译文:0篇
    • 评论:1条
    文章分类