WMS:盘点设计

16 评论 24825 浏览 175 收藏 13 分钟

编辑导语:仓库管理系统WMS是常见的B端产品,其中,盘点业务是WMS中常见的业务流程。盘点任务的创建,包含了盘点触发、盘点范围、盘点方式及盘点人员等方面。本篇文章里,作者对WMS的盘点设计做了总结分享,一起来看一下。

之前陆陆续续写过WMS出库、入库、库内管理的相关设计,并且也正对于出库拣货的功能做了较为详细的阐述,今天我想聊一聊盘点。

在行业中,我们常常会用盘点准确率作为权衡仓库管理水平的核心指标。仓库管什么,管的就是那票货和操作那票货的人。而盘点,用最白话的方式来讲就是,系统告诉我这个地方有多少这个货,那我去数数看是不是真的是这个数,如果是的话那就没毛病,不是的话,那咱得好好看看哪儿出问题了。

那么接下来我们就开始进入正题吧。

对于盘点这个业务流程来说,通常可以分成三大步骤:创建任务→执行任务→盘点生效。

本文也会从这三个环节展开对盘点进行一个完整的介绍。

一、盘点任务创建

创建一个完整的盘点任务的生成应该包含以下几个部分:

  • 盘点触发条件——什么时候盘;
  • 盘点范围——盘哪里,盘什么;
  • 盘点方式——怎么盘;
  • 盘点人员——谁来盘。

1. 什么时候盘点

这里通常可以分为三大类的触发情况,包括:周期性盘点、指定条件触发盘点、用户自主盘点。

1)周期性盘点

顾名思义,周期性盘点是定义一个固定的周期,由系统间隔一定周期后,创建固定的盘点任务由仓库进行盘点执行。这个功能通常是结合盘点计划来实现的。这也是仓库管理中应用最多的一种方式,一般会设置月盘/双月盘/季盘等。定期确认仓库库存的准确性,及时纠错。

2)指定条件触发盘点

这种触发方式相对来说就比较个性化了,需要结合实际的业务诉求进行设计。

比如为了保障在频繁操作中库存的准确性,当某仓位当日拣货频次达到一定量后自动触发盘点任务。要求在次日开始拣货前对此库位进行盘点。

或者为了避免商品丢失,对于一定时期没有流水的库位触发盘点任务由专人进行盘点,确保无资损等。

3)用户自主盘点

前两种都是由系统来触发的,而当用户实际操作过程中发现库存异常时,也应支持自主发起盘点任务。

如之前我们设计过在拣货过程中员工发现指定库位库存异常时,即刻触发盘点任务,由专人库管进行异常确认和相关盘点。

2. 盘点范围

哪些仓库、哪些库位、哪些货品要盘点呢?

1)全盘

全盘很好理解,就是不管三七二十一,一股脑儿所有的可用仓库、所有货品都盘点一遍。虽然在库存准确性上有所保障,但是确实是“劳民伤财”了。因此通常只有在固定较长周期的盘点任务中才会用全盘的方式。

2)部分盘点

部分盘点可以是针对于部分库位、也可以是针对部分商品。或者对于3PL仓这种服务性质的仓库,也可以针对特定货主单独发起盘点。

当然还包括上文(指定条件触发盘点)中提到的按照指定条件触发盘点中一些特殊的维度。

如果是用户自主盘点的话,通常最细维度可以到针对仓库中某一库位的指定SKU。

以上都可以概括为部分盘点。

3. 盘点方式

1)明盘VS暗盘

针对盘点过程中,用户的“知情权”不同,可以分为明盘和暗盘。

明盘是指用户在操作盘点时,允许用户知道当前库存,其目的是为了让用户知道在盘点过程中知道差异,并及时核实差异,确认差异原因,确保提交的结果是准确的。

暗盘则相反,用户盘点时,只知道当前盘点数量却无法查看到当前实际库存。只有最终提交结果生效后才可知道差异信息。通常这么做的目的是为了防止用户在盘点过程中作弊,为了应付考核而弄虚作假。

两种方式无谓对错,只是适用的大场景有所不同,大家可以思考下什么场景适合明盘,什么场景适合暗盘?

2)静盘VS动盘

静态盘点是指,在盘点过程中,全部作业停止,一直到盘点任务内所有物料盘点完成。在我刚毕业还在制造行业工作时,基本上每隔半年仓库就会大盘一次,产线会归还所有未用完的物料并停止作业,仓库此时禁止领还,等所有货物都盘点完毕并提交财务审核后,重新开始作业。在此期间,仓库内所有货物都是“静止”的。

动态盘点则是相对于静态盘点而言。在盘点过程中,仓库整体还是可以正常作业,针对于未盘点的区域进行“静止”处理,某区域一旦盘点完成,即可开始投入正常使用,不必等整个仓库盘点完毕。

4. 盘点人员

盘点任务的执行可以实现为指定式、认领式。

1)指定式

系统按照用户设定的规则制定某个或某群用户。如特殊/贵重商品只能由部分权限用户才可进行盘点。通常需要用户在系统中预设指定规则。

2)认领式

则是指任务生成后盘点责任人为空,有相关仓库/区域权限的用户均可查看到此任务。用户按实际情况进行任务的认领。

此外,对于一个盘点任务来说,当盘点范围不同时,在人员的约束上也会有所不同。当把仓库/多货品作为一个盘点任务时,那么必然是要允许多人盘点的。但是对于针对库位库存异常生成的库位盘点任务,通常会限制一个用户认领后,其他用户是不允许再操作此盘点了。避免同时盘点同一库位造成的数据差异。

5. 小结

针对不同的场景,通常需要对这几个维度进行不同的组合,创建不同类型的盘点任务。大家可以自行思考下不同场景下对盘点任务的不同诉求。

二、盘点任务实操

盘点的实操部分反而是比较简单并且通用的部分了。

通常可以分为:领取任务(如果需要领取的话)、针对盘点任务中的明细开始盘点两个步骤。领取任务相对来说是个比较通用的功能,这边就不展开说了。

1. 盘点任务的展开和操作

在盘点任务详情的呈现上面,可以分成两大类:按商品维度和按库位维度呈现。

以下图例仅为简例,只为说明概念,实际产品设计相对会更加复杂。

此外,在盘点实操过程中,为了确保用户确实是在指定库位盘点指定商品,在产品中需要增加库位、商品扫码逻辑。

2. 初盘VS复盘

盘点过程可以分为初盘和复盘,初盘即针对盘点对象的首次盘点,复盘通常是针对有初盘有差异的部分,要求用户重新核实盘点,增加盘点数据的准确性。

对于盘点有差异的部分,在提交时,要求用户录入可能造成差异的原因。

三、库存调整

1. 盘点审核

盘点完成后,用户对盘点结果进行提交,通常对于盘点结果是要求经过几轮业务包括财务的审核后,才可以生效的,毕竟直接影响的就是钱了。

并且增加审批流也可以对实操业务有一定警示作用,明白盘点的严肃性。

2. 库存调整

盘点结果审批通过后,则需要针对盘点结果对当前库存进行相应的调整。

库存调整可以分为覆盖调整(不推荐)和差异调整生效。

覆盖调整是指,原库存10,盘点后库存8,那么在盘点生效后直接将库存改为8。大家仔细想下这里是否会有问题?我在此处先不讲,等我讲完差异调整后,相信大家自己就明白了。

差异调整则是指,按照盘点结果中的库存差异对当前库存进行调整。按时按照上面的例子来说,盘点差异为-2,虽然盘点结束后库存是8,但是在提交审批后,审批过程中,仓库有出入库操作,实际审批通过时,库存为6。那么当按差异值-2调整后,库存应该为4。

回过头让我们再看下覆盖调整的问题,在上面的例子中,如果直接覆盖,则会将库存6直接更新为8,反而是盘盈了2,与实际盘点结果是不一致的。除非在审批通过之前,仓库库存仍然冻结并禁止操作,这显然对业务有较大影响,因此个人并不推荐这种做法。

四、总结

在盘点的过程中还有很多细节的设计点,比如:

  • 仓库里没有的货品是否允许从无盘到有呢?
  • 盘点结果什么时候需要审批,什么时候不需要审批,需要谁审批?
  • 审批过程中库存异动造成的盘点结果无法执行如何处理?
  • 盘点提交后是否允许撤回呢?

很多问题都需要结合实际的业务场景来设计,我这篇文章算是抛砖引玉了,大家有兴趣的话,可以一起聊一聊,你们的盘点是怎么做的呢?

#专栏作家#

麋鹿产品,公众号:麋鹿产品手册,人人都是产品经理专栏作家。专注供应链挖掘提升,热爱生活,热爱产品。

本文原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自Unsplash,基于CCO协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 盘点功能的目的对应着理货,其实很早没有信息系统的时候就需要定期针对货品进行对账,既然是对账那就有了正确性质和时间性,影响盘点正确性的因素有盘点操作人员,审核,作业状态等,谁来审核,谁对最终审核结果负责,考虑到作业影响,最终盘点数据与现场实物是否吻合

    来自浙江 回复
  2. 请教一下,盘点的维度除了商品和库位外,还有不同批次的差别,这个如何在盘点中体现?

    来自湖北 回复
  3. 感谢,很有用。
    我们是属于 固定资产类 的盘点,因工作量较大以及涉及到扫码硬件设备及现场,所以采用明盘、动盘。
    所以我们存在 盘差调整,主要以 盘亏与盘盈 之间调整。同时需要审批 所以在这个时间差内 需要考虑 资产的动态情况,避免调整错误。梳理起来真的很有用。
    主要还要记录下 资产的调整记录 以及 盘点准确率统计,作为 衡量 子公司实际运行的指标。
    我们这种 最终处理 盘亏、盘盈好像只能通过人工操作。

    来自上海 回复
    1. 您好,我这边是易境通,做海外仓系统开发的,欢迎了解咨询 V:yjt_81030

      来自广东 回复
  4. 差异调整:原库存10,盘点后8,如果在审批前解冻,有可能出现还未审批通过,就有出库单要出10,导致出货无货现象。这个可有办法解决,我目前想到的最保守的方法就是先不解冻。

    来自福建 回复
    1. 盘点结果更新之前确实不能解冻

      来自北京 回复
    2. 请教下,盘亏单扣库存的时候,是否要和普通出库一样,校验库存可用数?
      比如WMS已经有单据,占用了10个库存,盘点发现只有8个,要盘亏扣库存两个。那盘亏单扣库存,如果和普通出库一样,校验可用数,就会发现可用数=0,无法盘亏出库了。这个应该怎么处理?

      来自广东 回复
    3. 我的做法是不校验,直接扣减。

      来自福建 回复
    4. 那就是,占用扣减逻辑,区分盘点和非盘点业务?
      非盘点单据,需出库数量≤可用数才能占用、扣减;盘亏,就忽略非盘点单据直接扣减。
      盘点结束后,允许非盘点单据继续进行后,不够库存出库的单据,就报异常,再回退。

      来自广东 回复
    5. 考虑下 可用允许为负数呢。可用表示的是业务需求的计划数据 算是拟使用数量。真实的库存只有账面库存、出库库存,确保账面守恒即可

      来自重庆 回复
  5. 总结中的几个问题很重要,希望能有专文解答

    回复
    1. 同求

      来自福建 回复
  6. 库存盘点中的差异调整不是很明白,盘点结束后是8,为啥经过审批后是6,是8减去差异额2吗?

    回复
    1. 作者是举了个在盘点审批过程中还有库存操作的例子,意思是盘点结束时是8,在提交审批过程中该商品发生了出库操作,例如减少了四件,在系统上就是10-4=6。用差异调整的话我能通过-2将其调整为准确值4;但是审批后直接覆盖的话会变成8

      来自贵州 回复
    2. 差异调整就是算出少了几个,之后从现有库存中扣掉,覆盖的就是把盘点的结果直接覆盖过去,如果在覆盖前出入库还在继续就会导致数量出错

      来自福建 回复
  7. 感谢分享,很有用

    回复