Camunda初试 service task

本文探讨了在Camunda流程引擎中,使用javaDelegate执行子任务创建时遇到的外键约束错误。当主任务完成后,尝试保存新任务时,由于processInstanceId的设置,导致外键冲突。执行过程中的SQL语句顺序和表字段的约束是问题关键,特别是utf8_bin编码可能引发的大小写敏感问题。理解这些细节对于避免类似错误至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Camunda初试

在javaDelegate实现类中进行子任务的创建尝试

主任务完成之后(taskService.complete),等待回调完成的过程中,会先执行javaDelegate.execute方法,如果在其中设置了processInstanceId, 因为act_ru_task中的外键约束,会导致新增任务的processInstanceId外键被设置为executino_id(单流程下execution_id和process_instance_id相同)。在执行taskService.saveTask方法时,会先插入meter日志表,接着插入新建taskEntity,删除ru变量表, 删除旧的taskentity,删除ru_excution表(此时就会触发外键约束错误)
个人理解一个task的操作最后本质就是一批sql语句按指定的顺序执行,执行的过程中会受到外键关联等约束,表中的字段大多为utf8_bin(区分大小写)的字段组成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值