Odoo仓库操作案例(三)

Bin系统:货架、托盘及打包(总结篇)


肖相扶

Bin系统:日出库商品40万件的库房管理系统

检货区与存货区应该分离,且应该让货位与库存数量绑定。但是检货区与存货区分离,从表面上看,检货员的检货路径缩短了,而存货区可以使用立体存储方式,存储密度提高,有着明显的好处,同时却也导致了系统逻辑复杂,尤其是补货逻辑极为复杂,难以操作。而货位与库存数量绑定,则有着明显的好处,如果将这一思想贯彻到极致,则会自然而然地出现本篇将要介绍的库存货位绑定的货位系统,简称为Bin系统,也是亚马逊公司的仓库管理系统。

Bin系统操作流程

收货

收货时实际是将采购订单看作一个货位,运货车看作另外一个货位,收货员将货品逐个从采购订单的货位转移到运货车的货位上去。这样的操作精度高,而且效率也相当的高。

上架

上架实际上也是货品从待上架的货位(运货车)中的货品转移到存储用的货位上的过程。

上架操作按批次进行,每一个运货车作为一个批次,一个批次中包含了多次的上架操作。每一次的上架操作只涉及一个SKU,在操作时,需要输入系统的信息为:上架SKU、目标货位、上架数量(批次号中已经包含了运货车货位的信息)。

Bin系统下,由于货位和货品数量相绑定,因此在上架操作时,也不要求将一个SKU一次性放到同一个货位上,而是可以根据货架的实际剩余究竟情况灵活安排到2个、3个甚至更多的货位上。

由此可以看到,在Bin系统下,上架员具有相当的灵活性,看到哪里有空隙,就可以将货品放到哪里。这样的库房,虽然看起来会很凌乱,货架上放着各种各样的东西,杂乱无章,但实际上所有的信息都存储在货位系统中,任何需要都可以随时满足。

盘点

Bin系统下,每一个存储货位中,分别有几个SKU,每个SKU有多少数量,这些信息都是在货位系统存储的。并且,由于每一次库存实物操作都与在系统中相对应,所以实物与系统是同步更新的。在这样的情况下,盘点可以在任意时间、任意货位操作。即使在盘点的同时进行上架、检货等操作,对于盘点精度也完全没有影响。这是其他的任何系统都无法做到的。

检货

Bin系统中,由于货位与货品数量绑定,因此在生成检货批次的同时,可以指定检货库位,只有被指定的有检货需求的货位会被路径规划系统所考虑。例如,订单中需要10SKU A,而当前可用库存共计有23SKU A,这23个货分别位于Location ABC上,分别有8个、9个、6个,则系统使用其中的10个,例如从Location AB上分别占用8个、2个,则Location A上的8个以及Location B上的2个库存属性会设置为“订单占用库存”。检货时,根据所有已占用库存货位的位置,自动规划出检货路径。检货时,只能检出“订单占用库存”,而不能检出普通库存。检货时检出的货品,放在检货容器中,同样也是一种特殊的货位。

出货

出货时,订单中包含的货品,从检货容器中转移到包裹,包裹号一样可以追踪。

综上所述,Bin系统将货品、货位、数量的绑定关系做到了极致。这样做的好处可以有目共睹,亚马逊所使用的货位系统原理上与上述一致,支持起了每年四五百亿美元的销售规模,并且完全可以支持到更大的规模。

但是也必须清醒地到,Bin系统可以实现库存的精密化管理,但是成本非常高。首先,Bin系统数据库虽然结构相对较简单,但是数据量很大,任何的库存转移的操作都必须与系统同步,造成了数据库的读写负荷极大,对数据库系统的可靠性、稳定性的要求很高。其次,所有库存转移的操作与系统同步都需要设备,这些设备必须具有移动能力,相当于每个操作人员都必须配备,这一投资也是非常巨大的。

Bin系统的要点

1.将整个库房所有用于放货的物理空间都标记为container(其实就是货位),container与货品、货品库存数量绑定。以收货过程为例,在Bin系统中,操作人员在收采购订单后,收到的实物往往放在运货车(托盘或者小车)上,这时运货车就是一个容器。运货车有自己的编号(即相当于货位编号),在此运货车上的所有货品及其数量都绑定起来。运货车和采购订单是多对多的关系,也就是说,若采购订单比较大,其货品可以放在多个运货车上,而采购订单较小时,也可以将多个采购订单放在一个运货车上。

在使用Bin系统后,明显可以看到两个好处:

1)以前收货时,往往是清点确认数量后,再在系统中确认收货数量;而采用Bin系统后,可以认为采购订单为一个货位,而收货动作就是将货品从采购订单的货位中转移到运货车的货位上。因此,收货操作时可以采用一边扫描一边收货的方式。这样做,将收货和点数结合起来,效率有所提高。更重要的是,逐个扫描的方式实际是系统点数,收货人员可以将精力放在检查货品是否合格,提高了收货质量。

(2)收货后,由于运货车上的货品及其数量在系统中有记录,则上架员可以直接上架。上架时直接按照运货车的数据即可,而不用去匹配采购订单数据。这样有利于上架员工作量的平衡,也提高了精确度。

2.不同的container(货位),有不同的属性,对应于不同的操作任务。货品在库房中,实际是处于不断流转的过程中,涉及的操作有:收货、上架、存储、检货、发货,其中检货、发货都可能是由于订单、调拨、退货的需求而发起。各个操作环节时涉及的容器(货位),设置为不同的属性,只能由相对应的操作对应使用。这也就是说,收货使用的容器只能用于收货以及其相关的操作,例如是上架,而不能用于检货;退货检货时使用的容器也只能用于退货检货,而不能用于订单检货。这样的规定后,某一容器只能用于与其属性相关联的操作中,而不能滥用,减少了操作中的错误。例如,收货完成后,收到的货品只能放到收货处的运货车上,而不能放到检货使用的运货车中,这样不会发生错乱。

3.数据结构设计,SKULocation是多对多的关系,某一SKU可以存放于多个Location,某一个Location也可以存放多个SKU。每一个SKU在每一个Location的数量都作了记录。另外,还需要再引入当前库存属性的概念。库存数量即对应于库存结构中所指的几种分类(如表1)。

        表1

SKU

Location

Qty

Property

SKU 1

Location 1

Qty 1

Property 1

SKU 1

Location 2

Qty 2

Property 2

SKU 2

Location 2

Qty 3

Property 3

SKU 3

Location 2

Qty 4

Property 4

...

...

...

...

4.任何货位变更的操作,都必须与系统同步。例如,在移货(货品从一个货位上移动到另外的货位)操作中,需要输入系统的参数有:移动货品SKU编号、移动货品数量、源货位、目标货位。例如,在某一个SKU O中,从Location ALocation B移动N个,在移货操作前后,相关货位的数据记录分别如表所述:再例如,在检货时,若检到一件货品的实物,需要在系统中输入货品所在货位、货品的SKU号、货品的数量。在实际的检货操作中,往往是系统指定了货位,操作人员按照系统的提示走到某个货位,取下货品,扫描SKU即可完成检货操作。

SKU

Location

Qty

Before

SKU O

LocationA

Qty 1

SKU O

LocationB

Qty 2

After

SKU O

LocationA

Qty 1-N

SKU O

LocationB

Qty 2+N