We receive sub-assembly items into the factory which are to be used in manufacturing a finished item.
They are assigned a serial number.
When we manufacture the finished item we assign a serial number to that as well.
Is there a way to link the two serial numbers so that if I look at the serial number of the sub-assembly item I know which finished item it is in?
Thanks for any help.
Yes! I would also love to know how to do this.
I’m also looking for some guidance on this. Does anyone have any feedback?
I’m very interested in this as well. This is really configuration management which ERPNext appears to lack directly. You can sort of achieve this with BOMs but I think it clumsy. We too, have a need to sometimes look up a particular serialized sub-assembly and determine its end-unit location and vice-versa. Also, I’d like to be able to attach other pieces of configuration data, searchable attributes if you will, to serial numbers. I was able to do this by adding fields to the doctype but then the same fields were applied to all serialized items, even though they were different types of items. I’m sure the solution is right in front of me but I’m not seeing it.
This would also be very interesting for us. Has anybody worked on that?
We currently added fields (link to an serial number) to serial number doctype and operator, after the work order was finished, types in what SNs are in what SN of final assembly. Of course that is just a workaround and includes manual work so we would be very interested somebody has better solution.
Not sure if this is handled. In case somebody has found a solution to this, do share.
Definitely looking for suggestions for this.
In our case, we have serial numbered containers with a shelf-life we need to monitor. They are deep cleaned and reused, so they pass through manufacturing many times.
From what I can see so far, manufacturing subsumes all raw materials. Serial numbered items are simply marked as “Delivered” and cease to be available for any use in ERPNext.
How about you add a Container Custom Field into the Stock Entry DocType and for specific items that are manufactured this field becomes mandatory. Then you have to pick the Serial Number of the Container.
As the Stock Entry is submitted, scripts write into custom fields of the Serial Number DocType. You said Shelf life but I’m suspecting you need a number of times used value as well. So, you add a custom field into the Serial Number DocType : Number of Times Used (or similar) and the script increments the value by 1 as the Stock Entry is submitted.
Hope this helps.
The easiest thing to do is to run a filter on Stock Entry Document. You’d have used Stock Entry Purpose Manufacture to consume the Input Component (with a serial number) and produced the output component with another serial number). So, run filters: Purpose Manufacture and Serial Number with the Serial Number of the Input component and you should have your answer.
The other option is to find a developer that can create something similar to the BOM Browser, you select a Stock Entry or an Output Item and it shows the BOM Tree with all the Srrial/Batch Numbers of the Input compoments.
Hope this helps.
Thank you very, very much for putting some thought to this. I truly appreciate the suggestions.
I have been discussing the same issue with @Suresh_Thakor. Here is the exchange, for the record:
- I understand that the resultant product should only be Chemical D, but we require that it have the same serial number as the empty bottle.
- The idea of using a customer consignment warehouse location was to avoid Sales Invoices and Credit Returns. Invoices and credit notes are legal documents which must be declared to tax authorities, electronically, every single time.
I have begun prototyping this to see if I can understand what you are suggesting. However …
… is a bit hard to understand.
Let me see if I got this straight.
You’re sending your client two items A & B. A is the Bottle and is Serialized. B is the Chemical and is Batched. You invoice your client for B. You don’t invoice the client for A, as the client is supposed to return A.
How about if you add a few custom fields to the Sales Invoice or Delivery Note (whatever document you are using to Ship B) and that links up to A and the Serial Number of A? As the document (Sales Invoice or Delivery Note) gets submitted, some code/script submits a Stock Entry Purpose Material Transfer to a Client Specific Virtual Warehouse.
The other alternative is to Setup B as both a Serialized and Batched item, use A’s Serial Number and B’s batch Number. Now the code as you submit the Sales Invoice/Delivery Note Document, also submits a Stock Entry Purpose: Material Receipt and receives A with the Serial Number into the Customer Specific Virtual Warehouse. Wait. Serial Numbers have to be unique so, the Serial Number for B could be Batch Number concatenated with the Serial Number of the bottle (sorry if this sounds complex. Actually it’s not. If you just try to complete the raw transactions the way I described it, you will know why I am saying what I am.) Since B has to be Serialized, it has to have a whole Number as the UOM. Just watch out for it.
In both cases, running a Stock Balance report for the Customer Specific Virtual Warehouse will tell you how many Bottles (and their Serial Numbers) that the customer is yet to return. And as a Customer Returns the Bottle you do a Stock Entry Purpose: Material Transfer and flush it out of the Customer Specific Virtual Warehouse and drop into whichever warehouse you want to drop it into.
Hope this helps.
for your business case, my proposed solution is
- create chemical D as batch managed finished item
- define BOM for chemical D with chemical A, B, C as its components
- Add chemical D as item in sales order
- Create recycle bottle as serialized item
- When manufacture chemical D, transfer serialized bottle from pre-production warehouse to WIP location just like other 3 chemical A,B,C, because the bottle is not defined in BOM, so you may need to manually add it into the relevant stock entry.
- when deliver to customer chemical D via delivery note, auto create a stock entry with purpose transfer: from WIP location to customer consignment location, here custom script can be used to auto generate such stock entry per existing links from sales order to work order, or you can manually create the stock entry as needed.
- when customer return the serialized bottle, create another stock transfer entry, from customer consignment location to normal pre-production warehouse
in essence, the serialized recycle bottle is not part of the BOM, it is a kind of package/container linked to the order, the stock transfer is used to track its movement.
seems my proposed solution is more or less like what @JayRam has pointed out.
The benefit of serial numbering in our situation is control over current location of the item. If a bottle is returned from a customer and staff fail to register the return, then the next attempt to transfer the bottle from the returns area to the pre-production area will throw an error.
Does ERPNext allow masking a serial number, so that only part of it is recognized as the physical item? Example:
4 units of Chemical D is the resultant product from production batch #42.
They are numbered:
For the purpose of Material Transfers the serial numbers are seen as
Yes. I think the ideas are the same. Your explanation is easier to understand.
My idea is
- add produced serial number field to Stock Entry DocType, set depends_on purpose Manufacture
- validate and enforce: if purpose is manufacture and finished item is serialized, then quantity should be 1, auto copy the serial number from item to above newly added produced serial number
- create serial number tracking report based on the above newly add produced serial number to link the finished item serial number with its components’ serial number.
In such cases, use a custom field called Base Serial Number or equivalent and you can have SBAA0384 as the value (and so on) in the Base Serial Number field. Scripts can fetch this in the transaction. Or you can just display the part before the hyphen.
Hope this helps.
That looks like additional complexity that I can avoid using your approach:
Has someone found a solution for this? This is essential for complicated assemblies with various steps of sub-assemblies