Materials & required resources (operation BOM)
The operation Bill of Materials (BOM template) lets you declare, for each operation within a maintenance programme (PEA), the list of items that will be needed during execution: parts, consumables and tooling. This is not a purchase order — it is the preparation template that will be instantiated every time a Work Order (WO) is opened against this operation.
Practical example: for the 500-hour periodic inspection of the turbocharger, the operation “Remove/refit turbocharger” requires:
- 2 flange gaskets (consumable, mandatory),
- 1 M10 × 40 fixing bolt (part, mandatory),
- 1 calibrated torque wrench 50 Nm (tooling, non-mandatory — if already available on site).
When the corresponding WO is opened, the system pre-fills this list. The technician simply confirms or adjusts the actual quantities used.
The 3 item roles in a BOM
Item roles within an operation
- Part — required_part
An item that physically replaces a worn or life-limited component. It is consumed by the operation: the fitted part enters its own service life, the old one is removed from service. Stock decreases by one unit at the time of the actual issue.
Examples: fixing bolt, oil filter, sealing gasket, bearing.
- Consumable — consumable
A product or material discarded after use — it never returns to stock. The consumed quantity corresponds exactly to what was used during the operation.
Examples: hydraulic fluid, anaerobic sealant, thread locker, flat gasket, cleaning solvent.
- Tooling — tooling
A tool or equipment used and then returned to stock. It is not consumed — it follows a check-out / check-in cycle. A calibrated torque wrench, a rivet jig or a portable test bench are typical examples.
Only items whose PartType is flagged as tooling (
isTool = true) may be declared in this role. The picker filters automatically on this criterion.
Standard duration of the operation
Each operation may carry a standard duration in minutes (estimatedDurationMinutes). This
field is optional but recommended whenever the duration is known or sourced from a reference manual
(e.g. 90 min for the 500-hour turbocharger inspection).
The standard duration is used to:
- compute the aggregate duration of a task or a full PEA (sum of operations);
- compare, after execution, the planned duration against the actual duration recorded on the WO;
- support workshop scheduling (wave L6, upcoming).
Link with PartType and the tooling filter
The PartType.isTool flag identifies item families that act as tooling (wrenches, jigs, test
benches, lifting equipment…). It works analogously to PartType.isContainer, which marks aircraft
containers.
When you declare an item in the tooling role within a BOM, the picker only lists PartNumbers
whose PartType has isTool = true. You cannot declare an ordinary part as tooling, or vice versa.
This filter guarantees consistency in stock movements at execution time.
PartTypes are managed in the Catalogue module. The
toolingtype is pre-configured by default withisTool = true.
The mandatory flag
The mandatory flag (true/false per BOM line) indicates whether the physical presence of the item
is required before starting the operation, or merely recommended.
- Mandatory = true: WO execution may be blocked if the item is not available in stock (exact enforcement depends on the instance policy, upcoming in wave L5-F).
- Mandatory = false: desirable but non-blocking (alternative tooling already on site, for example).
Uniqueness constraint
A given PartNumber may appear only once per role within the same operation. If the same PN can play two roles (e.g. both a consumable and a part on the same operation), two separate lines are required.
Self-target guard on component-level tasks
When the parent task tracks a specific component (« Tracking: Component » + target article X), the same physical exemplar can’t be at once the maintained object and the tool/consumable of the operation. The system therefore checks at save time:
| Material role | PartNumber = task target | Behaviour |
|---|---|---|
tooling |
same as target | rejected (400) — a tool can’t be its own tooling |
consumable |
same as target | rejected (400) — you don’t consume the part you’re maintaining |
required_part |
same as target | allowed — legitimate LRU swap (remove an M88, install another M88, same PN, different SN) |
For Tracking: Aircraft tasks none of those checks applies: the target being the aircraft itself,
there is no risk of physical confusion with a PartNumber.
Execution effect (upcoming — wave L5-C)
When a WO is opened against this operation, the system instantiates the BOM template:
BOM instantiation when opening a WO
- Pre-fill the materials list
Each BOM template line generates a preparation line on the WO, carrying the standard quantity and the corresponding role.
- Technician adjustment
The technician confirms or adjusts the quantities actually needed (variations allowed within the limits of the reference manual). Items not in the template may also be added.
- Automatic stock issue
When the operation is closed, the confirmed quantities automatically generate outbound stock movements for
required_partandconsumableitems.toolingitems follow a return movement (check-in).
V1 limitations
- Unit inherited from the PartNumber: the unit of measure (pcs, litre, kg, ml…) is the one defined on the PartNumber. It cannot be overridden line by line within the BOM.
- No advance stock reservation: the BOM template does not trigger any reservation or picking before the WO is opened. Reservation management is planned for wave L5-F.
- No kitting or upstream picking: grouping materials into a kit and upstream picking by the storekeeper ahead of the work are planned for wave L5-D.
See also
- Maintenance programmes — PEA / PRE structure and operation lifecycle.
- Maintenance workbench — opening WOs and executing operations.
- Technical reception — parts intake, EASA Form 1.