Skip to content

BOM "Track Semi Finished Goods" throws error on first operation — no way to do operation-wise stock/valuation tracking within a single Work Order without splitting item codes #57929

Description

@satisharalkar

Information about bug

Information about bug:
We manufacture a single item (e.g. 068600XBM01) through a multi-operation routing that mixes in-house and subcontracted operations on the SAME item code:
Raw Material -> Cutting (in-house) -> Forging (in-house) -> Heat Treatment (in-house) -> Machining (subcontracted operation) -> Visual Inspection / Marking (in-house) -> Plating (subcontracted operation) -> Positive Material Identify / Packing (in-house).

Our goal is to track stock and valuation operation-wise within a single Work Order/BOM, without creating a separate item code for every intermediate stage. We already raised this need with Frappe Support: https://support.frappe.io/helpdesk/my-tickets/75856 ("Need operation-wise stock/valuation tracking within a single Work Order, without splitting into multiple item codes") after finding that a standard Manufacture Stock Entry only allows FG receipt once the LAST operation's Job Card is complete, blocking any WIP checkpoint after just the first operation.

We then found the "Track Semi Finished Goods" option on the BOM, which appears to be built for exactly this use case. We enabled it on BOM-068600XBM01-019 and tried to save.

Steps to reproduce:

  1. Create Item 068600XBM01 with a BOM containing Raw Material XBM148D-P.
  2. Add operations in sequence: Cutting, Forging, Heat Treatment, Machining (Subcontracted), Marking, Visual Inspection, Plating (Subcontracted), Positive Material Identify, Packing.
  3. Enable "Track Semi Finished Goods" on the BOM.
  4. Save the BOM.

What happened:
Save fails with: "For operation CUTTING at row 1, please add raw materials or set a BOM against it."
Cutting is the very first operation in the routing and naturally consumes the BOM's own top-level raw materials (XBM148D-P), which are already defined at the BOM level. It's not clear why the first operation additionally requires its own separate raw-material assignment or sub-BOM to satisfy this validation.

What we expected to happen:
For the first operation in a routing, "Track Semi Finished Goods" should be able to default to the BOM's own top-level raw materials (or allow row 1 to be left as-is) instead of mandating an explicit raw-material list or a linked BOM for every operation row, including the first. This currently blocks using the feature for a routing that legitimately starts with in-house operations consuming the main BOM's raw materials and later includes subcontracted operations further down the same routing.

We'd also appreciate guidance/documentation on how "Track Semi Finished Goods" is meant to be configured when a routing mixes in-house and subcontracted (Job Card-level Subcontracted Operations) steps on one item code — we couldn't find an example covering this combination.

Please find attached below process flow.
Image

Module

manufacturing

Version

ERPNext
erpnext: 16.26.1 (HEAD)

Installation method

FrappeCloud

Relevant log output / Stack trace / Full Error Message.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions