Hi,
Is it possible to hide recipe that we use in the production in OpenERP?
I don't want my staff to know the recipe I use to produce my products, but I want to track the inventory levels of the ingredients to use the recipe

Hi Andri,
You can hide bill of materials from other users using securtiy groups. You can goto "Settings >> Technical >> User Interface > Menu Items" and then choose "Manufacturing/Products/Bill of Materials" or any menu item you want to hide. Then edit and add the group which contains only you. So that you can monitor and it will be hidden for other users.
You can also do that in your custom module xml, by the inheriting the action and corresponding menu item, then add groups="your_grour_id" to the menu item.

The best way to hide your recipes is to manage mrp by yourself.
Anyway, manufacturing manager must know recipes and also machine operators and manufacturing workers must know recipes.
Salesman don't need to know recipes if you encode correct bill of materials, routing and procurement rules. When they encode a SO, the procurement rule generate MO who is viewed only by mrp manager or you.
Purchasing and requisition users also don't need to know recipes to encode purchasing of raw materials if procurement (MTO, MTS and suppliers) is well configured.
For this include in mrp managers and mrp users groups only your user, mrp manager user and mrp users that you want. Exclude from that groups other users (sales man, accountant etc.).

i'm sorry but i think you misunderstood me. what i would like to achieve is other people cannot see "Recipe 1" consists of Ingredient A x 20 Kg and Ingredient B x 10 Kg. Basically hide what's consumed from "Recipe 1" BoM

Generally speaking YES, you can use Record Rules for this (probably you're talking about BoMs).

But the specific solution may vary, depending on which users do what, and what impact does not beeing able to quey the BoM will impact on your processes.

A solution might involve some things being run by the scheduler, using the Admin user, or in the worst case modify some Python source code to use uid=1 instead of the current user for some key function calls.

The problem with that is, what happens when you want to place an order/ purchase order for your ingredients? how will anyone know what to buy unless you will be the one to be doing all the buying from your suppliers.

Ok but the production guys will still need to know what they are doing. The only solution that I can think of is a little complex because it requires you have the real name used as a BoM of the fake names so when you use the fake the system deduct the real name products and you can have you recipe based on the fake names.

With my solution, the production guys just need to use Recipe x 1 for each product they make plus other non-secret ingredients. This "Recipe" is a "prepared mix" inside a box, all they have to do is pour the Recipe in along with other non-secret ingredients, so the production guys never know what is inside and how much is inside all this time.

You set up the real products in the system with the real names, this is because when the system generates a purchase order you need realistic names for the suppliers to know what you are after. Then you set up the fake names also. You then create a BoM for the fake name with the real name as product with one to one ration and also set the BoM type for as phantom. So the fake name is practically the real name. You then Create your recipes with the fake names. Set the fake name as make to order and the real make to stock. So when you producce the system picks the fake names

If you are the only one that make use of the manufacturing module then you can simply only allow the administrator (you) have access to the module. But is other people help, then how are they suppose to know how to prepare what they are making. You can also make the line part of the BoM only viewable by the administrator. In both cases, look for the string that is displaying the views in their xml and add base.group_system. and this will simply hide the view from anyone that is not logged in as an administrator with full access