导语

大家好,我是智能仓储物流技术研习社的社长,你的老朋友,老K。

知识星球 * 原创电子书 * 深海社区 * 微信群

在WMS中有很多策略,拣货的策略是核心中的核心,因为这对仓库作业的效率有很大的影响。好的策略不仅仅能满足不同类型的客户的业务需求,还能提升仓库作业效率,降低人工成本。

一般来说拣货的策略会包含三个大模块:

  • 分波的策略;

  • 拣货推荐的策略;

  • 拣货路径的策略;

分波是将多个订单聚合在一起,一起作业。所以分波策略关注的是如何将订单的一些共性抽离出来,通过这些共性将订单聚合在一起,便于后续的拣货,复核,打包,称重等流程。

拣货推荐则是系统提醒拣货员应该去哪里拣货,拣多少货。所以拣货推荐的策略关注的是这个波次订单中的SKU应该从哪里拣货,拣多少数量。

拣货路径是指完成整个拣货任务需要在不同库位之间走动的路径。拣货路径关注的是一共要去哪些库位(类似于坐标),然后库位时间的距离、位置是怎么样的(类似坐标连线),通过一些算法得出路径的规划线路,帮助拣货人员节省时间。

对于海外仓或者一些国内的小仓库来说,由于系统智能化的程度还不够,所以拣货路径这一块一般做得都比较简单,很少有一些高深算法或者复杂的调度逻辑。

所以此次我们抛开拣货路径这个比较「高深」的话题,重点来聊聊在设计「拣货推荐库位」方面的产品逻辑时会遇到什么坑,要重点注意哪些内容。

很多人可能都听说过「先进先出」,英文简称为FIFO;那么与它相反的就是「先进后出」,简称为FILO,不过这个策略用的比较少,所以我们重点关注一下「先进先出」;

先进先出很好理解,就是先入库的先出库,这样可以保证货物不会积压太久导致过期、变质或者是被淘汰。仓库要满足客户的先进先出要求,那么就需要设置对应的策略来管理这些货物。

单拿这一个策略来说,先进先出一般会有两种处理逻辑:

  • 严格的先进先出;

  • 逻辑的先进先出;

严格的先进先出

严格的先进先出就是先进来的一定要先出去,不同的批次不能混放在一起。

举个例子,仓库在上个月入库了一批iPhone 12,然后上架到了库位A上;这个月又要入库一批iPhone 12,按理说这应该是属于两个批次,所以不能放在同一个库位上。因为iPhone都长得一样,如果放在同一个库位上,那就混在一起搞不清楚了。所以就需要将这个月入库的批次放在库位B上,以区分库位A的那个批次。随着时间的推移,越来越多的iPhone 12要入库,库位都已经排到了库位Z了……

由于很多产品的外包装上并没有批次号,在入库上架的时候并没有记录批次号,当货物进入了仓库之后并不能直接通过货物来判断出对应的批次号。

一般的解决方式是:系统自动生成一个入库批次或者上架批次,然后与上架的实际库位做关联。

还是刚刚的例子,上个月入库的一批iPhone 12放在了库位A,那么记录批次为20210501(一般是按日期来生成);本月入库的一批放在了库位B,然后批次号为20210601,同样的道理,如果下个月还会入库一批,那么放在库位C,批次号则为20210701……

当需要出库的时候,系统经过查询iPhone 12最早的一个批次是放在库位A上,然后就会推荐拣货人员去库位A拣货。这样库位A的产品(批次更早),就会比库位B的产品(批次更晚)先出库,也就满足了我们想要的先进先出策略

通过库位来区分批次所在

逻辑的先进先出

逻辑上的先进先出也可以称为宽松型的先进先出(这个名字是我自己取的),意思就是说对先进先出的要求没有很严格,有点宽松,有点放水。

上面讲到了严格的先进先出一般是通过不同的库位放不同的批次,也就是同库位不混批次存放的方式来解决的。

但是这个方式也有很明显的弊端,那就是:

  1. 太浪费仓库容量;

  2. 拣货速度会减慢;

同样的产品因为入库的批次不一样而放在了不同的库位上,相当于某个产品有多少个批次就要放在多少个库位上,这对于寸土寸金的海外仓来说,显然是有点不太能接受的,成本太高了。

其次,当某款产品遍布仓库各个库位的时候,对仓库作业人员来说也不太方便。本来这个地方一直是放着iPhone 12的,如果再入库iPhone 12,那我直接放在一起多好,上架的时候方便,拣货的时候也方便。

基于上述说到的两点弊端,聪明的仓库人员们想出来了逻辑的先进先出这种方式。由于海外仓有很多产品都是非效期的,非时效敏感的,类似于家具,玩具,衣服,手机,充电器等,即使没有先进先出其实也不会太影响其性能或者销售。

那么就可以考虑将这些产品混批次放在同一个库位上,这样出库的时候拣货人员可以在这个库位随意拿相应的数量,而不用过于纠结他自己拿的批次到底是更早的还是更晚的。系统会根据你拣货的库位去计算该库位上最早的那个批次是什么,然后对应的扣减这个批次的数量即可。

逻辑上的先进先出在海外仓系统中很常见,因为它既能帮助仓库节省容量,同时也能最大程度上保证用户的需求得到满足。同时,正是因为批次的引入,当仓库需要统计库龄的时候,也可以很好地实现按梯度计费(不同区间的库龄会有不同的计费单价)。

一个库位混放了不同批次

逻辑先进先出的问题

虽然说逻辑上的先进先出对海外仓来说有很多优点,算是当下的最优解了,但是这并不表示它就没有什么缺点。

其中有一些细节的逻辑还是需要产品经理们注意一下,避免踩坑。

即使是采用了逻辑的先进先出,随着入库的批次越来越多,还是不可避免地会出现同一个产品散落不同的库位上的情况。

SKU A001三个批次散落在三个库位上

当我们某次拣货需要SKUA001 12个的时候,我们就会遇到一个困扰。

如果是按照先进先出的要求,那么先查出来A001最早的是批次分别放在哪个库位,从上图可知应该库位A、B、C都有。

然后这个时候就需要引入二级策略(第二重判断):是先从A库位拣货还是从B库位拣货还是从C库位拣货?

选择哪个库位,是策略(判断逻辑)决定的,所以此刻我们一般会有三个策略可以选择:

  1. 按拣货优先级;

  2. 按清空库位优先;

  3. 按数量满足优先;

按拣货优先的意思是按库位的优先级,谁优先级更高,那么先从这个库位拣货;按清空库位优先的意思是先确保能将此库位的货物全部拣完;按数量满足优先的意思是先从库位数量足够的库位拣货,确保只在此库位拣货一次就够了;

当理解了这三个策略的意思之后,我们深入思考一下会发现,这三个策略好像有一些地方会有交织错乱。

例如当我选择的是「按清空库位优先」的策略,我清空了库位A之后,接下来库位B和库位C都能满足我的需求,那么我从哪个库位去选?当我选择「按数量满足优先」的策略后,库位B和库位C都能满足,那么我应该选择哪个……

通过上面的简短分析我们可以得出,「按清空库位优先」和「按数量满足优先」其实都会出现权重相同的情况(类似于高考总分相同)。

所以为了解决这个问题,我们就需要引入一个不太能出现权重相同的因素,例如策略1的「按拣货优先级」。当权重相同的时候,我们再去比较拣货优先级,看谁的优先级高,那就去优先级高的库位拣货。

逻辑缜密的朋友仔细一琢磨之后会发现,这个方案好像也有点问题。例如下图中的,如果库位A和库位B的拣货优先级一样的怎么办呢?是不是要在设置拣货优先级的时候限制优先级不能相同?

库位A和库位B拣货优先级相同

在拣货优先级的时候限制库位的优先级不能相同是一个解决办法,但是由于拣货优先级并不是必填项,必须要设置的。那么当仓库没有配置这些信息的时候,又怎么办呢?

别急,我们再回到刚刚说的那个高考的同分的例子。当张三和李四分数都相同且某个大学的名额只有一个的时候,我们现实生活中往往会采用什么办法呢?

对的,相同分数下比较语文成绩,语文成绩相同的情况下比较数学成绩,数学成绩也相同的情况下比较英语成绩……以此类推,直到最后比出一个排名的先后为止。

在拣货优先级的排名上,我们也可以采用类似的办法,拣货优先级都为空的情况下,那就比较库位的编码(一般库位的编码是不能重复的),如果真的有重复的情况下还能比较数据库的ID大小,反正肯定能比出一个最后的高低。

拣货优先级相同时,库位编码越小优先级越高

通过以上案例的分析,我们发现如果想要解决「逻辑上先进先出」的一些弊端,还是要引入对应策略来层层解决出现的缺陷。

逻辑先进先出的另一个坑

由于逻辑先进先出是属于宽松型管理,也就意味着仓库的操作是不可控的。

例如上面案例中提到,可能依据一层又一层的策略,我最终确定了要推荐拣货员去库位A拣货,但是拣货员今天心情不好,不想走那么远,他就去了库位B拣货。由于库位B是有这个产品的,而且数量也是足够的,再加上我们采用的是「逻辑先进先出」,所以系统并不能提示错误或者拦住货员……

所以当我们采用了这种宽松型管理的策略之后,我们应该考虑一些容错机制。例如仓库人员没有按照推荐库位拣货怎么办?

没关系,那就在什么库位上拣货了,就扣减这个库位上对应的最早的批次的库存;虽然做不到百分百的准确,但是起码可以满足该库位上的先进先出。

综上所述,我们会发现其实采用了逻辑的先进先出之后,我们节省了仓库的容量,提高了作业的效率;但是也带来了弊端,那就是让批次信息或者说是库龄统计有一些些的不准确。

本来最早的批次是在库位A,结果仓库从库位B拣货了,那么只能扣减库位B上最早的批次。从而导致库位A上最早的批次的库龄又增加了一些时间,最后有可能会越过计费区间,增加一些额外的费用。

但是如果没有超过计费区间或者压根就没有梯度计费,此问题也就没什么影响了。

总结

关于逻辑先进先出的策略之下,仓库不按推荐库位拣货怎么处理的问题,我咨询了一些朋友之后发现,应对方式是有的,但是也都各有利弊,还是需要结合自身业务来做取舍。

例如朋友F就提出,可以把库龄的统计放在OMS上,这样的话就脱离了WMS的库位的影响。类似于系统会自动按已有库存量来扣减最早的批次,这样在计费的时候就只需要关注批次号对应的库龄即可,而不需要关注库位的批次是否准确。

还有朋友D提出,当拣货人员没有在推荐的库位拣货,且该库位的批次和推荐的库位的批次不一致的时候。要做提示,告知仓库由于批次的问题,建议去推荐的库位拣货,如果执意在此库位拣货的话,可能会导致违反先进先出的本意。

以上两种策略都有利有弊,感兴趣的朋友可以自行分析一下,探索更好的解决方案。

先进先出是WMS中很常见的一种策略,但是实施起来的时候却又很受限于实际的作业现场情况。

知名企业



-智能仓储物流技术研习社-

建立智能物流系统甲方、集成商与周边配套商

共同技术语言,填埋沟通鸿沟
提供高校物流专业教学现实素材

搭建可实际应用、接地气的

智能物流技术交流分享平台

立体库 | AGV | 机器人 | 拣选 | 分拣 | 仿真

| WMS | WCS | 输送 | 包装

|规划| |报告| |趋势| |历史|

制造业| 电商 | 快递 | 鞋服 | 家具 | 商超

| 零售 | 医药 | 冷链 | 第三方

往期推荐

34页PPT-京东物流智能大脑揭秘

软件定义智能物流PPT

台湾媒体:大陆的仓储物流中心全是黑科技!

南京!600万件校服的自动化立体库

31台穿梭车+56000个货位的自动密集存储系统

医药物流中心规划方法与装备选型

6月份物流技术圈-招聘合集(10万-90万)

物流仿真在AGV调度方面应用案例

仓储堆垛机上的速度控制详解

干货!双轨搬运RGV系统的设计细节

中国物流技术圈主要玩家和各自战场

WMS开发前要知道的10大关键点

自动化立体仓库操作流程与优点

自动化立体仓库规划选购指南

雅戈尔超大工厂的智能物流系统|输送、AGV、分拣、打包……

WMS的先进先出功能设计相关推荐

  1. 生产型WMS系统:库内管理功能设计

    导语 大家好,我是智能仓储物流技术研习社的社长,你的老朋友,老K. 知识星球 * 原创电子书 * 深海社区 * 微信群 对于生产型的企业来说,信息化系统的实施应用是非常重要的,一方面可以提升企业内部的 ...

  2. 跨境电商wms系统功能分析

    跨境电商仓储管理系统WMS是专为海外仓企业开发的一款包含了收发货,库存管理,订单管理,渠道管理,人员管理,财务管理的一款专业的管理软件,系统由客户OMS端和后台企业WMS端组成,系统功能包含一件代发. ...

  3. 看这篇告诉你WMS系统怎么设计

    随着信息技术的飞速发展,业务创新越来越频繁,各种市场因素和变化随时都会影响到企业,从供应到设计制造到销售和发货,也给仓库管理带来一系列挑战. 仓库管理对我们非常重要.然而,由于材料/成品的品种和规格不 ...

  4. wms仓储系统培训_WMS系统开创智慧仓储新方向

    通过对一些企业的仓储管理调研,我们了解到流通企业的管理短板一直是仓储管理.仓库的成本高涨,人员效率低下,产品不正常流失成为公司非常头疼的问题.总结一下,主要原因有以下几点: 1. 对人力过于依赖 目前 ...

  5. 库存转换是什么意思_为什么要用WMS系统?WMS能带来哪些价值

    目前,大多数制造企业面临着越来越激烈的市场竞争,如:原材料价格上涨.劳动力成本高.消费者质量要求提高.利润逐步下降等.要想在竞争中找到自己的位置,站稳脚跟,就需要不断提高管理水平,从各个方面降低支出成 ...

  6. 外部仓库_仓库主要作业流程和WMS作业优化方案

    仓库在人们眼中一直是低效.高成本的地方,即便是增加人手也很难做好仓库管理.那么我们应该采取哪些方式来管理,才能做到降本增效呢? 首先我们需要先了解仓库主要作业流程及在作业中存在的痛点. 1 入库流程 ...

  7. 仓库标准作业流程与WMS系统规划

    导语 大家好,我是智能仓储物流技术研习社的社长,你的老朋友,老K. 知识星球 * 原创电子书 * 深海社区 * 微信群 01 库房发展历程 "我们无论是从网络上,或者是线下参观拜访,相信大家 ...

  8. 什么是WMS系统,有什么功能?

    在制造企业的管理中,仓库管理是企业降低成本.提高效率.提高竞争力的重要环节.没有科学有效的仓库管理,企业很难协调和有序地进行仓储作业,库存逐渐变得不准确.WMS系统可以帮助用户搭建一个快速灵活的.精细 ...

  9. WMS仓储管理系统定制

    WMS仓储管理系统是以精益生产JIT为理论基础,以仓储作业技术的整合为核心,通过工业物联网.数据库技术.条码技术.API技术和相应的通信机制与外部系统的对接集成,仓库管理软件能有效地对仓库流程和空间进 ...

最新文章

  1. MySQL 误操作恢复表
  2. java 过滤攻击报文_Spring Boot XSS 攻击过滤插件使用
  3. 画图设置刻度_总结了16个常用的matlibplot画图技巧(附源码)
  4. CommunicationsException: Communications link failure
  5. .net开发是做什么的_软件开发是什么, 该怎么做?
  6. MaxCompute 多租户数据安全体系
  7. hadoop记录topk
  8. 【机器学习】机器学习从零到掌握之十二 -- 教你使用决策树预测隐形眼镜类型
  9. pycache怎么用_如何用python3输出dos命令?
  10. idea ssm框架搭建详细步骤_搭建一套纯净版的SSM框架,随时CV使用它不香吗?
  11. Google专卖店顾客消费预测问题:如何将数据的json格式转换成csv格式
  12. 有趣的问题:C的表达式x == x,何时为假?!
  13. unity3d 官方demo入门概念
  14. 科大讯飞语音转写以及语音合成配置+遇到问题处理
  15. 聊天系统服务器,聊天系统服务器
  16. Pycharm: ImportError: attempted relative import with no known parent package解决方案
  17. 网页设计配色应用实例剖析——黄色系
  18. 【css太极图】html+css用一个div画出太极图
  19. idea 中ctrl+shift+数字的作用
  20. Stripe国际支付平台接入

热门文章

  1. 六十五、Spark-综合案例(搜狗搜索日志分析)
  2. 64位进程调用32位DLL详解
  3. B. Game on Ranges
  4. leaflet-editable
  5. 基于深度学习的印刷电路板瑕疵识别
  6. Google怎么了?
  7. 一步步带你读懂 Okhttp 源码
  8. PDF与word互相转换
  9. Python模块和包的介绍(模块含义、用模块好处、模块分类、包和模块的创建)
  10. Buck电路基本介绍