单据批量审核反写提示错误原创
6人赞赏了该文章
1,339次浏览
编辑于2021年02月08日 17:46:18
关键字:单据批量审核反写提示错误,反写,BOTP反写
问题:单据批量审核通过时,触发的反写规则会提示冲突
问题原因:
工作流批量提交,是启动多个线程并发执行任务,不是串行执行,不允许并发反写同一张单,源单拆分了多张目标单,在工作流中批量审核目标单,如果不增加网控互斥,会导致前一张单的反写结果,被另外一张单反写覆盖。导致数据错误
解决办法:暂时遇到这种情况,到异常流程列表中重新激活流程,后续会继续优化这块,在申请反写源单网控失败后,适当重试几次,尽可能避免中断挂起流程
kd.bos.exception.KDBizException: 并发冲突,反写【询价单】申请互斥锁失败,请稍后再试。 at kd.bos.service.botp.track.bizentity.SourceBillInfo.doStartNetworkCtrl(SourceBillInfo.java:530) at kd.bos.service.botp.track.bizentity.SourceBillInfo.startNetworkCtrl(SourceBillInfo.java:459) at kd.bos.service.botp.track.WriteBackEngine.startNetworkCtrl(WriteBackEngine.java:442) at kd.bos.service.botp.track.WriteBackEngine.doWriteBack(WriteBackEngine.java:98) at kd.bos.service.botp.track.actions.ExecuteWriteLogicAction.execWriteLogicUnit(ExecuteWriteLogicAction.java:111) at kd.bos.service.botp.track.actions.ExecuteWriteLogicAction.doAction(ExecuteWriteLogicAction.java:53) at kd.bos.service.botp.track.actions.AbstractTrackAction.action(AbstractTrackAction.java:60) at kd.bos.service.botp.track.actions.BFTrackBatchExecuter.doActions(BFTrackBatchExecuter.java:116) at kd.bos.service.botp.track.BFTracker.batchExecuteSync(BFTracker.java:186) at kd.bos.service.botp.track.BFTracker.executeLinkItem(BFTracker.java:137) at kd.bos.service.botp.track.BFTracker.execute(BFTracker.java:89) at kd.bos.service.botp.track.WriteBacker.execute(WriteBacker.java:31) at kd.bos.service.botp.track.BFTrackerEngine.execute(BFTrackerEngine.java:218) at kd.bos.service.operation.Audit.afterUpdateBillStatus(Audit.java:66) at kd.bos.service.operation.StatusConvertOperateService.beforeCallOperationTransaction(StatusConvertOperateService.java:71) at kd.bos.service.operation.EntityOperateService.doExcete(EntityOperateService.java:580) at kd.bos.service.operation.EntityOperateService.excute(EntityOperateService.java:328) at kd.bos.service.operation.EntityOperateService.excute(EntityOperateService.java:420) at kd.bos.service.operation.OperationServiceImpl.localInvokeOperation(OperationServiceImpl.java:68) at kd.bos.service.operation.OperationServiceImpl.invokeOperation(OperationServiceImpl.java:42) at sun.reflect.GeneratedMethodAccessor1031.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at kd.bos.service.DispatchServiceImpl.invoke(DispatchServiceImpl.java:53) at sun.reflect.GeneratedMethodAccessor285.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at kd.bos.mservice.rpc.dubbo.debug.LocalDebugProxy$1.lambda$invoke$0(LocalDebugProxy.java:61) at kd.bos.mservice.rpc.dubbo.debug.DubboDebugUtil.invoke(DubboDebugUtil.java:49) at kd.bos.mservice.rpc.dubbo.debug.LocalDebugProxy$1.invoke(LocalDebugProxy.java:58) at com.sun.proxy.$Proxy40.invoke(Unknown Source) at kd.bos.servicehelper.DispatchServiceHelper.invokeBOSService(DispatchServiceHelper.java:98) at kd.bos.servicehelper.operation.OperationServiceHelper.executeOperate(OperationServiceHelper.java:62) at kd.bos.workflow.relservice.BusinessLogicServiceHelper.idepotentExecute(BusinessLogicServiceHelper.java:259) at kd.bos.workflow.relservice.BusinessLogicServiceHelper.execute(BusinessLogicServiceHelper.java:199) at kd.bos.workflow.relservice.BusinessLogicServiceHelper.invokeOperationServiceAsyc(BusinessLogicServiceHelper.java:137) at kd.bos.workflow.relservice.BusinessLogicServiceHelper.invokeOperationService(BusinessLogicServiceHelper.java:57) at kd.bos.workflow.relservice.BusinessLogicServiceHelper.invokeOperationService(BusinessLogicServiceHelper.java:66) at kd.bos.workflow.engine.extitf.ExtItfOperationExecutor.execute(ExtItfOperationExecutor.java:43) at kd.bos.workflow.engine.extitf.ExternalInterfaceUtil.executeExtItf(ExternalInterfaceUtil.java:60) at kd.bos.workflow.engine.impl.util.AutoTaskUtil.handleOperation(AutoTaskUtil.java:73) at kd.bos.workflow.engine.impl.util.AutoTaskUtil.executeExternalInterface(AutoTaskUtil.java:39) at kd.bos.workflow.engine.impl.bpmn.behavior.AutoTaskActivityBehavior.execute(AutoTaskActivityBehavior.java:42) at kd.bos.workflow.engine.impl.agenda.ContinueProcessOperation.executeActivityBehavior(ContinueProcessOperation.java:275) at kd.bos.workflow.engine.impl.agenda.ContinueProcessOperation.executeSynchronous(ContinueProcessOperation.java:201) at kd.bos.workflow.engine.impl.agenda.ContinueProcessOperation.continueThroughFlowNode(ContinueProcessOperation.java:156) at kd.bos.workflow.engine.impl.agenda.ContinueProcessOperation.run(ContinueProcessOperation.java:98) at kd.bos.workflow.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:86) at kd.bos.workflow.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:59) at kd.bos.workflow.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:44) at kd.bos.workflow.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:63) at kd.bos.workflow.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:28) at kd.bos.workflow.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:44) at kd.bos.workflow.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:39) at kd.bos.workflow.engine.impl.asyncexecutor.ExecuteAsyncRunnable.run(ExecuteAsyncRunnable.java:48) at kd.bos.workflow.engine.impl.asyncexecutor.schedule.WfJobHandler.execute(WfJobHandler.java:131) at kd.bos.schedule.api.AbstractJobHandler.handle(AbstractJobHandler.java:25) at kd.bos.schedule.message.JobProcessor.executeTask(JobProcessor.java:260) at kd.bos.schedule.message.JobProcessor.process(JobProcessor.java:197) at kd.bos.schedule.message.JobProcessor.call(JobProcessor.java:344) at kd.bos.schedule.message.JobProcessor.call(JobProcessor.java:45) at kd.bos.threads.impl.ThreadPoolImpl.lambda$submit$1(ThreadPoolImpl.java:79) at kd.bos.thread.ThreadLifeCycleManager$CallableWrap.call(ThreadLifeCycleManager.java:214) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
赞 6
6人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读