Community mailing list archives

Re: functional change in v8 MRP, asking feedback from experts

Akretion, Raphael Valyi
- 08/29/2014 23:50:43
Hello community,

So after further investigations...

Ana you are right, removing the production reservation move is on purpose indeed. I agree with you explanation and could finally find clear evidence in the code that it was o purpose. In general I see great conceptual improvements in v8 WMS indeed. Now the very problem will again go from theory to reality...
So indeed, I see a big improvement for companies with very simple manufacturing as they can now get rid of with the reservation picking and all possible discrepancies and operational bureaucracy.

Now, if you still want to have that reservation picking move in v8 (this is my case)...
So again I want these 2 moves for the manufacturing order components: Stock -> Some Production Location -> Virtual/Production

Because stock move has a procure_method and by default the one of the consumed lines of the production order is MTS that won't create a procurement to supply that intermediary location, well unless you set up an order point for every component, but if the goal was fix the bureaucracy you are screwed big times with MTS here. Also because that procure_method is MTS, it won't either consider any PULL/PUSH rules you would define in Warehouse>Configuration>Route...

Instead, it seems that to get that intermediary move happen, our friend David Arnold was right: you should set up a damn routing on the bill of material!
But wait, as always in Odoo/OpenERP, it won't make the cut fully...

As David Arnold spotted, that intermediary move (Stock -> Some Production Location), will be created and left in draft state. It won't also be part of any picking. That is you will just miss it from the control of your WMS operations and you consumption moves will simply never be available...

Looking further with git blame, I could find out that this intermediary move was implemented in that commit:

So while it weights the balance toward having removed the reservation move on purpose, it's also a kind of acknowledgment that it doesn't really make the cut, it is labeled as "NOIMP". Only "NIMP'" in French could have been a better match ;-p

OK, so here we are: we have an embryo of the production reservation move through specifying an intermediary location in the routing, but it only makes a an isolated move in draft state, it's just an embryo of the solution.

Look, I should have something in very good shape in 1 week to continue further that project on v8. So I cannot afford waiting for OpenERP SA to hypothetically provide a fix for that advanced case. Instead, I have some 50 very nasty regression blocker bugs among the ~580 open issues I would prefer so much they fix basic things instead of smoking resources on such advanced cases and leaving the basic stuff broken. And because of the official partner recommendation that customer got in Spain in 2010, and how went their project later, they excluded buying any support contract for the project extension in Brazil... And not taking the pricing comment dance again...

That is I'll develop it myself in a way or another and if OpenERP SA fixes it it's bonus, if not, I'll still be on the track.
So what would be the ideal solution here to generate that intermediary reservation picking properly?

I can think about 2 different solutions

1) confirming the reservation stock move and implementing a way so that all the reservation moves of a given production are batched together in a common internal picking. A bit like on v6.1 and 7.0 but without being able to rely on the old chained picking implementation which is gone in v8.

BUT... this seems like a nasty hack: again doing all by code while v8 WMS is supposed to fix things with nice generic PULL/PUSH rules. And this is also asking for discrepancies troubles again: what if the quantity or the lot changes between the reservation and the consumption move? Again, some code to implement to do some poor's man sync'...

2) what if we totally question that commit and say that instead some pull rules should be activated by the consumption move (so with a make_to_order procure method?) and we let the generic pull rule create a move to supply the bill of material routing location. The pull rule would also have the responsibility to properly re-synch lot changes or quantity changes between the 2 moves (I would check with pull rules and that works well, only increasing a move quantity could give some extra work). Now any pull rule activated on the BOM routing location, will pass through a procurement and... a beloved scheduler run... Do we really want this?!? Will that work reasonably well?

Any other idea?

that company uses to pick the components for the production reservation without any consideration for the lots during that 1st move. Only during the 2nd move when consuming the components they would input the component lot. That is I should propagate the lot backward from the production to the reservation even the reservation move has been done. Does it sound like a generic requirement? any idea how it is best implemented? Again I've been surprised how there is a real progress at least in push rules with lots and backorders sync'. But I'm just pretty sure this kind of requirements will go beyond the native capabilities.

Again, thank you very much for those who took time answering. It's cool to see there is still an expert community who can work the problems out.

On Fri, Aug 29, 2014 at 4:15 PM, Ana Juaristi <> wrote:
Hello everybody!!
Thank you Raphaël for asking directly to me about this question. I'm glad to see that you consider important my opinion on this subject!! :) 

I think there is no error and I also think that it was even more complicated on 6.1 and previous versions. Off topic: I can not believe I'm saying this about 6.1 myself :) /end off topic

Let me explain a little bit since this is a subject that we have strongly analized for OdooMRP project and in it's also a problem that we had to deal with on any manufacturing 5 and 6.X projects

On previous versions there was a possibility on order where you could select the location where you had to have materials to be able to start MO. Confirming the order 2 movements where created (it was not stock-->stock always but only if the configuration on order for taking row materials was stock, otherwise it was stock--> somewhere specified on MO) 
ALL materials had to be available on this location to start manufacturing. So... there was an internal picking including this move, that was needed to be processed anyway. There was not visibility on order about this internal move, nor about created internal picking and it was headeach explaining to a final user why there was stock--> stock moves or why it was needed to process an internal picking that I could not access directly from order, just to start working. Anyway in OpenMRP we added a lot of shorcuts on Order and at the end it was not so complicated to manage it.
After starting MO, materials are consumed so movement is "somewhere specified on MO" to production(virtual location) that's perfectly correct. 

Now... with new VMS another world is opened about this concept. 
If you need really moving materials to any machine/work center to start working on it, just create a route. That's all. It's just same proccess that  is used when you have got to move materials to any other place. It would be not correct using "virtual" locations but "internal" locations, since you are really controlling where materials are located phisically. Second step is just the same that we had before "somewhere --> production". 
The only single thing that changed is simplifying the way that you want to work and selecting the way you want to consume/produce. If you are consuming directly from stock, there is no internal move/picking. You only need having materials on stock and just consuming from there directly. This is valid for very simple production industries that need/want as less as possible administrative work.
But, If you really need moving materials somewhere (we say in spain "acopio de materiales"), or you need even making a quality control to materials, or not just consuming from somewhere but making an internal route to materials until they arrive to machine/workcenter before starting production and consuming them really, you can configure it with new WMS as complex as you need so is totally correct that one procurement is created for each material for any used location and also that you have got to process all created internal pickings, be a single one as it was before or be several of them (new option on Odoo) but the difference is that now you can choose. Before you couldn't.

On the other side... about using routing or manufacturing operations. It's just the same. If you want to make manufacturing by operations, you only need specifying on LM (small development we are doing by now) materials you will consume on that operation. This is not possible on standard because workorders are just to control steps or work to do but they are not allowing to specify the materials to consume or produce on each step. 
So, the movements to consume materials on each routing step could be perfectly controled this way:
1. Let start manufacturing order just when first step on route's needed materials are ready on specified location for this first step.
2. Don't let start one "work order" until all it's materials are ready on location specified for it.
With those simple extensions on workorders/routes it would be possible controling manufacturing by operations, and it's also possible having a much more detailed material procurement calendar. 
Sameway, same extension would be needed for by_products module to control additional materials to be created in one operation. 

So.. I think, there is NO bug on V8 but only improvements about that we had on previous versions. 


2014-08-29 19:55 GMT+02:00 David Arnold <>:
I canot make sens of this, but I see a possible relation:

MO without routing:

​MO with routing:

So with Routing it goes:
Stock -> VL
VL -> VL
VL -> Stock

I don't know why it remains in status new, however...

Post to:

CEO Avanzosc, S.L : Office phone / Tfono oficina: (+34) 943 02 69 02
Ana Juaristi Olalde : Personal phone: 677 93 42 59. User/usuario skype: Avanzosc

El contenido de esta comunicación y de toda su documentación anexa es confidencial y se dirige exclusivamente a su destinatario. El uso no autorizado de esta información está prohibido por la legislación vigente. Si usted no es el destinatario le rogamos nos lo indique, no comunique su contenido a terceros y proceda a su destrucción. Disculpe las molestias que le haya ocasionado la recepción indebida de este e-mail. Sus datos figuran en un fichero cuyo titular es Avanzosc, S.L., a quien usted puede dirigirse para ejercer sus derechos de acceso, rectificación, cancelación y oposición en Julio Urkijo, 32, 20720, Azkoitia (Gipuzkoa), Tef. 943 02 69 02 -

Komunikazio honen edukia eta dokumentazio erantsia konfidentziala da eta hartzaileak bakarrik jaso beharko luke. Indarrean dagoen legeriak debekatu egiten du bertan eskainitako informazioa baimenik gabe erabiltzea. Komunikazioa zuri iritsi bazaizu, baina zu ez bazara hartzailea, mesedez, guri jakinarazi, eta jasotako informazioa ez inori jakinarazi eta suntsitu. Barkatu okerreko email hau jasotzeak eragindako eragozpenak. Zure datuak Avanzosc, S.L. enpresaren fitxategietan sartuta daude. Zure datuak atzitzea eska dezakezu, bai eta, datuak zuzentzea, ezereztea eta tratamenduari aurka egitea ere. Horretarako, enpresara jo dezakezu, helbide honetan: Julio Urkijo, 32, 20720, Azkoitia (Gipuzkoa), telefonoa: 943 02 69 02 -

This message and all documents attached to it are confidential and intended only for the person or entity to which it is addressed. Any use of this information by unauthorised persons is prohibited under current legislation. If you received this message by error, please advise us, destroy it and refrain from communicating its contents to third parties. We apologise for any inconvenience receiving this email improperly may cause to you. Your personal data are included in a file owned by Avanzosc, S.L. If you want to exercise your rights of access, correction, erasure and objection you can contact the Controller at Julio Urkijo, 32, 20720, Azkoitia (Gipuzkoa), T: 943 02 69 02 –

Post to:

Raphaël Valyi
Founder and consultant
+55 21 3942-2434