Bills of material and assemblies
A filling machine has roughly 3,000 parts. A buyer needs exactly one of them, today. The structure that gets them from "the machine" to "that part" is the bill of material, and it is the single most valuable piece of data in a spare parts shop.
What a BOM actually is
A bill of material is a list of positions. Each position says: at position 010
of this assembly there are four of article DR-88-042. Three things, always —
a position number, a part, and a quantity.
The position number is the part people navigate by. It is the number in the drawing, the number in the manual, and the number the maintenance technician reads out on the phone. Your SKU is the number you navigate by. In a spare parts shop the position number does at least half the work, so treat it as data worth keeping rather than as a row index.
Single-level and multi-level
A single-level BOM lists the direct children of one thing. The FS-200 filling
machine consists of the dosing head BG-4400, the conveyor BG-4700, the
control cabinet BG-4900, and so on. Six or eight positions, none of them
individual parts.
A multi-level BOM continues downward. BG-4400 consists of position 010
(the pump), position 020 (the valve block), position 030 (four seals
DR-88-042). Position 020 is itself an assembly with its own positions. In
special-purpose machinery four to six levels is normal, not exceptional.
Multi-level matters for two reasons that only show up in practice.
Navigation. A buyer who knows the machine but not the part needs to descend: machine → dosing head → valve block → seal. Each step must be a real object with its own drawing, or the descent turns into scrolling through 3,000 rows.
Reuse. The same valve block is fitted in four machine series. Modelled once as an assembly, it is maintained once. Flattened into four machine parts lists, it is maintained four times, and after two years the four disagree.
The BOM you have is not the BOM you publish
This is the distinction that decides whether the project succeeds, and it is the one most teams discover too late.
| Engineering BOM (E-BOM) | Service / sales BOM (S-BOM) | |
|---|---|---|
| Comes from | CAD and PLM, structured by how the machine is designed | Service, structured by how the machine is repaired |
| Contains | Every component, including welds, adhesives, paint, non-separable parts | Only what a customer can order and fit |
| Designations | Internal shorthand: Dichtring 12x2 NBR 70 | Customer language: "O-ring, 12 × 2 mm, NBR, for dosing valve" |
| Grouping | By manufacturing sequence | By what fails together |
| Images | A CAD model, if anything | An exploded drawing with numbered positions |
| Prices | Cost, if anything | Sales price, per customer |
Publishing the E-BOM as-is gives your buyer a parts list containing weld seams, internal designations, and forty positions marked "nicht einzeln lieferbar". The conversion from E-BOM to S-BOM is editorial work done by people who service the machines, and it is the bulk of a spare-parts project. Budget for it explicitly.
The intermediate step nobody plans for is deciding what a customer may order. Some parts are service-only for safety or liability reasons. Some are supplied only as an assembly because fitting the individual part requires a calibration rig. That decision belongs to service, has to be recorded per position, and has to be visible in the shop as something other than silence.
Where BOMs come from
Three sources, in descending order of how usable the export is.
The ERP. SAP, proALPHA, abas and Dynamics all hold BOMs as header and item records, with a position number, a component article and a quantity per item. This is the most usable export because it already refers to article numbers your shop knows. It is also the E-BOM, with all the caveats above.
The PLM system. Richer structure, revision history, and the link to the CAD geometry — which is what you need if you want exploded drawings with hotspots. Harder to export cleanly, and the article numbers may be engineering numbers rather than sales numbers.
The CAD system directly. A last resort, used when there is no PLM and the ERP BOM covers only the top level. You get structure and geometry and almost no commercial data.
Whichever source you use, the mapping question is the same one as everywhere else: which system owns the structure, and what happens when it changes there. Settle it before the first import, not after the first divergence — see Deciding your system of record.
How this works in the Revenue Cloud
The BOM mechanism is quantified associations, and it is real today.
- An association type defines a kind of product-to-product relationship. Two flags on it matter here. Quantified means the relationship carries a number — four of those seals, not just "these seals". Two-way means the reverse relationship is maintained automatically, which is what you want for "is an alternative to" and emphatically not what you want for "contains".
- A product association is one row: this product, this association type, that target product, this quantity, this position. That row is a BOM position.
- Assemblies are products.
BG-4400is a product with its own SKU, its own attributes, its own drawing — and its own quantified associations pointing at its children. Multi-level BOMs are what you get by pointing assemblies at assemblies.
Because an assembly is an ordinary product, everything else in the catalogue applies to it: it belongs to a family, it carries attributes, it can hold assets such as the exploded drawing, and it is measured by completeness like anything else. That is the point of modelling it this way rather than as a separate BOM module.
enabled flag and your
channel setup to decide what appears in the shop, and use an explicit attribute
— orderable_as_spare_part, say — to record service's decision, so that the
shop can say "supplied as part of assembly BG-4400" instead of returning
nothing.What a good BOM position carries
Beyond part, quantity and position number, the positions that actually help a buyer carry a little more:
- Unit — four pieces, but 1.8 metres of hose. A BOM with only integers will eventually sell somebody 2 of a hose.
- A note — "gehört zum Dichtsatz DS-88" tells the buyer to order the kit instead of three individual seals, which is both cheaper for them and fewer lines for you.
- Effectivity — from which machine serial number this position is valid. This is what stops a ten-year-old machine being shown the current parts list, and it is covered in Compatibility and fits-with.
- Wear-part flag — the handful of positions per assembly that actually fail. Surfacing those first turns a 200-position list into a page a technician can use.
Next
- How buyers identify a spare part — the paths that lead into the BOM.
- Model a bill of material — build it in the Cockpit.