我在所有登录界面中加入检测的代码,一旦系统数据不符将提示错误。
25日下午3点,接到电话说出现数据不符提示。
我赶去看,数据不符有5条,成品送货量应为0,但现在为1280,全部是最新的订单。
在1:47到2:03这段时间出现问题。
把这段操作日志调出来,原来涉及到三个模块,但基础数据模块出错可能性极低,因此先排除。
剩下综合模块与成品库存模块,由于综合模块刚好有这5条记录的修改、保存、审核的操作,因此我先把注意力放在综合模块中,但查了一个小时没有明显问题。
最后想先放弃这次的追踪,同时看一看成品库存模块的相关操作,在这段时间里,它的操作涉及界面三个,我看了其中的相关单号,发现一个入库单数量刚好1280,立即就兴奋起来,再对这三个界面认真分析,确定在按单出货中出现问题,再分析其存储过程,最后看到如下代码
update t1 set CPSHL=t1.CPSHL+@AddorSub*t2.HJSL
from A11KHDD t1 inner join
(select distinct GDH,sum(SL) as HJSL from B21CPCK
where DH=@DH group by GDH) t2
on t1.GDH=t2.GDH
它的本意是设置订单的成品出库量为原来数量加上本次出库量,条件是工单号要相等,但注意如果这时订单没有审核,则工单号还没产生,即为空,则这张送货单也不填写工单号,所以……
将其改为
update t1 set CPSHL=t1.CPSHL+@AddorSub*t2.HJSL
from A11KHDD t1 inner join
(select distinct GDH,sum(SL) as HJSL from B21CPCK
where DH=@DH group by GDH) t2
on t1.GDH=t2.GDH and t1.GDH<>''
即可
55555三个星期的追踪!