本文介绍了在使用系统过程中遇到的产品盘点表和成本计算错误,包括无法插入NULL值和UPDATE失败的具体错误。错误原因涉及后台数据更改、领料单日期与生产订单日期不一致等。解决方法包括检查错误类型、分析后台数据更改、修正日期错误,并提醒用户避免直接后台更改数据,以保持系统稳定性。
在产品盘点表点盘点和成本计算出现下图错误失可以参考解决方案
错误1:不能将值 NULL插入列 'FPROORDERSTATUS',表'tempdb.dbo.#TM_CB_WIPDATAENTRY_________________________________________________________________________________________________00000001CAC0';列不允许有 Null 值。UPDATE 失败。
语句已终止。 StackTrace : 在 Kingdee.BOS.App.Data.AbstractDatabase.ExecuteNonQuery(DbCommandcommand, IEnumerable`1 listParam)
错误2:
错误3:
分析:
如果按标准产品正常操作不会出现以上问题。
为什么会出现上面的问题:
1. 后台更改了下达日期,如把1期的下达日期改为了2期了。
2.后台更改了关联的领料单日期,这样会出现领料单的日期小于 订单日期和关联的生产订单日期。
3.二次开发导致,下达日期和订单日期错误。
遇到这样的问题如何解决:
1.首先看看出现的是什么样的错误,如图2和图3是两种不同的单据类型出现的问题。
图2是普通或者简单生产,图3是委外生产的。
2.知道错误类型了,就分析下是不是更改了后台数据。
这个更新订单的数据来自于那些地方:第一是 在产品盘点表 、投入产量归集、期初在产品成本调整表。
看看错误脚本,当这个地方取不到最后的日期,那更新肯定为空哈,所以报错。
/*MERGE INTO #TM_CB_WIPDATAENTRY T0 using(SELECTCASE WHEN (FCLOSEDATE < '2015-12-01 00:00:00') THEN '6' WHEN(FFINISHDATE < '2015-12-01 00:00:00') THEN '5' WHEN (FSTARTDATE <'2015-12-01 00:00:00') THEN '4' WHEN (FCONVEYDATE < '2015-12-01 00:00:00')THEN '3' END fstatus, T2.FPROORDERENTRYID, T2.FPROORDERNO,T2.FPROORDERTYPE FROM T_SUB_REQORDERENTRY T1 INNER JOIN (SELECT DISTINCT orderTp.FPROORDERENTRYID,orderTp.FPROORDERTYPE, orderTp.FNUMBER fproorderno FROM #TM_CB_WIPDATAENTRY"temp" INNER JOIN T_CB_PROORDERTYPE orderTp ON (orderTp.FPROORDERTYPE= "TEMP".FPROORDERTYPE AND orderTp.FPROORDERENTRYID = "TEMP".FPROORDERENTRYID)WHERE orderTp.FFORMID = 'SUB_SUBREQORDER') t2 ON T2.FPROORDERENTRYID =T1.FENTRYID) T3 ON (((T3.FPROORDERTYPE = T0.FPROORDERTYPE ANDT3.FPROORDERENTRYID = T0.FPROORDERENTRYID) AND T3.FPROORDERNO =T0.FPROORDERNO)) WHEN MATCHED THEN UPDATE SET T0.FPROORDERSTATUS = T3.FSTATUS;*/
3. 是不是有思路了,找到了表可以倒着分析了吧,是不是在这个表里更改了数据,哈哈。 把对应的下达日期改为当期一般解决问题,但是不要全部改哦,你要找到有问题数据的行才能更改。 然后你拿期初在产品盘点表和投入产量表和这个表关联,看看当期是不是有空的状态。(如何找为null的数据,你可以通过单据日期和下达日期对比,也可以从 投入产量归集的单据日期和下达日期比较等等)
4. 按第三步更改了,怎么还是有错误哈。这个要问自己了,分析了多个客户发现是领料单后台更改了日期。你想下你的领料单日期是不是更改了。更改为原来数据即可。
5.上面也是小打小闹的说了下。以后遇到问题,请不要后台更改数据,后台更改数据是局部的,在页面上操作数据是局部影响全部的,如果在k3中遇到问题,就直接发帖,我们会及时处理,针对后续问题更好处理,系统稳定性更强!谢谢你们的配合!
推荐阅读