Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: How to use ERPNext for Process and Discrete Manufacturing at the same time? #16203

Open
yonasmxx opened this issue Dec 12, 2018 · 9 comments

Comments

@yonasmxx
Copy link

yonasmxx commented Dec 12, 2018

I just want to use ERPNext for Leather Tannery business but the software system is built for discrete manufacturing with BoM. In leather tanning process, you start with the by purchasing and storing raw leather from supplier with grading system and size. After that, the raw material will be feed to several machines by adding various chemicals to the leather. I know there should be formula based BoM when dealing with chemicals but the tricky part is feeding multiple leathers in one drum for a day or more and then again operators will deal with individual items. The process is converting a raw hides and skins into finished leather by adding different chemicals and manual works.

For further understanding, you can look this great project: http://leatherlink.net/bsg/tms_commercial/help_manual/LeatherLink_TMS_User_Manual.php?app_name=TMS. I don't know it works for real since they stopped developing after 2010 but they implemented the process in a very convincing way.

Thanks.

@agritheory
Copy link
Contributor

Hi @yonasmxx,
I am one of the folks working in the Ag module and we're running into the same issues you mention regard discrete vs process mfg. This is a big ask, but not an unreasonable one and it sounds like you understand that. There isn't a simple fix to incorporate both discrete and process mfg and there are a couple of different designs that are possible.

  1. Make BoMs selectable as discrete or process, which means refactoring a lot of code in the BoM but it keeps the changes more or less isolated there. @Alchez is working on some variation of this now.
  2. Add infrastructure so that discrete and process are handled in separate workflows, with separate settings. This means modularizing the Manufacturing module by adding a "Manufacturing Line" doctype and reorganizing so that both workflows can be accommodated.
  3. Process mfg can be a nightmare for keeping track of things by UoM and I'm concerned that there isn't a design that covers enough generic needs to be useful. In one cases, I'm working with a customer processing animals where the intermediate cuts of meat are kept on ice and it's impossible to get an accurate tare for steps 2 through ~6 and you only know the outcome in the input UoM when it's ready to be packed or go into cold storage. But there have been some set operations on that item that have reduced its weight with an uncertain percentage change. Currently the discrete BoM requires that the scrap percentage be identical each time, which is problematic for several reasons and needs a bit of redesign - I'm not sure myself of all the downstream impacts. Anyway, this gets at the "continuous input" problem, which would have to be handled in a process BoM - if chemical X flows from the container in an unknown quantity per leather hide, how does one attribute it?
  4. A workaround that exists today is to handle all these things all as stock-in/ stock-out transactions and adjust the valuation rate on the Item master with the Landed Costs Voucher. This keeps track of "what items" and "how much on average" but not "when" or "how much each (not average)". If you are OK with taking inventory (measuring state) as your process control measure (and for most companies, that's what they're doing), LCV may be a solution. If you need more detail than that or want to commonify or specify the process, more work is required.

@yonasmxx
Copy link
Author

yonasmxx commented Dec 12, 2018

Hi @agritheory

Thank you for your thoughtful and quick reply. Today, I found this module https://github.com/ESS-LLP/process-manufacturing. But I don't know how it may help since I have to test it. The other option is to create a new domain "Process manufacturing" replacing BoM with Formula. However the biggest problem will be the changing of number of items in the workstations and UoM. The inoERP guys did it but stopped developing the software since then. My bet is, if ERPNext incorporate this feature https://github.com/inoerp/inoERP/tree/master/inoerp/www/modules/pm- I hope is will be the biggest turning point in this domain since ERPNext is a modern looking software and already raising to the top.

Thanks again.

@agritheory
Copy link
Contributor

@yonasmxx I think you should start a discussion on the forum about this (discuss.erpnext.com) because there are many voices to be heard and people are taking different approaches. I am familiar with the ESS app and recently contributed a bug fix to it but am not using it in a production context.

@Alchez
Copy link
Contributor

Alchez commented Mar 22, 2019

@yonasmxx

An inital spec was created here for implementing Process Manufacturing.

@Alchez
Copy link
Contributor

Alchez commented Feb 20, 2020

Posting here based on the spec in the Discuss post, but sadly there’s been no progress on this topic from my side, since I’ve been focused on some other projects. And I’m not sure when I’ll be able to get back on this, so if someone from the community wants to pick it up.


Quick note: All of the following is an initial spec and a work-in-progress. 😄

Gap Analysis:

We need the following elements of process manufacturing in the system:

  • Process orders (equivalent to a Work Order; maybe integrate into Work Order itself)
    • Operations -> Phases
    • Process -> Set of operations -> subdivided into phases
    • Lot inspections after decided phases
    • Having continuous tracking and reporting is almost necessary for multi-process manufacturing, in order to have real-time control and manage proper yield.
  • Recipe formulation (equivalent to Bill of Material, but different; maybe a new DocType called Formulation / Formula / Recipe)
    • Ingredients and estimated yields
    • Same as in BOM, a multi-process formulation can have raw ingredients, or ingredients made from other processes.
    • Handle proportion of ingredients
    • Mainly for scalability purposes.
    • Handling of mixed units of measure and conversion
    • A conversion engine already exists in ERPNext, that can be used to manage variations in units.
  • Raw material calculations
    • Since multiple inputs can create multiple outputs, joint costs come into play. More info at 1, 2 and 3.
  • Forward and backward lot traceability
    • Important for reporting.
  • Recording of manufacturing steps and production notes
    • This is not too critical, since we can attach SOPs to each Formulation as a workaround. But eventually we may want to let users define each step for the process in the document itself.

Recipe / Formulation doctype structure

Goal: Master record for describing the process, i.e, bulk input -> bulk output.

  • Operation / Process (primary key; equivalent to item in BOM)
  • Inputs
    • (Child Table) Raw Materials (Mandatory)
      • Items or Item Groups
      • (Optional) Quantity or Proportion
    • (Child Table) Catalysts / Secondary Materials (not directly used for manufacture)
      • Items or Item Groups
      • (Optional) Quantity or Proportion
  • (Child Table) Phases (Mandatory?; link to other Operations; maybe convert Operation to NestedSet for tree structure)
    • Estimated Times
    • Workstations
    • Equipment
  • Outputs
    • (Child Table) Products (Mandatory)
      • Items or Item Groups
      • (Optional) Quantity or Proportion
    • (Child Table) Waste
      • Items or Item Groups
      • (Optional) Quantity or Proportion
  • Quality Assurance (currently underdeveloped; will need a separate project, or to adapt existing repos for recording quality)
    • Inspection at Phases
    • Acceptance Criterias
    • Reporting on Deviance

Thoughts and suggestions are appreciated!

@deercreekseed
Copy link

Has anyone seen any movement on this. Was very curious to try this as our company can benefit from something similar

@blewsky
Copy link

blewsky commented Aug 9, 2021

We are also very interested in this feature. Is there any update on this?

@stale stale bot added the inactive label Jan 22, 2022
@stale stale bot closed this as completed Jan 29, 2022
@blewsky
Copy link

blewsky commented Jan 29, 2022

Please reopen. As you can see from the upvotes there was quite some interest in this feature request.

@ankush ankush added the valid label Jan 30, 2022
@ankush ankush reopened this Jan 30, 2022
@stale stale bot removed the inactive label Jan 30, 2022
@frappe frappe deleted a comment from stale bot Jan 30, 2022
@erabti
Copy link

erabti commented Oct 18, 2022

Any updates?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants