现象
尝试发布库存交易或库存预留时,会收到以下错误消息:
库存单位的最大小数位数为 0。
当库存交易数量被指定为低于字段支持的精度级别的小数值时,会出现此问题。 例如,已为库存事务指定了 0.5 的数量,但仅支持整数数量。 因此,该值应为 1 而不是 0.5。
解决方法
在 SQL Server 实例上运行以下脚本,以对库存事务中的数量进行舍入。 此脚本将更正 inventTrans 表中的值。
update it set it.QTY = round(it.qty, decimalPrecisionValue) from inventtrans it where it.DATAAREAID='XXXX' and it.PARTITION=XXXXXX and it.qty <> round(it.qty, decimalPrecisionValue) and exists (select 'x' from INVENTTABLEMODULE a, unitofmeasure b where a.unitid =b.SYMBOL and a.partition=it.partition and a.PARTITION=b.PARTITION and MODULETYPE =0 and b.DECIMALPRECISION=decimalPrecisionValue and a.DATAAREAID='XXXX' and a.ITEMID =it.ITEMID and it.DATAAREAID=a.DATAAREAID)
运行手动一致性检查, 其中打开了“修复错误 ”选项。 此检查将更正 inventSum 表中的值。
重要
强烈建议根据环境需要仔细编辑脚本,在测试环境中对其进行测试,然后在生产环境中运行脚本之前检查生成的数据。