成本核算过程中出错原创
金蝶云社区-Nicole667
Nicole667
16人赞赏了该文章 1万次浏览 未经作者许可,禁止转载编辑于2019年06月24日 17:31:25
summary-icon摘要由AI智能服务提供

本文讨论了成本核算过程中可能出现的错误及其解决方法。错误包括数据类型不匹配、数据超出范围、内存溢出、SQL执行超时、MERGE语句错误和列名无效等。每种错误都给出了可能的原因和相应的操作建议,如修改异常值、增加内存、调整数据库设置、升级帐套等。

检查项:成本核算过程中出错

 

检查内容:核算过程中的异常中断会导致此项检查项提示出来。有此提示出现时,出库核算或成本计算不成功,需要解决提示的问题才能进行核算。

 

常见原因:导致此处提示异常原因非常多,任何的核算中断都会导致此处提示异常。只能在此尽量补充场景,供大家参考。即使知道大概原因,可能用户也无法自行解决。当遇到无法自行解决的报错时,请提单。


(1) Message:来自数据源的 SqlDecimal 类型的给定值不能转换为指定目标列的类型 decimal。

7.1.png

可能原因:数量或者金额超出decimal类型范围。最有可能就是数值很小,如0.0000000001,金额大,算单价的时候,金额/数量,超出了decimal的范围。

操作建议:找出这种异常值,修改成正确的值。


(2)Message:将截断字符串或二进制数据。

7.2.png


可能原因:数据太大超过了最大范围,比如数值太大,物料名称过长,批号过长,单据编号过长……等等因为字段太长超过预设的极限范围就会报这个错。

操作建议:找出异常值,修改。


(3)Message:引发类型为“System.OutOfMemoryException”的异常。

7.3.png


可能原因:内存溢出了。

操作建议:

1)硬件上适当增加内存。

2)重启数据库服务,看看内存使用情况,如果还是很高,建议可以重启电脑,然后业务操作上尝试先单独进行采购入库核算,然后出库核算每批次核算的数据量输入5000或者更小试试。


(4)Timeout expired.

7.4.png


可能原因:SQL执行超时。

操作建议:以下办法供参考

1、检查数据库是否有新补丁。如果是sqlserver数据库,可以使用select @@version 来查询当前数据库的版本及补丁情况。如果没打补丁,请到微软官网下载最新对应的数据库补丁并安装;

2、数据库是否有维护计划定时去做维护。维护计划按 重建索引-重新组织索引-更新统计信息的顺序建立并设置定时执行。一般一周执行一次即可。建立后也可以选个合适的时间立即执行维护计划。

3)如果数据量大,可以尝试修改下默认的数据库连接超时时间。如果默认30秒满足不了需求,可以将默认连接超时时间改大点。

--修改默认超时连接时间。单位为秒

webconfig的appsettings中增加项:

<add key="DbCommandTimeout" value="900" />


(5)MERGE 语句试图多次更新或删除同一行。目标行与多个源行匹配时会出现这种情况。

7.5.png

可能原因:数据维度存在重复的值。

操作建议:导致数据维度重复的原因又有很多,并且很多地方重复的值都有可能导致这个报错,如果自己能从后台找出来,删除重复的维度即可。如无法排查出来,建议提单寻求协助。

 

(6)列名“XXXX”无效

7.6.png

可能原因:某对象名无效等一般都是环境打了最新补丁,但是帐套没有升级导致字段缺失。

操作建议:升级帐套即可。


后续会继续补充......

图标赞 16
16人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!