It has been a long and entertaining journey with erpnext and its team esp @rmehta who has been an inspiration not just for his team but many in the community with his thoughts about being a giver to the community as a whole. With his inspiration and a lot of help from @max_morais_dmm I present to you a way for managing Process Based Manufacturing in ERPNext.
I have been using ERPNext for my organisation for the past 10 years, yeah its been a long time and a long journey with the team since my first transaction in erpnext DB dates back to 07-Oct-2010 and with these 10 years I have changed the way we work and somehow changed the way ERPNext works for our organisation and tried to find a middle path for both to converge.
In this endeavour I have been able to find a middle path for the final frontier in my organisation which is to track the production and be able to control my production with the help of some rules and for this we had to device a new set of logic in manufacturing. The current logic of using a BOM is applicable only for DISCRETE manufacturing and fails to apply for PROCESS manufacturing @rmehta would be very happy to elaborate on this differentiation since he is an expert on this even before starting his great venture of erpnext.
So coming back to the problem, the current setup of making BOM is applicable to DISCRETE manufacturing wherein we can separate the final product into its parts if needed but in process manufacturing its not possible for eg. Manufacturing of BISCUITS or CAKES where the Raw Material once mixed cannot be separated back.
We had been using ERPNext for the past 10 years but without the manufacturing since the BOM never used to suit us and now with the COVID lockdown I got a chance to resolve this long pending issue.
We have been able to resolve this issue with the help of a parallel set of doctypes in ERPNext.
We call them:
- BOM Template (aka BOM) instead of BOM we are using rule based BOM Templates and for 10k+ items we only have less than 200 BOM templates whereas if we wanted to create the BOMs we could have had more than 100k BOMs for 10k items.
- Process Sheet aka (Production Order or Work Order). Sorry we had to bypass the Work Order since there were many existing validations which we needed to bypass.
- Process Job Card instead of Job Card.
So once we receive an order for an item our cron job automatically creates a Process Sheet aka Work Order and a user would select a BOM template there could be multiple BOM Templates applicable to an item and once a Process Sheet is submitted it creates Job Cards for the Item.
On submission of the Job Cards there is a Stock Entry submitted at backend and hence the stock is kept in sync with reality.
We have used this feature for the past 2 months with more than 2k Process sheet created and more than 10k Job Cards submitted without any issue.
The BOM Template is based on the attributes and rules on the attributes of a Item and it automatically selects the Raw Material and also allows for manufacturing or the Work In Progress Items in case of consumption of the RM.
Once a BOM Template is made if you select a Finished Item to be produced then the system tries to find a suitable BOM Template based on its applicable item attributes defined in the BOM Template.
Based on rules of BOM Template Raw Material is automatically selected and presented to the user.
And also based on the rules the WIP items are produced. Process Sheet is more like a Work Order in ERPNext which would just let us know which process are to be followed for manufacturing an item and which RM is to be consumed and which WIP item is to b produced.
On submission of the Process Sheet Job Cards are automatically created also the priority of a Process Sheet and Job Card is automatically calculated based on the order flow and re-order levels of an item.
Priority of Job Card or PRocess Sheet are as under:
1~12 Priority is for Items which are on Order
20~30 Priority is for Items whihc are needed for Production of future items
30~38 Priority for items which are needed for stock
Job Card Screen Shots:
The job Card would consume the RM is needed in Process sheet or BOM Template on as per the formula. So if the BOM Template says usage of RM is to be between 90~100 kgs then Job Card cannot consume RM outside of this range.
The range is defined in the UoM as a setting and also the priority for Job Card is defined automatically via a cron job which runs every hour taking into account the new orders and changing the priority as per the current flow of orders esp for B2B manufacturing.
There is an option to enter the time wise details in the Job cards and can be disabled as well.
The Job Card submission automatically submits a Stock Entry in the backend. This is done so as to maintain the sequence in erpnext and also the usage of RM in Job Card is defined by a formula.
I know the documentation is lax again in this case as well but pardon my mistakes since its only a 1 man team to teach 20-odd people in my organisation and I hardly get time to prepare the documentation.
@max_morais_dmm I was looking for something like this from youi and now its working I hope it helps you as well for process manufacturing.
- Employees now take only items which are needed urgently and since the system automatically updates the priority the production people are always making items on Shop Floor which are needed more urgently than others.
Once again the documentation is lax but again it has been thoroughly tested at my end in production environment for the past 2 months. Hope some1 finds it useful.