Importing components from a CSV file
File format
One row is one operation. Rows are grouped by component into the component's
route, in operation-number order.
Your CSV should have the following columns:
component: component unique identifiermachine_group: the machine group that runs the operation (must already exist)op_number: operation sequence number
To add extra information, you can include these columns:
description: component descriptionop_description: operation descriptioncycle_time: cycle time (in seconds)setup_time: setup time (in seconds)route_version: route version number (defaults to 1)issue: component issue / revisionmaster_op(aliasaggregation_level): roll several sub-operation rows up into one operation (see Master-op roll-up)output_parts: finished parts produced per sequence (positive integer, defaults to1)
Operations target a machine group, not a single machine. The group is matched by name (case-insensitive) and must already exist — create it first under Manage → Machine Groups. Any machine in the group can run the operation; the operator picks the actual machine at run time.
How to import
- Go to Manage → Components, click the ⋮ in the top right, then Start CSV Import
- Choose options:
- Split duplicates: creates a new route version when an imported operation clashes with one already on the component (instead of updating it in place)
- Select your CSV file
- Click Start Review to validate the data
- Confirm the import if the preview looks correct
Routes
Operations are grouped into routes by route_version (defaulting to 1). How
the importer handles an operation that already exists on the component depends on
the Split duplicates option:
- Split duplicates on — if an incoming operation number clashes with one already in the matching route, the route is copied to a new version and the operation is added there. This preserves the existing route for genuine alternate manufacturing paths.
- Split duplicates off — the existing operation is updated in place (machine group, times and description are overwritten) and no new version is created.
Operation numbers are compared as integers, so 0010 and 10 are treated as
the same operation.
Master-op roll-up
Some operations are made up of several sub-operations that run on the machine as
one continuous job. Add a master_op column (alias aggregation_level) to roll
these rows up into a single operation: rows that share the same master_op value
are combined, and the resulting operation takes
- that
master_opvalue as its operation number, - a combined description of the form
Op 10: … / Op 20: …, in operation-number order, and - the summed
cycle_timeandsetup_timeof the rolled-up rows.
All sub-operations in a roll-up group must name the same machine group — a
combined job runs in one machine group, so a group with differing machine groups
is reported as an error. Leave master_op blank (or omit the column) on rows
that should stay as standalone operations.
The output_parts column sets the finished parts produced per sequence (a
positive integer, defaulting to 1); for a rolled-up master op the largest
output_parts among its sub-operations is used.
Validation
Every row must have a value for the required columns — component,
machine_group and op_number. A row missing any of these is rejected with its
line number, so an appended totals or summary footer row is caught instead of
producing a confusing error further down. Duplicated header names are also
rejected — give each column a distinct name.
Issues
Add an issue column to set the component issue (revision) on import. If a
component appears across several rows with different issue values, each
distinct issue is created for that component; issues that already exist on the
component are matched case-insensitively and are not duplicated.
If you omit the issue column, components are imported with your organisation's
default issue.
Example
component,description,op_number,op_description,cycle_time,setup_time,machine_group,issue,route_version
155332,Engine block housing,10,Face Off Block,145,399,VMC Cell,A,1
155332,Engine block housing,20,Semi-Finish Block,145,399,VMC Cell,A,1
155333,Block head,10,Rough,120,600,VMC Cell,B,1
155333,Block head,20,Drill and tap,120,600,Deburr,B,1
Rolling sub-operations up into a master op with output_parts. Here ops 10
and 20 share master_op 10, so they collapse into one operation with the
summed times; op 30 stays standalone:
component,op_number,op_description,cycle_time,setup_time,machine_group,master_op,output_parts
155334,10,Rough bore,90,300,VMC Cell,10,2
155334,20,Finish bore,60,0,VMC Cell,10,2
155334,30,Deburr,30,120,Deburr,,1