Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

OpenERP的MRP运算的核心对象--Procurement Order


  • 管理员

    OpenERP复式库存介绍参见:[url=http://shine-it.net/index.php/topic,5725.0.html]http://shine-it.net/index.php/topic,5725.0.html[/url]



  • :) ::) ::) ::)真棒



  • 拜读了,文彩飞扬!



  • 好文章,放到v7版本依然看得懂,找得到对应的地方!赞~!!  辛苦了!~



  • 好文章,收藏了!



  • 看不到他强大在那里.<br />还没有用到BOM的资料,是不是太简单了些?



  • 点击这个的时候出错了,什么原因啊?<br />OpenERP Server Error<br /><br />Client Traceback (most recent call last):<br />  File "/usr/lib/pymodules/python2.7/openerp/addons/web/http.py", line 204, in dispatch<br />    response["result"] = method(self, **self.params)<br />  File "/usr/lib/pymodules/python2.7/openerp/addons/web/controllers/main.py", line 1132, in call_button<br />    action = self._call_kw(req, model, method, args, {})<br />  File "/usr/lib/pymodules/python2.7/openerp/addons/web/controllers/main.py", line 1120, in _call_kw<br />    return getattr(req.session.model(model), method)(*args, **kwargs)<br />  File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 42, in proxy<br />    result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw)<br />  File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 30, in proxy_method<br />    result = self.session.send(self.service_name, method, *args)<br />  File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 103, in send<br />    raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info)



  • 看了8.0后怎么感觉完全不一样了。。。找不到supply method,取代的是Supply Chain Information?<br />product里不选router就表示是MTS?<br />但是需求单里又有2个地方Preferred Routes和rule。这个rule就是supply rule?真有点搞晕了。。。。<br /><br />[quote author=digitalsatori link=topic=2923.msg11246#msg11246 date=1338769425]<br />需求的来源和转化<br />==========<br /><br />我们在上回介绍了需求单运行时如何因为产品的Supply Method(供应方式)的不同而转化为不同的业务单据(生产单,采购单)以满足Proc所代表的需求,以及如何自动定时来运算需求。如果我们还做了上回介绍中提到的一个试验,那么还会进一步了解到如果产品类型为Service(服务),Supply Mechod(供应方式)为生产的产品所对应的Proc会转化为任务单。这个理解起来也是顺理成章:任务单用以满足对服务的需求。产品类型中还有一个被称为Consumable的,这类产品实际上不会产生需求转化,不参与需求运算。可以简单理解为这种产品有无限库存,随需随取,无需生成采购/生产等单据来满足需求,一般用以定义那些低值易耗的原料,比如生产中需要的螺丝,我们会定期采购大量的螺丝而无需根据生产需求来计算其用量。其实说到这里我们就感受到了需求的来源这个话题,也能基本回答上一回中为什么对以Supply Method为生产的产品运行其相关Proc会在生成生产单的同时又生成了大量与此生产单相关的Proc. 这是因为生产过程会产生对原料的需求,也就是说生产就是一个需求的来源。可是,我们在上回的最后问的是:"需求的最终来源是什么?生产是一个需求的来源,可是生产的目的最终还是用来满足客户的需求。所以,客户的需求是需求的最终来源,在OpenERP里就是销售订单。销售订单的确认即会生成需求单Proc.<br /><br />再来看看需求类型的问题。其实对于类型的划分按照不同的标准划分就有不同的答案。我这里所想要涉及的Proc的类型划分是在产品定义和Proc定义上都出现的一个字段:Procurement Method. 这里有两个可选项:Make To Order(MTO) 和 Make To Stock(MTS)。我们一般将之翻译为"面向订单的生产"/"面向库存的生产",其实这个翻译不够准确,Make在这里不仅是生产的意思。我们也看到了在前几回的Proc介绍中MTO类型的Proc会转化为采购单而与生产无关。我个人将OpenERP中的MTO理解为"直接需求",MTS理解为"间接需求"或"面向库存的需求" 或 "计划性需求"。那么她们之间到底有什么不同呢?<br /><br />这里是关键点:[b]MTO能通过运行处理直接生成其他的业务单据(比如:采购单,生产单,任务单)[/b],这在之前的操作中已经了解。[b]而MTS则比较特殊,他本身不会生成其他业务单据,但是它的存在可能会导致其他的MTO类型的Proc的产生[/b]. 我们这就通过创建一个销售订单来证实:销售订单是否会生成需求单,MTS类型的需求单是否"有可能"导致其它MTO类型的需求单的生成:<br /><br />用以下内容创建一张销售订单:<br />客户:            China Export<br />订单行:<br />订单行1-      产品:PC1        数量:10,    Procurement Method: [b]MTO[/b]<br />订单行2-      产品:Keyboard    数量:30,    Procurement Method:[b]MTS[/b]<br />[b]注:Procurement Method 在订单行窗口的Extra Info页中,其默认值来自于产品表单上的Procurement Method的设定,这里注意将PC1从默认的MTS改为MTO[/b]<br /><br />[attachimg=1]<br /><br />[attachimg=2]<br /><br />好了我们的客户同时订了两个不同的产品,我们也为其定义了不同的需求类型,记住订单号:SO014, 然后确认订单。然后到Procurement Exception菜单项这里,点击Clear以清除默认的过滤条件,然后在Source Document中输入SO014,查询与SO014订单相关的Proc:<br /><br />[attachimg=3]<br /><br />的确,当订单确认后两个订单行分别生成了相应的Proc,其上的产品,数量,Procurement Method都与订单行一致。如果我们运行这些Proc会怎么样呢?on order(MTO)类型的Proc我们已经做过试验,不出意外的话,会生成一张生产单,和一些生产所需原料的需求单。而from stock(MTS)类型的Proc还不知道会如何反应。点击"Compute Scheduler",在弹出窗口中再点击"Compute Schedulers"。然后返回Procurement Exception菜单项,仍然查询SO014相关的Proc:<br /><br />[attachimg=4]<br /><br />会发现的确如前预料,PC1相关的MTO类型的Proc运行后生成了生产单MO/00011,而该生产单又生成了大量的以SO0014:MO/0011为源单据的需求单(绿色框所示)。可是,但是,可但是,我们from stock的Proc却坚决的毫不犹豫的又给了我们一个Exception.  其错误原因倒也写得详细:"库存不足,未定义最小库存规则" 。从这个错误似乎能推出OpenERP对 这个MTS类型的Proc的处理过程:面向库存的需求,当然首先检查库存是否能满足本需求的要求,当库存不足时产生Exception,同时其又似乎尝试做库存补货的操作以使库存量能满足Proc,但是这里又碰到了没有设置补货规则(最小库存规则)的问题。 <br /><br />如果大家还记得第二回中的内容,我们提到过"最小库存规则"这个说法。这里要提醒一点:我们这里讨论的Proc话题基于的是目前最新的OpenERP V6.1 发行版本,V6.0x及以下的版本最小库存的设定在Warehouse-Configuration-Automatic Procurement-Minimum Stock Rule, 而不会如6.1这样在产品定义界面中出现。我们这就为Keyboard设置最小库存规则:<br /><br />[attachimg=5]<br /><br />这里的我们对仓库为:Your Company, Stock Location(存货地点)为:Stock设置了最小订货规则。这里的Minimun Quantity和Maximun Quantity的意思是:当库存数量不足10个时,该规则要求补货至最大库存量,即100个。所以Minimun Quantity是前提条件,而最大库存量是计算实际补货需求量的基础。由此我们可以推测出:库存规则的设定,就会衍化出物料需求。根据我们之前强调的“哪里有物料需求哪里就有需求单”的口诀,当这个库存规则条件满足(Minimum Quantity),就会产生物料需求,从而会产生需求单。再来"Compute Schedulers",然后再来搜索SO0014相关的Proc。<br /><br />发现那个from stock(MTS)类型的Proc仍然是Exception状态,但是仅仅是库存不足的错误提示,而没有了之前未设置库存规则的抱怨了。可是在列表中没有发现有新生成的需求单。其实,新的需求单已经悄然生成,只是不再与SO014这个销售订单有任何直接关系,所以你无法通过源单据为SO014来过滤该Proc. 我们换为查找产品为"Keyboard"的所有Proc:<br /><br />[attachimg=6]<br /><br />你会发现一个源单据为OP/00013 的Proc而其需求类型为MTO。这证实了我们之前所说:"MTS类型的需求单本身不会生成其他业务单据,但是它的存在可能会导致其他的MTO类型的Proc的产生." 再来注意一下源单据号,这里的OP代表Order Point, 看来这个需求单的确是因为激发了库存规则(即Order Point)而产生的。至此,我们了解了产品设置界面上:Product Type, Procurement Method,Supply Method, Minmun Stock Rule 之间的关系和对Proc的影响,以及需求的终极来源为销售订单,销售订单的确认导致需求的确认,每个订单行会生成对应的Proc 。<br /><br />我们接下来还需要了解需求产生的数量,地点,时间,它们在Proc上的反映,以及OpenERP对它们的处理。而要讲清楚这些问题,我们首先必须理解OpenERP的一个独特设计:复式库存计算, 敬请期待。<br />[/quote]



  • 15年了,还是要赞



  • 16年了,还是赞


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待