单据保存过程中报错
金蝶云社区-云社区用户1lN01718
云社区用户1lN01718
0人赞赏了该文章 881次浏览 未经作者许可,禁止转载编辑于2018年07月05日 15:59:03

具体场景我们二开了条码系统,在系统内增加了扫码生成的单据,在下推生成分步式调出单后提示如下错误。
请问总部老师,重复键值的含义是什么。

发生时间: 2018-07-05 10:41:58
错误编号: BOS_ExecuteNonQuery
错误信息: 不能在具有唯一索引“IDX_STK_INVENTORY_CLUST”的对象“dbo.T_STK_INVENTORY”中插入重复键的行。重复键值为 (254895_256784_351012BD_KeeperOrg256784BD_OwnerOrg256784_100165_0_10000_943128_0, 07 5 2018 9:58AM, , 01 5 2019 9:58AM, )。
语句已终止。
Sql语句: INSERT INTO T_STK_INVENTORY (FID, FSTOCKORGID, FKEEPERTYPEID, FKEEPERID, FOWNERTYPEID, FOWNERID, FSTOCKID, FSTOCKLOCID, FAUXPROPID, FSTOCKSTATUSID, FLOT, FBOMID, FMTONO, FPROJECTNO, FPRODUCEDATE, FEXPIRYDATE, FBASEUNITID, FSTOCKUNITID, FMATERIALID, FSECUNITID, FOBJECTTYPEID, FISEFFECTIVED) SELECT IT.FINVENTORYID, IT.FSTOCKORGID, IT.FKEEPERTYPEID, IT.FKEEPERID, IT.FOWNERTYPEID, IT.FOWNERID, IT.FSTOCKID, IT.FSTOCKLOCID, IT.FAUXPROPID, IT.FSTOCKSTATUSID, IT.FLOT, IT.FBOMID, IT.FMTONO, IT.FPROJECTNO, IT.FPRODUCEDATE, IT.FEXPIRYDATE, IT.FBASEUNITID, IT.FSTOCKUNITID, IT.FMATERIALID, IT.FSECUNITID, 'STK_Inventory', '0' FROM (SELECT MIN(FINVENTORYID) finventoryid, FSTOCKORGID, FKEEPERTYPEID, FKEEPERID, FOWNERTYPEID, FOWNERID, FSTOCKID, FSTOCKLOCID, FAUXPROPID, FSTOCKSTATUSID, FLOT, FBOMID, FMTONO, FPROJECTNO, FPRODUCEDATE, FEXPIRYDATE, FBASEUNITID, FSTOCKUNITID, FMATERIALID, FSECUNITID, FCOMBINEID FROM T_STK_PREINVDIMENSION GROUP BY FMATERIALID, FSTOCKORGID, FKEEPERTYPEID, FKEEPERID, FOWNERTYPEID, FOWNERID, FSTOCKID, FSTOCKLOCID, FAUXPROPID, FSTOCKSTATUSID, FLOT, FBOMID, FMTONO, FPROJECTNO, FPRODUCEDATE, FEXPIRYDATE, FBASEUNITID, FSTOCKUNITID, FSECUNITID, FCOMBINEID) it INNER JOIN (SELECT DISTINCT FCOMBINEID, FMTONO, FPROJECTNO, FPRODUCEDATE, FEXPIRYDATE FROM T_STK_PREINVDIMENSION WHERE FTRANID = @TranId) it2 ON ((((IT.FCOMBINEID = IT2.FCOMBINEID AND IT.FMTONO = IT2.FMTONO) AND IT.FPROJECTNO = IT2.FPROJECTNO) AND ISNULL(IT.FPRODUCEDATE, @NullDefDate1) = ISNULL(IT2.FPRODUCEDATE, @NullDefDate2)) AND ISNULL(IT.FEXPIRYDATE, @NullDefDate3) = ISNULL(IT2.FEXPIRYDATE, @NullDefDate4)) WHERE NOT EXISTS (SELECT 1 FROM T_STK_INVENTORY IT3 WHERE (((((((IT.FCOMBINEID = IT3.FCOMBINEID AND IT.FMTONO = IT3.FMTONO) AND IT.FPROJECTNO = IT3.FPROJECTNO) AND ISNULL(IT.FPRODUCEDATE, @NullDefDate5) = ISNULL(IT3.FPRODUCEDATE, @NullDefDate6)) AND ISNULL(IT.FEXPIRYDATE, @NullDefDate7) = ISNULL(IT3.FEXPIRYDATE, @NullDefDate8)) AND IT.FBASEUNITID = IT3.FBASEUNITID) AND IT.FSTOCKUNITID = IT3.FSTOCKUNITID) AND IT.FSECUNITID = IT3.FSECUNITID))
===================================================
调用堆栈:

Server stack trace:
在 Kingdee.BOS.App.Data.AbstractDatabase.ExecuteNonQuery(DbCommand command, IEnumerable`1 listParam)
在 Kingdee.BOS.App.Data.DBUtils.ExecuteBatch(Context ctx, List`1 lstSqlObj)
在 Kingdee.K3.SCM.App.Core.AppBusinessService.UpdateStockService.DoActionBatch(AppBusinessServiceArgs e)
在 Kingdee.BOS.App.Core.AbstractOprerationService.ExecuteFormBusinessService(IAppFormBusinessService iBusiness, ExtendedDataEntity[] dataEntities, FormBusinessService service)
在 Kingdee.BOS.App.Core.AbstractOprerationService.InvokeFormBusiness(DynamicObject[] objs, Int32 iActionPoint)
在 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(DynamicObject[] dataEntities)
在 Kingdee.BOS.App.Core.SaveService.Save(Context ctx, BusinessInfo info, DynamicObject[] dataEntities, OperateOption option, String operationNumber)

Exception rethrown at [0]:
在 Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.Save(Context ctx, BusinessInfo businessInfo, DynamicObject dataObject, OperateOption option, String operationNumber)
在 Kingdee.BOS.Model.Bill.BillModel.Save(OperateOption option)
在 Kingdee.BOS.Business.Bill.Operation.Submit.DoSaveBill(OperateOption option, IOperationResult fullResult)
在 Kingdee.BOS.Business.Bill.Operation.Submit.ExecuteBillOperation(OperateOption option)
在 Kingdee.BOS.Business.Bill.Operation.Submit.ExecuteOperation()
在 Kingdee.BOS.Core.DynamicForm.AbstractDynamicFormOperation.Operation(CallBackWfAfterOperation callbackwf, IOperationResult result)

二开单据.png(61.32KB)

报错.png(55.71KB)