本文讨论了单据上单位无换算但数量不一致的问题,并分享了排查过程。问题源于采购入库单实收与计价数量不符,通过对比单位、数量字段及分子分母比例,定位到上游单据(采购订单、采购申请单)的数据异常,最终发现是禁用反写规则导致。还总结了常见数量异常原因及排查思路,强调需关注反写规则、单据转换字段映射等。
最近遇到比较多的一个问题,单据上单位没有换算,但是存在各单位数量不一致的情况,如采购入库单的实收数量和计价数量不一致,现将自己排查问题过程的一些心得分享,希望可以对大家解决问题提供一些思路。
一、案例分析
问题描述:物料的各单位一致,不存在单位换算,但是采购入库单上的实收数量和计价数量不一致。如下图所示,库存单位和计价单位都是pcs,但是实收数量是20,计价数量是14.理论上这两个数量是要一致。
问题分析:
1、采购入库单列表将采购入库单的单位字段(库存单位、采购单位、计价单位、基本单位字段)、数量字段(实收数量、库存基本数量、计价数量、计价基本数量、采购数量、采购基本数量),采购基本分母、库存基本分子字段显示。
2、根据列表展示信息,看采购基本分子,库存基本分母比例,如下图是50:71,这个比例是异常的,因为正确数值是1:1。
先解释一下,为什么正确比例是1:1,因为采购基本分子、库存基本分母这两个字段,是通过单据转换计算映射到采购入库单,如下截图
其中:采购基本分子 = 采购基本数量 - 基本单位关联数量;库存基本分母 = 库存基本数量-库存关联数量(基本单位)
当单位一致的情况下,根据字段映射公式计算出来的结果应该是相等,上述例子中采购入库单这两个值比例是50:71,说明上游单据数据已经异常,需要排查上游单据相关信息。
采购入库单的全流程如下所示
3、上游是采购订单,同样将采购订单的单位字段、数量字段、采购基本分子、库存基本分母字段显示。通过以下截图可以看到采购订单的采购基本分子:库存基本分母为70:100,这两个字段同样是通过单据转换的字段映射携带到采购订单,该字段不一致也说明了上游采购申请单数量已经异常,所以要排查上游的单据-采购申请单相关信息。
4、同样将采购申请单的单位字段、数量字段、采购基本分子、库存基本分母字段显示,因为采购订单的采购基本分子,库存基本分母是由上游采购申请单的基本单位数量、订单关联数量(基本单位),库存基本数量、订单库存关联数量(基本单位),所以重点关注着几个字段的值。
通过上述截图所示,采购申请单的分子:分母都是0,说明采购申请单该分录是新增,因此分子分母是没有异常,同时采购申请单已经是源头单据,所以一般问题的源头就是该单据上了。
通过观察采购申请单的其他字段,发现订单关联数量是80,订单库存关联数量(基本单位)是0,因为物料上是没有单位换算,这两个字段参与到了下游采购订单的分子、分母的计算。所以可以定位到是这两个字段异常导致。而订单关联数量是通过下游采购订单反写到采购申请单,推测应该是反写规则导致的异常。
5、排查反写规则,上游单据是采购申请单,下游单据是采购订单,发现禁用了反写采购申请单订单库存关联数量的规则,导致申请单的订单库存关联数量没有反写,从而下游采购订单的分子分母异常,最终一直影响到采购入库单上的实收数量和计价数量不一致。
6、经过上述排查,定位到了问题的根源是禁用反写规则导致。
二、常见导致数量异常的原因
1. 反写规则问题
禁用标准反写规则或者禁用标准反写规则后,新增的自定义反写规则没有配置全,漏掉反写字段。
如采购入库单保存反写采购订单上的关联数量,标准设置有两条反写规则,一条规则反写【基本单位关联数量】(因为订单上的关联数量对应的基本单位数量字段是【基本单位关联数量】,所以反写基本单位关联数量也会更新关联数量),另一条规则反写【库存关联数量(基本单位)】。这两条反写规则是同时启用的。如果禁用掉对应的标准规则,则要新建一个对应的反写规则,同时反写的操作节点要保持一致。
新建的反写规则反写字段和标准的反写规则字段重复,导致下游单据反写上游单据字段重复。
自定义的反写规则是草稿状态,反写规则要启用后才会生效。
反写规则尽量在测试环境验证好,等没人操作系统再更新到正式环境,因为如果正式环境在修改反写规则过程中,有业务操作到该流程的单据,也会导致触发反写异常。
2. 配置获取即时库存服务,返回数量到标准字段上。一般单据上的标准数量字段都是有预设定义,如果需要返回库存数量时,可以通过新增数量字段的方式,返回即时库存到自定义数量字段上。
3. 单据上新增的自定义数量字段【对应基本单位数量字段】不能绑定标准的基本数量字段,除非是自定义添加的基本单位数量字段,一般标准的基本数量字段已经和系统预设的其他数量绑定了。
4. 自定义单据下推标准单据,如自定义单据下推到采购申请单,涉及的单位、数量字段映射要配置全,预防漏掉个别字段,建议可以参考系统标准的单据转换,如计划订单--采购申请单,参考其中单位和数量的映射配置以及表单服务策略。
5. 修改了标准字段录入顺序,如采购订单,默认是录入采购数量,会自动换算成其他数量字段,如果想录入其他的字段或者自定义数量字段反算出其他字段,则要考虑其他数量字段是否更新全。
三、总结
总结一下排查的思路(前提物料是没有单位换算,或者换算是1:1,因为有换算的比例的需要根据实际数据单独分析):
1、通过异常单据的分子分母比例是否一致,确定出现问题的源头在哪个单据上,一般分子、分母不相等,就往上游单据查,一直查到分子分母相等的单据。
2、因为下游的分子分母都是通过上游单据下推,单据转换字段映射计算,涉及到上游单据的字段,需要特殊注意。
3、定位到源头异常单据,先观察一下所有数量字段是否异常,如上述举例中,采购申请单的申请数量、批准数量、库存单位数量、库存基本数量等字段,一般物料没有换算的情况下都会相等。
4、如果是关联数量字段异常,一般检查反写规则,如果是其他非反写字段数量,则需检查一下有没有做自定义的单据映射或者值更新。
5、如果定位到是反写字段异常导致,但是又不确定是什么原因反写异常,可以通过开启反写日志来监控反写规则,后续问题再现可以通过反写日志分析:反写日志介绍可以参考:https://vip.kingdee.com/article/13297?productLineId=1&isKnowledge=2
推荐阅读