问题描述:
故障功能呢(仓库库位自动拣选功能):
   出现的故障: 一张清单有多个产品,当某个产品在系统出现缺货情况时(订单出库数量小于库存数量),使用自动拣选库位时,就会提示主键重复,无法保存。   但是假如把其他产品全部从清单中剔除,清单只保留该1个缺货产品时,再次进行自动拣选库位时,则可以通过没有问题。
   这个本人研究了很久不知道是何缘故? 是技术问题还是语句BUG? 请懂行的老师指教,多谢!

     公式设置见下图:

2019-09-27 9-27-30.png

  见上图。  实际上进行细分后,发现当 出库清单只有一个产品时且缺货的情况下,系统可以正常进行库位拣选,不会重复取值。 但是当出库清单有多个产品时,系统自动拣选就是出现  主键重复,无法保存的情况。
        在进一步测试,把拣货库位模块 的设定主键 全部取消后,再次自动拣货,进行观察,会发现。在清单中有多个产品或者记录时,业务公式(子数据源)先遍历一遍并取值,缺货的产品在后续会被重复取值并赋值,即会出现主键重复,无法保存。  原因在于 因为设置的条件是 : 单品拣货总数< 单品库存总数量,那么当该条件满足并且   出库清单中有多个记录或者产品的情况下,子数据源又重复执行了一遍,并重新进行了取值,这是缺货的产品就会重复取值,而不缺货的产品因为条件不满足不会重复取值的原因。  所以,根源在于  子数据源重复遍历即业务公式重复执行了,那么是哪里在控制公式的执行次数呢,  其实就是在最上面的:   选择数据源  。  上图 选择数据源 为  出库清单,所以一旦条件满足,出库清单有多少个记录子数据源就是执行多少遍,而单个产品或者记录仅执行一遍。
     说白了,这个是低级错误。。。分享给大家。。有时候一个小细节会费很多时间去排除和修正。程序是固定的和严谨的。。



收藏
2 条回帖
李根超级版主2019-9-29 10:14:20
手动点赞
neoxie云豆2019-10-5 00:55:07
谢谢分享,刚开始学习,请问后来是怎么修改好了,谢谢
需要登陆后才可进行回复 登录