Odoo 库存管理 - 翻译连载
-
肠子的弯弯绕越多,厨师洗的时候就越困难
感谢姐夫捧场,不过肠子真不是为厨师长的
的确可能会有不少问题,但是确实给原来很棘手的一些库存处理给出了比较灵活的解决方案,比如quants概念的引入,库存路由的设置,put away, removal的库存策略等。还好的是可能可以按照某种库存操作模式形成一套固定的方案,默认的设置本就可以直接处理简单的库存管理需求。 -
[b]创建链式库存移动的拉式(需求)和推式规则[/b]
推式规则:
根据一个库存移动的目标库位激发创建另一个库存移动的规则。新创建的库存移动的源库位与原库存移动的目标库位相同。
例如:当货品到达“收货”库位时,设定的推式规则将它们移动到“库存”库位。
所以,当“供应商库位”->"收货“库位的库存移动确认时,该规则会创建另一个库存移动:“收货库位“->“库存库位”。规则允许3中模式:自动(第二个库存移动会被自动确认),手动(第二个库存移动必须手动确认),手动不添加步骤(不创建第二个库存移动而是将第一个库存移动的目标库位替换为指定库位)
推式规则一般用于当采购订单确认后的收货操作,货品需要移入库存库位。
需求 (=拉式)规则:
拉式规则并非推式规则的反向操作!他们的基本不同点在于推式规则影响的是库存移动,而拉式规则影响的是需求。实际上称他们为需求规则更准确。但是,我们也可以这么说:推式规则作用于目标库位,而拉式规则作用于源库位。
当库存移动确认后,如果其需求方式(procurement method)为‘高级:应用需求规则’,则会在其源库位创建一个跟库存移动数量一致的需求单。需求规则会作用于该需求单用以满足需求。不同类型的需求规则会导致需求单运行后产生不同的结果,比如:从其他库位移动产品到原库存移动对应的源库位以满足其对产品的需求,或者通过采购收货到源库位以满足其对产品的需求,也或者通过生产入库到源库位来满足其对产品的需求。参见下图及说明:
[attach=1]
这是一个"库存移动“的表单视图,默认情况下其“供应方式”(Supply Method)是“取自库存”(Default:Take from Stock),表示当该库存移动确定时将检查“源库位”是否有足够库存,如果库存不足则进入“等待可用”状态。而当我们将“供应方式”设为:”高级:应用需求规则时“,Odoo就会去检查与该库存移动的”源库位“相关的”需求规则“, 见下图:
[attach=2]
上图中可以看到“需求规则”中有定义“需求库位”(Procurement Location), 并且在“动作”(action)中可以选择“采购”,“生产”,和“从其他库位移动存货“(选择此项会显示更多选项),根据“动作”的选择不同会产生对应的需求单,在需求单运行后会产生对应的采购或生产,或其他库存移动来满足“需求库位”的存货需求。
但是需求单也不必一定由库存移动产生。用户可以手动创建需求单,或在确认销售订单时,Odoo为每一个销售订单明细在“客户”货位创建需求单。事实上这个由需求单,库存移动单和需求规则所构建的体系在Odoo系统里是贯彻始终的。比如在最简单的库存管理设置中,当我们运行这些由销售订单创建的需求单时,这些需求规则就会创建出发运单。
在正常情况下需求单会经历下列状态:
已确认:需求单创建之后的状态
运行中:成功应用了一个需求规则(导致创建一个库存移动或报价单或生产单)
完成: 需求规则已应用并且产品已经转运到或已经在需求单所对应的货位了。
当不能找到需求规则或无法应用需求规则(比如产品上没有定义供应商)时,需求单会进入“出错”(Exception)状态。如果对产品的需求不再需要,也可以取消需求单。
默认情况下,Odoo会安装JIT计划模块。Odoo会在需求单确认时自动运算该需求。如果这导致了系统性能问题,我们也可以卸载该模块。这样只有销售订单创建的需求单会被立刻自动运行从而创建出发运单,而由库存移动创建的需求单则不会立即自动运算,而会由计划运行(Scheduler)统一安排运算时间。
由拉式规则生成的规则不能再应用推式规则了,所以拉式规则优先于推式规则。
[b] [检测到链接无效,已移除] [/b] -
多谢mrshelly总监,的确写得不清楚,一会儿把话给写完整了。
-
谢谢Jeff的脑图笔记和粉兄的分享。
正如Jeff所说,新的WMS揉合了stock_location的精髓,并且做了很大增强,咱们稍后一一介绍。 -
[quote author=mrshelly link=topic=16409.msg28098#msg28098 date=1401334046]
[quote author=digitalsatori link=topic=16409.msg28095#msg28095 date=1401303166]
...
比如:从其他库位移动产品到原本库存移动对应的源库位,或者采购收货到源库位,或者生产入库到源库位
...
[/quote]
直接读晕了.... 校长.. 轮举个小小的实例来不?
密密麻麻的字儿...... 很恐怖啊....
[/quote]
已更新,再读读看
有不清楚的地方,兄弟们请直接吐槽,保证持续更新。 -
[b]需求规则和库存移动的需求方式 [/b]
库存移动确认后是否会在其源库位创建需求单并应用需求规则取决于其需求方式的设置。只有设置了需求方式为“高级:应用需求规则”的库存移动会生成需求单。
当用户创建一个在拣货单时,其中的库存移动将使用默认的需求方式:“默认:取自库存”。这表示该库存移动不会在其源库位创建一个需求单,而会在源库位查找是否有足够的可用库存。这也是诸如“移动呆滞库存产品到滞销库位“这样的内部移库的基本逻辑。
但是如果用户将库存移动的需求方式改变为”高级:应用需求规则“,Odoo就会在该库存移动的源库位创建需求单。(译者:写文档的人这一通反反复复,是怕自己忘了吗:-) 比如,创建发货单可以导致一个与该发货单对应的采购订单的生成。
当我们设置了“拣货->包装->发货“这样的需求规则时。应用该需求规则,Odoo会自动生成从仓库货位向包装货位的库存移动。这样即使你手动创建一个从仓库的发货单,Odoo也会自动创建拣货/包装流程。
需求方式只对内部调拨,和发货有意义。收货操作不需要预留库存,所以他们总是使用默认设置”默认:来自库存“。
你可能会想是否可以连续创建多个这样的链式库存移动呢。事实上,当一个需求规则创建一个新的库存移动时,新的库存移动的需求方式可以被事先定义好。也就是说,需求规则可以决定新创建的库存移动是寻找并应用与其匹配的需求规则还是使用默认“来自库存”的设置。
这样就可以创建出下例表述的库存移动的长链。假设我们有设置了拣货-包装-发货的需求规则的MTS需求类型的产品,当包含该产品的销售订单确认时,“链式反应“启动。首先销售订单会在客户库位创建需求单,该需求单的运行会创建从仓库出货库位到客户库位的库存移动,而该库存移动的”需求方式“为”高级:应用需求规则“,这样就会在在”出货库位“创建一个需求单,如此循环直到在”包装货位“的需求单创建库存移动单,并且该库存移动单的需求方式为”默认:来自库存“。
未完待续... (下节:链式库存及其状态) -
看看stock模块下的doc目录
-
[quote author=digitalsatori link=topic=16409.msg28095#msg28095 date=1401303166]
…………………………参见下图及说明:
[attach=1]
这是一个"库存移动“的表单视图,默认情况下其“供应方式”(Supply Method)是“取自库存”(Default:Take from Stock),表示当该库存移动确定时将检查“源库位”是否有足够库存,如果库存不足则进入“等待可用”状态。而当我们将“供应方式”设为:”高级:应用需求规则时“,Odoo就会去检查与该库存移动的”源库位“相关的”需求规则“, 见下图:
[attach=2]
上图中可以看到“需求规则”中有定义“需求库位”(Procurement Location), 并且在“动作”(action)中可以选择“采购”,“生产”,和“从其他库位移动存货“(选择此项会显示更多选项),根据“动作”的选择不同会产生对应的需求单,在需求单运行后会产生对应的采购或生产,或其他库存移动来满足“需求库位”的存货需求。
但是需求单也不必一定由库存移动产生。用户可以手动创建需求单,或在确认销售订单时,Odoo为每一个销售订单明细在“客户”货位创建需求单。事实上这个由需求单,库存移动单和需求规则所构建的体系在Odoo系统里是贯彻始终的。比如在最简单的库存管理设置中,当我们运行这些由销售订单创建的需求单时,这些需求规则就会创建出发运单。
……………………………………………………
[/quote]
校长,这几段,我想找原文对照阅读的,没找到呢。这几段是你原创添加的么?