笔者所在的项目上,由于客户尚未正式大规模量产,在现阶段,所有的物料基本都是走费用。财务业务人员说,目前几年都是只有费用预算,而无库存预算。所以项目上将所有物料都定义成无价值物料,等待若干年商业化生产之后,再启动大规模的SAP实施项目,再将所有物料定义成valuated物料。
为了后期项目不改变所有采购物料的物料类型以及物料号,在项目上凡是采购物料,还是使用正常的物料类型(同时管理库存数量和库存价值),但是把价格定义成无穷小(0.01 CNY/99999 UoM),以这种方式来实现这些物料的无价值管理。笔者认为,这确实是一个很灵巧的解决方案!既能轻松实现当前形势下的无价值管理需要,也能在后期商业化生产阶段对于物料做正常库存管理的时候能最小化变更。
在项目上笔者也做了不少测试,发现将价格定义成无穷小之后,对于物料的收发货过账业务,只有controllingdocument/profit center document产生,却无常见的accountingdocument产生。也就是说,普通正常业务的收发货过账,因涉及到的物料的库存价值太小太小,不足以改变库存相关的总账科目余额!
殊不知,这种做法马失前蹄!时光飞逝,项目已经过去三个月,到今天,笔者发现了这种做法会导致阴沟里翻船!
事情的发生是这样的:比如如下物料的采购价格165837.43 CNY/EA,
采购价格不算小,但是也并不是很大!
当我试图使用ME21N 为这个物料创建采购订单时,SAP却报错:Net price in CNY becomes too large.
详细的错误信息如下:
笔者不解,这个价格并不大啊,完全没有超出货币CNY的限额啊。
仔细检查了相关的price unit信息,都无问题。
上网查资料,也未能得到有用的建议。
与项目上的客户CoE反馈了这个问题。对方不愧是经验丰富的老江湖,说应该是物料主数据那个无穷小的成本价导致的,建议把物料标准价改程0.01/1000 UoM试试。
根据其建议,我修改了物料标准价,如下图:
重新使用ME21N去创建采购订单,就成功了,如下图:
看样子对于采购单价比较大的物料,其物料主数据标准成本不能设置成无穷小。不过笔者还是不甚明白:物料主数据标准价格,为什么会影响采购订单net price呢?这原本是没有毛线关系的2个价格啊!它们之间竟然藏有如此隐秘的关联关系!这是为什么呢?
笔者的ABAP技能只是入门级水平,所以也无法去DebugME21N这个标准事务代码对应的程序。所以,写下此篇文章,算是抛砖引玉,希望能得到业界大拿们的建议。
2018-10-09 写于杭州市.