SAP 对HU做货物移动报错-Only 0 serial numbers entered instead of 30 -
元旦刚过,就收到客户的业务人员报错说,当其对HU做转库(同一个公司代码下工厂到工厂或者同一个工厂下存储地点对存储地点)都不成功,报错如下:
Only 0 serial numbers entered instead of 30/
以第一个HU为例,里面是包含有30个序列号的,
HU的状态是WHSE,表明HU里的货物是在库状态。数据都是正常的,HU状态等都一如从前正常。
那为啥用的好好的事务代码,过了一个新年就不能正常运行呢?这个报错信息,是加入项目近一年以来第一次遇到的。无论是业务人员还是我们运维团队,都感到奇怪!到底是为什么?
项目上对HU执行转库的事务代码,没有使用VLMOVE,而是在VLMOVE的基础上做了一个封装,允许一次对多个HU批量进行转库操作,其核心功能还是VLMOVE的功能。
1),我们去项目上的SAP测试系统上测试,发现如果把过账日期改成2019-12-31,不是当天(2020-1-3)的话,就报相同的错误:
如果不修改过账日期,就是用系统自己建议的日期,
执行,
成功了!
也就是说,这个不是对HU转库的程序问题。不过真的奇怪,跨了一个年就不能对含有序列号的HU转库过账了?这不合常理啊。
2),我们就这个问题向SAP公司发了一个Message。得到的回复,正如预期的回复一样,因我们使用的不是SAP标准事务代码,而是一个自开发的事务代码(虽然这个自开发事务代码核心功能还是调用标准VLMOVE功能),所以SAP公司不提供支持。
3),当然,我们也同时找了开发同事去调试程序。没有哪个问题是开发顾问调试程序找不到原因的!经过开发同事的努力,我们有新发现:当我们将过账日设置为2019年年底的时候,程序生成的物料凭证过账日期是2019年的,但是序列号相关年度是取的自然年度的日期2020年,这样会导致物料凭证不完整。也就是说标准SAP系统里VLMOVE不支持为含有序列号的HU做跨年转库等过账操作。
我们可以说是SAP系统的一个bug吧。
解决方案,自然不是去打Notes了,而是由开发同事在相关检查的地方加了增强代码,跳过相关的检查绕过这个报错,最终问题解决。
2019-01-04 写于银川市。