采购申请转委外订单提出错误
金蝶云社区-云社区用户Ox175387
云社区用户Ox175387
0人赞赏了该文章 314次浏览 未经作者许可,禁止转载编辑于2016年08月11日 10:14:59

1、自定义了一个单据转换规则,采购申请转委外订单2、填写一张采购申请,根据采购申请下推生成委外订单
3、在审核委外订单时,系统提示
MERGE 语句试图多次更新或删除同一行。目标行与多个源行匹配时会出现这种情况。MERGE 语句无法多次更新/删除目标表的同一行。请简化 ON 子句,以确保目标行最多与一个源行匹配,也可以使用 GROUP BY 子句对源行分组

错误提示如下
发生时间: 2016-08-11 10:03:29
错误编号: BOS_ExecuteNonQuery
错误信息: MERGE 语句试图多次更新或删除同一行。目标行与多个源行匹配时会出现这种情况。MERGE 语句无法多次更新/删除目标表的同一行。请简化 ON 子句,以确保目标行最多与一个源行匹配,也可以使用 GROUP BY 子句对源行分组。
Sql语句: MERGE INTO T_SUB_REQORDERENTRY U1 USING(SELECT 2 fnewstatus, T1.FENTRYID FROM T_SUB_REQORDERENTRY T1 WHERE T1.FENTRYID IN (100014) UNION ALL SELECT 2 fnewstatus, T2.FENTRYID FROM T_SUB_REQORDERENTRY T1 INNER JOIN T_SUB_REQORDERENTRY T2 ON T1.FROWID = T2.FPARENTROWID WHERE T1.FENTRYID IN (100014)) U2 ON (U1.FENTRYID = U2.FENTRYID) WHEN MATCHED THEN UPDATE SET U1.FStatus = U2.FNEWSTATUS;
===================================================
调用堆栈:

Server stack trace:
在 Kingdee.BOS.App.Data.AbstractDatabase.ExecuteNonQuery(DbCommand command, IEnumerable`1 listParam)
在 Kingdee.BOS.App.Data.DBUtils.Execute(Context ctx, String strSQL, IEnumerable`1 paramList, Boolean needTranslate)
在 Kingdee.BOS.App.Data.DBUtils.Execute(Context ctx, String strSQL, IEnumerable`1 paramList)
在 Kingdee.K3.MFG.SUB.App.Core.SubReqOrderService.SetOperationLogInfo(Context ctx, List`1 roeIds, String fieldName, Object objValue)
在 Kingdee.K3.MFG.SUB.App.Core.SUBBizState.Confirm.SetOperationLogInfo(Boolean bIsConfirm)
在 Kingdee.K3.MFG.SUB.App.Core.SUBBizState.Confirm.Do()
在 Kingdee.K3.MFG.App.BizEngine.BizStateEngine.ExecuteBusinessStateLogic(Boolean bExecuteForward)
在 Kingdee.K3.MFG.App.BizEngine.BizStateEngine.InternalRun()
在 Kingdee.K3.MFG.SUB.App.Core.SubReqOrderService.SUBStateTransfer(Context ctx, IEnumerable`1 subEntryDataEntities, String operation, OperateOption option)
在 Kingdee.K3.MFG.SUB.App.ServicePlugIn.ReqOrder.Audit.<>c__DisplayClass8.b__2(ExtendedDataEntitySet ds)
在 Kingdee.K3.MFG.SUB.App.ServicePlugIn.Util.SubReqStateUtil.GetSubReqOrderEntryDataEntity(Context ctx, IEnumerable`1 pkIds, Action`1 callback)
在 Kingdee.BOS.App.Core.PlugInProxy.OperationServicePlugInProxy.FireBeginOperationTransaction(BeginOperationTransactionArgs e)
在 Kingdee.BOS.App.Core.AbstractOprerationService.CallOperation(DynamicObject[]& objs)
在 Kingdee.BOS.App.Core.AbstractOprerationService.CallOperatinTransaction(DynamicObject[] objs)
在 Kingdee.BOS.App.Core.AbstractOprerationService.DoExcete()
在 Kingdee.BOS.App.Core.AbstractOprerationService.Excute(Object[] ids)
在 Kingdee.BOS.App.Core.SetStatusService.SetBillStatus(Context ctx, BusinessInfo businessInfo, List`1 pkEntryIds, List`1 paras, String operationNumber, OperateOption option)

Exception rethrown at [0]:
在 Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.SetBillStatus(Context ctx, BusinessInfo businessInfo, List`1 pkEntryIds, List`1 paras, String operationNumber, OperateOption option)
在 Kingdee.BOS.Business.Bill.Operation.AbstractStatusConvert.ExecuteBillOperation(List`1 paras, OperateOption option)
在 Kingdee.BOS.Business.Bill.Operation.AbstractStatusConvert.ExecuteStatusConvert(List`1 paras)
在 Kingdee.BOS.Business.Bill.Operation.Audit.AuditIdeaPrompt()
在 Kingdee.BOS.Core.DynamicForm.AbstractDynamicFormOperation.Operation(CallBackWfAfterOperation callbackwf, IOperationResult result)

总部研发的同事帮忙分析一下原因