ERP Integration (EDGEBIC)

An ERP Import Reconciliation Checklist for EDGEBIC

User Solutions TeamUser Solutions Team
|
8 min read

After every ERP import into EDGEBIC, run a short reconciliation pass: check that the four row outcomes add up to your file's row count, confirm the Created and Reused split matches what you expected, look for auto-created work centers and products nobody asked for, and spot-check one job's hours against the routing. The whole check takes about ten minutes on a first import and under two on a routine one. It catches the errors that otherwise surface a week later as dates nobody trusts.

EDGEBIC by User Solutions has moved ERP data through import masks since 1991, and across 35+ years of scheduling for the US Navy, GE, BAE Systems, and Cummins, the pattern is consistent: imports rarely fail loudly. They succeed quietly with the wrong numbers. Reconciliation is what turns a clean-looking import into a trustworthy one.

Why the check exists at all

An import can be technically perfect and still be wrong. The mask does exactly what you told it to do, which means a mismapped column, a missing conversion factor, or a stale export all produce a result dialog full of green counts. The universal import method is deliberate about this separation: data movement and planning are different acts, and the gap between them is where you inspect.

Nothing schedules itself on import. Work orders arrive as unscheduled demand and stay there until you run the scheduler, so the reconciliation window is built into the workflow rather than bolted on.

Check 1: the four outcomes must add up

Every row produces exactly one outcome, and the result dialog shows the counts:

OutcomeMeaning
CreatedNo matching record existed, so a new one was written
UpdatedA match was found and fields changed
ReusedA match was found and deliberately left alone
FailedThe row was rejected, with the reason recorded

Add the four numbers. The total must equal the data rows in your export, excluding the heading row. When it does not, the usual causes are a trailing blank row, a heading row that was not flagged as headings in the mask, or a quoted value containing a comma that split into extra columns because the text-enclosed-in-quotes setting was off.

The per-run log records every row individually, so a mismatch is a lookup, not a guess.

Check 2: does the Created and Reused split make sense

This is the check that catches identifier drift, and it costs five seconds.

On a first import, almost everything should be Created. That is expected.

On a routine import of master data that has not changed much, most rows should come back Reused. A weekly product refresh that reports 34 Created and 240 Reused is healthy. The same refresh reporting 274 Created is a red flag, because it means the matching key did not match anything.

Matching is on the identifier, case-insensitively, so BRK-200 finds brk-200. What it will not survive is a leading apostrophe from a spreadsheet, a trailing space, a changed prefix, or a column that shifted one position to the right. All four produce duplicates rather than updates. The product master sync post covers the identifier discipline in full.

Check 3: look for records nobody asked for

The routing import auto-creates any work center or product it names that does not already exist. That behavior is useful, because it means a routing file can stand up a skeleton model on day one. It is also the single most common source of surprise records.

After a routing import, open the work center list and look for centers with no shift assignment and no instance count. Those are the auto-created ones. Each is usually a spelling variant of a real machine: DEBURR-1 against Deburr 1, or MILL2 against Mill-2.

Fix them at the source. Correct the spelling in the ERP export or normalize it in the mask, re-import the routing, then remove the orphan. Doing this before the first schedule matters, because a center with no shifts and no instance count still schedules against defaults and produces optimistic dates.

Check 4: walk one routing end to end

Routings are imported in two passes for a reason. Pass one reads and validates every row and buffers the steps. Pass two groups the buffered rows by end product, sorts them by sequence number, writes them, and wires the chain: step 10 to 20, 20 to 30, and the terminal step to the finished product.

Pick one representative product and open it in the graphical routing designer. You are looking for three things:

  • Every step is connected. A step floating on its own usually means its sequence number duplicated another step's, so the sort could not order them.
  • The step count matches the ERP. A short chain means some rows landed in a different file or a different product.
  • The last step ends at the finished product, not at a component.

Two conventions prevent most chain problems: number sequences in gaps of ten so a later insert becomes 25 without renumbering, and keep all of one product's steps in one file, because a routing import wipes and recreates that product's steps once per run.

Check 5: reconcile the hours on one job

This is the check that catches unit errors, and it is worth doing every time you change a mask.

Take one imported job. Add up, by hand, setup plus run time multiplied by quantity across its operations. Then compare that total to the hours the schedule assigns it.

  • A gap of roughly sixty times in either direction points at minutes imported as hours, or the reverse. Set a conversion factor of 0.016667 on the column and re-import.
  • A gap that disappears when quantity is 1 points at run time landing in the setup field, which is charged once per job instead of scaling. The combined setup and run time guide covers the split.
  • A gap of exactly one hundred times points at a per-hundred standard imported without the 0.01 factor.

Unit errors are the most expensive import mistake because they never fail, they just quietly move every date.

Check 6: order references and job numbers

If your work order export carries an order reference, rows sharing that reference group under one sales order and their jobs auto-number as {Ref}-{line}. Confirm a multi-line order actually grouped rather than arriving as unrelated jobs. Keeping identifiers aligned across the two systems is a habit worth building early, and the job number alignment post covers the conventions that hold up over time.

The checklist in one pass

#CheckWhere to lookTypical cause when it fails
1Outcomes total equals file rowsResult dialogBlank rows, heading row, quoting off
2Created versus Reused split is saneResult dialogIdentifier drift or shifted column
3No orphan work centers or productsWork center listSpelling variants in the routing file
4One routing walks end to endRouting designerDuplicate sequence numbers, split files
5One job's hours reconcileJob scheduleMissing conversion factor, setup and run swapped
6Multi-line orders groupedOrder listMissing order reference column

Then, and only then, schedule

Once the six checks pass, run the scheduler. It states how many jobs are new and how many are being rescheduled before it plans anything, so you get one more chance to notice a scope that looks wrong. From there the full engine applies: finite capacity across shifts and machine instances, work center groups, sequence-dependent setups, lot streaming, and mathematical optimization with a proven optimality gap. The EDGEBIC product overview maps the engine, and the ERP integration architecture shows where the import layer sits.

Fold the checklist into your recurring rhythm rather than treating it as a project task. The weekly sync routine has the cadence, and the first week checklist has the from-empty sequence.

Reconcile your own export

Bring one week of real exports to a demo and run the reconciliation live. Ten minutes of checking on your own data tells you more about your ERP's export quality than any amount of planning, and you leave knowing exactly which columns need work.

Read the result counts first, then reconcile them against the file. Every row produces exactly one outcome: Created, Updated, Reused, or Failed. Add the four numbers and they must equal the data rows in your export. If they do not, the file had blank rows, a heading row counted as data, or a delimiter split a quoted value into phantom columns. The per-run log names the offending row.

On a repeat import of stable master data, a high Created count usually means the identifier changed rather than the record. Matching is on the identifier, case-insensitively, so a leading apostrophe, a trailing space, or a switched column will create duplicates instead of updating the records you meant to touch. On a first-time import a high Created count is normal and expected.

No. Reconcile first, because an import changes data while the scheduler changes the plan, and the two stay separate on purpose. Imported work orders sit as unscheduled demand until you run the scheduler, which gives you a window to check counts, spot auto-created work centers, and inspect the routing chains before any dates are produced.

Expert Q&A: Deep Dive

Q: Our routing import reported zero failures but the schedule shows several jobs finishing in one day that should take a week. What did we miss?

A: Zero failures means every row parsed, not that every number was right. Check three things in order. First, the unit on the run time column: an operation quoted in minutes and imported without a 0.016667 conversion factor lands as hours divided by sixty, so a 90-minute operation becomes 1.5 minutes of work. Second, whether run time went into the setup field, which is charged once per job instead of multiplied by quantity, so a 1,000-piece job collapses to a single setup. Third, the total: pick one job, add setup plus run time times quantity across its operations, and compare that to the hours the schedule shows. A factor-of-sixty gap points at units, a quantity-independent gap points at the setup and run split.

Q: We imported work centers and got 12 Created when we only have 9 machines. Where did the extra three come from?

A: Almost certainly from the routing import, not the work center import. The routing pass auto-creates any work center or product the file names that does not exist yet, so a routing row spelling a center DEBURR-1 when the machine list says Deburr 1 creates a second, empty center with no shifts and no instance count. Those phantom centers are easy to spot: sort the work center list by shift assignment and the auto-created ones have none. Fix the spelling in the routing export, re-import the routing, then delete the orphans. Do this before the first schedule, because an empty center schedules against default capacity and quietly flatters your dates.

Frequently Asked Questions

Ready to Transform Your Production Scheduling?

User Solutions has been helping manufacturers optimize their production schedules for over 35 years. One-time license, 5-day implementation.

User Solutions Team

User Solutions Team

Manufacturing Software Experts

User Solutions has been developing production planning and scheduling software for manufacturers since 1991. Our team combines 35+ years of manufacturing software expertise with deep industry knowledge to help factories optimize their operations.

Let's Solve Your Challenges Together