How to Maintain the BOM and Routing in SyteLine
how to maintain BOM and routing in SyteLine
Also searched as
- SyteLine add component to bill of material
- SyteLine item routing operations setup
- SyteLine change BOM effective date
- SyteLine bill of material not copying to job order
Short answer
In SyteLine the manufacturing structure for an item is a standard (type S) job: its material lines are the BOM and its operation lines are the routing. You maintain it from the item's BOM and routing forms, set effectivity dates, then let new job orders pull a copy. Existing jobs do not update automatically, which is where most confusion comes from.
Applies to: Infor SyteLine 8.x, CloudSuite Industrial (CSI) 9.x and 10.x, on-prem and multi-tenant. Form names vary slightly by release.
How to change a BOM and routing safely
- 1Confirm the item exists on the Items form with Source set to Manufactured (M) and a Production Schedule / Job Order flow in use. Purchased items have no BOM.
- 2Open the item's BOM form (Production > Bill of Material area in most menus), select the item, and add component lines with Operation Number, Sequence, Quantity per, Scrap factor and Effective / Obsolete dates.
- 3Open the routing form for the same item and add operations: Operation Number, Work Center, Setup hours, Run hours per piece, Move time and Queue time. Operation numbers on the BOM lines must match a routing operation.
- 4Use effectivity dates rather than deleting lines. Set the old component's Obsolete date and add the new component with an Effective date of the same day so history stays intact.
- 5Run the cost rollup for the item (see the cost rollup page) so standard cost reflects the new structure.
- 6Create a test job order for the item and open Job Order Material and Job Order Routing to confirm the expected components and operations copied.
- 7Decide what to do with open jobs: they hold their own copy, so change them directly on the job forms or reissue them.
- 8Re-run MRP so planned orders use the new BOM and lead times.
How the BOM and routing are stored
SyteLine does not keep a separate bill of material table the way some ERPs do. The item master points to a standard job (job type S, suffix 0), and that job's material lines (jobmatl) and routing lines (jobroute) are the BOM and routing. When someone releases a production job order, the system copies those lines into the new job. That is why the BOM form and the Job Order Material form look so similar.
This design explains two common surprises. First, anything you change on the standard structure affects only future jobs. Second, a custom report that reads BOMs must filter on the standard job type, otherwise it also picks up thousands of live and historical production jobs.
-- Components of the standard BOM for one item (verify names on your release) SELECT jm.item AS parent_job_item, jm.oper_num, jm.sequence, jm.matl_qty, jm.eff_date, jm.obs_date FROM jobmatl jm JOIN job j ON j.job = jm.job AND j.suffix = jm.suffix WHERE j.type = 'S' AND j.item = 'ASSY-1000' ORDER BY jm.oper_num, jm.sequence;
Effectivity, phantoms and alternates
Effective and Obsolete dates are evaluated when a job is created or when MRP explodes demand, not continuously. If you set a new component to start next Monday, a job created today still gets the old component. That is correct behaviour, but planners often read it as a bug.
Phantom items are set on the component item (a phantom flag on the item record, with Source set to Manufactured). The phantom is exploded through in MRP and on the job, so its components appear directly as lines of the parent. Do not give a phantom its own routing unless you really want operations to be scheduled, because phantom routing is ignored in most flows.
Alternate components are not a native substitute mechanism on the BOM line in every release. Teams commonly model alternates with separate effectivity lines or with item substitution on the job material line. Check what your release exposes before promising shop supervisors a one-click swap.
Making open jobs match the new structure
The most asked question on this topic is why a changed BOM did not change an open job. The job already copied its lines. You have three options: edit the job material and routing directly (fine for a handful of jobs), release a new job and close the old one, or use a controlled data fix for many jobs, which should be tested in a copy of the database first.
Be careful with jobs that already have issued material or posted labour. Changing quantity or deleting a line on an issued component breaks the variance picture. Add a new line for the new component and leave the old line open with its issued quantity, then close it at completion.
Common pitfalls
- !Editing the standard BOM and expecting open job orders to change. They keep the copy they were created with.
- !Deleting an old component line instead of setting an Obsolete date, which loses where-used history and confuses cost comparisons.
- !BOM operation numbers that do not exist on the routing, so material is issued at the wrong operation or fails backflush.
- !Forgetting to run cost rollup after the change, leaving standard cost based on the old structure.
- !Reports that join jobmatl without filtering on job type S, which double counts live jobs.
- !Changing a phantom's structure without re-running MRP, so planned orders keep old components.
How an ERP-grounded AI assistant handles this
SyteRay can read the standard job structure and answer questions such as which BOMs still use an obsolete component, which operation numbers on BOM lines are missing from the routing, or which open jobs still carry a superseded part. It shows the query it ran. Any change to a BOM stays a human-approved action, because a wrong write here affects cost and planning. For routine checks, a saved query or Infor's own reports may be enough.
Frequently asked questions
Where is the BOM stored in SyteLine?
It is stored as material lines on the item's standard job (job type S). The routing is the operation lines of the same job. Production jobs copy these lines when they are created, which is why editing the standard structure does not change jobs that already exist.
How do I replace a component from a certain date?
Set the Obsolete date on the old component line and add the new component line with an Effective date of that day. Keep the same operation number. Then run cost rollup and MRP. Do not delete the old line, since where-used and history depend on it.
Why did my new component not appear on the job order?
Usually the effective date is later than the job's creation or start date, or the job was created before you saved the change. Check the line's Effective and Obsolete dates, then create a fresh test job to confirm.
Do phantom BOMs need a routing?
Normally no. A phantom is exploded through so its components appear on the parent job. Operations on a phantom are generally not scheduled as a separate job, so put the labour on the parent routing instead.
Related
How to Run a Cost Rollup in SyteLine
Run Item Cost Rollup from Product Definition > Costing > Cost Rollup, select the site and item range, run it in Simulate mode first to review variances, then run it live to post new standard costs to Item records and the Costed Bill of Material.
How-toHow to Close a Job Order in SyteLine
Close a job order from Production > Job Orders once every routing operation is reported complete and the finished quantity has been received, then run Close Jobs to post the remaining WIP balance to variance and lock the job from further transactions.
How-toHow to Run MRP in SyteLine
MRP in SyteLine runs from Planning > MRP Processing as either a full Regenerative run or a Net Change run against demand from customer orders, forecasts, and safety stock; results appear as planned orders and Action Messages in the Planner Workbench.
How-toHow to Change an Item's Standard Cost in SyteLine
You can edit an item's standard cost fields directly on the Items form, or let Cost Rollup calculate it from the BOM and routing. Either way, the new cost only affects future transactions until you run Recost Inventory, which revalues on-hand quantity and posts the difference to the standard cost variance account in GL.
Error fixFixing SyteLine's 'Object reference not set to an instance of an object' error
This is a generic .NET NullReferenceException surfacing through the SyteLine IDO Runtime, not a SyteLine-specific error code. It almost always means a form, script or IDO method referenced a field, row or object that came back null, usually after a customization, a missing related record, or a view/IDO method call before the form finished loading. Turn on detailed client logging and check the most recent customization or form event first.
Error fixDiagnosing and fixing SyteLine session timeout errors
SyteLine session timeouts come from one of three independent layers: the IDO Data Service session timeout on the app server, the IIS/application pool idle timeout for the web (Mongoose Web) client, or a load balancer/proxy idle timeout in front of a CloudSuite hosted environment. Fixing the wrong layer is the most common mistake - you need to identify which layer is actually expiring the session before changing anything.
AI for ERPAI for Infor SyteLine and CloudSuite Industrial
Add grounded AI to Infor SyteLine or CloudSuite Industrial: natural-language answers, agents over IDOs and ION, on-prem or CloudSuite deployment.
AI for ERPAI on Infor SyteLine for Metal Fabricators: Quotes, Heat Lots, Routings and Job Cost
AI on Infor SyteLine for metal fabricators: quote and routing history, remnant and heat-lot traceability, outside processing, and job costing, kept private.
Stuck on Infor SyteLine (CloudSuite Industrial)?
Talk to engineers who work inside Infor SyteLine (CloudSuite Industrial) every week, and who build private AI that answers these questions from your own ERP data.