【报错分析】-库存账龄分析表报错
金蝶云社区-陈元喜
陈元喜
1人赞赏了该文章 1,356次浏览 未经作者许可,禁止转载编辑于2017年06月15日 10:41:48

报错截图


这段更新语句是将即时库存GUID更新到业务单据数据临时表上,
业务单据数据与即时库存表库存全维度关联后,仍存在多行,说明账套中存在异常数据导致。

适用范围:库存相关报表,包括账龄、呆滞料、收发报表提示语句相同,造成问题原因相同。

异常类型
[list=1]
[*]单位不一致:即时库存表存在全维度唯一索引,除维度字段外单位字段不一致会导致上述异常。
[*]生产日期、有效期至带时分秒:获取业务单据数据时对数据做了格式化,如果存在时分秒会导致上述异常。
[*]项目编号字段有值:系统项目编号是预留后续使用,如果二开使用这个字段导致有值则会导致上述异常。
[*]除已知上述原因外导致异常。
[/list]
分析解决
[list]
[*]单位不一致
[/list]原因:物料发生业务后,再修改物料基本单位、库存单位、辅单位,会导致与即时库存以及结存数据单位不一致,引起库存报表、库存单据更新等异常。
解决:修改单位后,需要保持业务单据表、结存表、即时库存表与物料上的单位一致。
操作步骤参考:异常重复库存数据分析方法 即时库存校对报错

[list]
[*]生产日期、有效期至带时分秒
[/list]原因:系统库存单据生产日期、有效期至都是短日期格式,无法录入带时分秒数据,但是如果导入数据或者其他二开功能则会引入这种数据,引起库存等功能异常。
解决:查找异常源单,修复为短日期格式。
操作步骤:
1.检查异常存在哪期:检查结存数据异常来源哪一期,反关账至对应异常那期。
[code]SELECT * FROM dbo.T_STK_INVBAL WHERE FEXPIRYDATE > CONVERT(varchar(10),FEXPIRYDATE,23) OR FPRODUCEDATE > CONVERT(varchar(10),FPRODUCEDATE,23);[/code]2.检查当期异常单据数据来源:管理员开启校对记录中间结果,校对后查询看哪些单据数据异常。
[code]SELECT * FROM T_STK_STKBALOCCUR WHERE FEXPIRYDATE > CONVERT(varchar(10),FEXPIRYDATE,23) OR FPRODUCEDATE > CONVERT(varchar(10),FPRODUCEDATE,23);[/code]3.修复异常单据数据:查找出异常单据数据后更新对应单据日期问题。举例如下:
[code]UPDATE T_SAL_OUTSTOCKENTRY SET FEXPIRYDATE = CONVERT(varchar(10),FEXPIRYDATE,23) WHERE FEXPIRYDATE > CONVERT(varchar(10),FEXPIRYDATE,23);[/code]4.修复完后,执行校对,然后关账至本期。

[list]
[*]项目编号字段有值
[/list]原因:业务单据数据与即时库存表库存全维度关联,是除了项目编号维度外来关联的,如果存在一个库存维度下多个项目编号值就会引起很多异常。
解决:查找使用项目编号单据,清空改值再校对(最新补丁报表已经支持项目编号取数170720)