WMS实现出库自动拣货功能时重复取值(主键重复)一例
2019-9-27 14:11:49
6053
3
问题描述: 故障功能呢(仓库库位自动拣选功能): 出现的故障: 一张清单有多个产品,当某个产品在系统出现缺货情况时(订单出库数量小于库存数量),使用自动拣选库位时,就会提示主键重复,无法保存。 但是假如把其他产品全部从清单中剔除,清单只保留该1个缺货产品时,再次进行自动拣选库位时,则可以通过没有问题。 这个本人研究了很久不知道是何缘故? 是技术问题还是语句BUG? 请懂行的老师指教,多谢! 公式设置见下图: 见上图。 实际上进行细分后,发现当 出库清单只有一个产品时且缺货的情况下,系统可以正常进行库位拣选,不会重复取值。 但是当出库清单有多个产品时,系统自动拣选就是出现 主键重复,无法保存的情况。 在进一步测试,把拣货库位模块 的设定主键 全部取消后,再次自动拣货,进行观察,会发现。在清单中有多个产品或者记录时,业务公式(子数据源)先遍历一遍并取值,缺货的产品在后续会被重复取值并赋值,即会出现主键重复,无法保存。 原因在于 因为设置的条件是 : 单品拣货总数< 单品库存总数量,那么当该条件满足并且 出库清单中有多个记录或者产品的情况下,子数据源又重复执行了一遍,并重新进行了取值,这是缺货的产品就会重复取值,而不缺货的产品因为条件不满足不会重复取值的原因。 所以,根源在于 子数据源重复遍历即业务公式重复执行了,那么是哪里在控制公式的执行次数呢, 其实就是在最上面的: 选择数据源 。 上图 选择数据源 为 出库清单,所以一旦条件满足,出库清单有多少个记录子数据源就是执行多少遍,而单个产品或者记录仅执行一遍。 说白了,这个是低级错误。。。分享给大家。。有时候一个小细节会费很多时间去排除和修正。程序是固定的和严谨的。。 |
+1
1
最近谁赞过
3条回帖
metor 发表于 2019-9-27 14:11 能否分享一下各接口,及这张主图的关联口。 |
+1
0