- Home
- Blog
- ERP Integration (EDGEBIC)
- EDGEBIC + ERPNext: The Complete Scheduling Integra…
EDGEBIC + ERPNext: The Complete Scheduling Integration Guide
Integrating ERPNext with EDGEBIC means exporting the items, workstations, operations, and open work orders ERPNext already holds to CSV or Excel from its report views, mapping those columns once with a reusable import mask, and letting EDGEBIC schedule the work against finite capacity: real shift hours, real machine counts, and sequence-dependent setups. Executable dates then go back as Excel. There is no custom app installed in the site, no API integration to build, and no certified connector to version-match when either side updates.
EDGEBIC by User Solutions is the newest generation of a scheduling line that has integrated with ERP systems this way since 1991. Across 35+ years the same file-based approach has fed schedules for the US Navy, GE, BAE Systems, and Cummins. This guide covers the ERPNext case: what to export, how the masks work, what the engine does with the result, and what a realistic first week looks like.
Why an open-source ERP still needs a finite capacity layer
ERPNext is a broad, capable ERP: items, stock, buying, selling, accounting, and a manufacturing module with workstations, operations, and work orders. What most ERPNext manufacturers report is that the daily sequencing decision against real machine constraints still happens in a spreadsheet, because the questions a planner asks each morning are finite capacity questions:
- Which of these 50 open work orders fit on the two machining cells this week?
- If this rush order jumps the queue, which promise dates move and by how much?
- Is the assembly line loaded to 80 percent or 160 percent next Thursday?
Those require modeling shifts, machine instances, changeover sequences, and operator availability against every open order at once. It is a different computational problem from recording transactions, which is why a dedicated finite capacity layer beside the ERP is the standard pattern. The general case is in finite versus infinite capacity scheduling, and the wider argument is in why ERP needs a scheduling add-on.
The integration in one table
The EDGEBIC ERP integration architecture is identical for every system, ERPNext included:
| Direction | Data | How it moves |
|---|---|---|
| ERPNext to EDGEBIC | Items | Report-view CSV or Excel to Product import mask |
| ERPNext to EDGEBIC | Workstations | Export to Workcenter import mask |
| ERPNext to EDGEBIC | Operations / routings | Export to BOR (bill of routing) import mask, two-pass |
| ERPNext to EDGEBIC | Open work orders | Export to SalesOrder import mask |
| ERPNext to EDGEBIC | Logged time from job cards (optional) | Export to Actuals import mask |
| EDGEBIC to ERPNext | Executable start and end dates, dispatch lists | Excel export from Job View and reports |
An import mask is a saved recipe. It remembers which kind of data you are importing, what format it arrives in (Excel workbook, or comma, semicolon, tab, or space delimited text), whether the first row is headings, whether text values are quoted, and how each column maps onto an EDGEBIC field. You build it once by dragging your report view's column headings onto EDGEBIC's target fields. Every run after that is two clicks.
Every row produces exactly one outcome: Created, Updated, Reused (matched and deliberately left alone), or Failed (rejected, with the reason recorded). A result dialog shows the counts and a per-run log file records every row individually.
The report view is the interface, and that is the advantage
ERPNext report views are made for this: pick the doctype, choose the columns, filter to what is open, and download to CSV or Excel. That download is a stable, inspectable file, which is exactly what a file-based interface wants. A custom app or API integration would be a dependency that has to be maintained across ERPNext version upgrades; a report-view download has a much smaller failure mode, because the only thing that can break is a column heading, and the fix is re-mapping one row in a mask.
Three practical consequences follow:
- Nothing is installed in your site. No custom app, no server script, no scheduled job driving the integration. There is nothing to carry across a version upgrade.
- No integration user is created. The scheduler never authenticates against ERPNext, so there is no role or API key to manage.
- Scheduling keeps working offline. The plan is computed locally, so a site-availability problem stops the export, not the shop's dispatch list.
Step 1: the four exports
Four report-view exports carry a complete scheduling model.
- Items. The item code, description, unit of measure, and any cost or lead-time columns worth having visible. The item code is the natural key, matched case-insensitively.
- Workstations. Identifier, how many identical machines the workstation really holds, default setup hours, efficiency, and an hourly rate for cost rollups.
- Operations. One row per operation: end item, workstation, sequence number, hours per unit, setup time, queue time.
- Open work orders. Item, quantity, order reference, and dates.
Whatever the ERPNext column labels say, you drag them onto EDGEBIC's fields; the names do not need to match. The ERPNext to EDGEBIC data mapping reference lists the doctype-by-doctype column pairings, including the conversions and upsert rules.
Step 2: map the columns once
Build one mask per export and name it after the routine rather than the file: Weekly ERPNext Work Orders outlives wo-week29.csv. Mandatory fields are flagged, and the run refuses to start until they are mapped, so a half-built mask fails before it reads a single row.
Two mask features carry most of the weight:
Unit conversion. Set a conversion factor on any numeric column and the multiplication happens before the value is stored. Minutes to hours is 0.016667, seconds to hours 0.000278, and a standard time quoted per lot of 100 pieces becomes per piece with 0.01. ERPNext operation times often come in minutes, so map the operation column with the minutes factor.
Blank-cell preservation. On an update run, a blank cell keeps the existing value rather than wiping it, so a partial refresh file is safe. A zero is a value and will be written, so leave a column out rather than filling it with zeros you do not mean.
Step 3: the routing import, and why it takes two passes
Operations reference each other: step 10 feeds step 20 feeds step 30. A row-by-row import cannot wire those links, because step 20 does not exist yet when step 10 is written.
EDGEBIC's routing import runs in two passes. Pass one reads and validates every row, auto-creates any workstation or item the file names that does not exist yet, and buffers the steps. Pass two groups the buffered rows by end item, sorts them by sequence number, writes them, and wires the chain: 10 to 20, 20 to 30, and the terminal step to the finished item, so the routing renders as one connected flow in the graphical routing designer.
Conventions that pay off immediately:
- Number sequences in gaps of 10 so a later insert becomes 25 and nothing renumbers.
- Keep all of one item's steps in one file. A routing import wipes and recreates that item's steps once per run, which is what makes re-imports idempotent.
- Re-importing is safe for running work orders. Every scheduled job carries a frozen snapshot of the routing it was planned with, so a routing change applies to future jobs and leaves work in progress untouched.
Step 4: work orders in, then run the scheduler
The order import maps item, quantity, reference, and dates. When your export carries an order reference, rows sharing that reference group under one sales order and their jobs auto-number as {Ref}-{line}.
Imports never schedule anything. Imported work orders sit as unscheduled demand until you run the scheduler, which states its scope in plain numbers before it plans. The choice of run is covered in EDGEBIC scheduling modes explained.
Once the data is in, the full engine applies: finite capacity across multiple shifts and machine instances, work center groups that re-shop the machine pool on every reschedule, a sequence-dependent setup matrix, lot streaming with transfer batches, operator skills, and mathematical optimization with a proven optimality gap. The EDGEBIC product overview maps the engine.
Step 5: sending dates back
The return trip is Excel. The Job View grid exports the job schedule as a workbook with colored cells and a legend sheet, the work center schedule exports the same way, and every report dialog exports to Excel or PDF using the column layout you saved. Revised dates then go back into ERPNext through the work-order update path your process already uses, or through ERPNext's own data-import tool if you prefer to load a file. There is no automated write-back, which keeps your ERP data under your team's control.
A realistic first week
The method has a documented benchmark in the User Solutions lineage: at Plastilite Corporation the ERP vendor itself recommended User Solutions scheduling, and the team went from first export to a complete optimized schedule with ERP integration in 5 days. An ERPNext shop usually follows the same shape.
| Day | Work |
|---|---|
| 1 | Build item and workstation report views; export; run those two masks; verify counts |
| 2 | Export operations; build the routing mask with the minutes conversion; review the designer |
| 3 | Export open work orders; import; run the first full finite capacity schedule |
| 4 | Compare EDGEBIC dates to current promises; correct instance counts, shifts, and setups |
| 5 | Lock the weekly rhythm: saved report views, saved masks, scheduler run, exports back |
The green-field setup walkthrough covers the from-empty sequence.
Test it with your own export
Build a report view of this week's open work orders and one of your operations, download them, then bring them to a demo. Mapping them live takes minutes, and you leave having watched your own shop scheduled against its own capacity. If you are comparing tools, the xTuple and Odoo versions of this guide follow the same method, which is the point of a universal import layer.
No. EDGEBIC reads the CSV or Excel files ERPNext produces from its report views through reusable import masks. There is no custom app to install in the site, no API integration to build, and no connector to certify. You map an export's columns onto EDGEBIC fields once and save the mask, and every run after that is two clicks with a per-run log recording each row.
Four exports carry a complete scheduling model: items, workstations with a real machine count, operations or routings with sequence and run and setup times, and open work orders with quantities and dates. A fifth optional export carries logged time from job cards. Each goes through its own import mask, and every row returns as Created, Updated, Reused, or Failed.
No, and that separation is deliberate. An import changes data, the scheduler changes the plan. Imported work orders appear as unscheduled demand and stay there until you run the scheduler, which states how many jobs are new and how many are being rescheduled before it plans anything. An import can therefore never silently rearrange the floor.
Expert Q&A: Deep Dive
Q: ERPNext already has workstations, operations, and a production planning tool. Why add a separate finite capacity scheduler?
A: Because ERPNext plans capacity as one operation at a time on one workstation, which is the right default for a small shop but not for one with parallel identical machines, sequence-dependent changeovers, and skilled operators. EDGEBIC loads those constraints and solves the finite capacity question across every open work order at once: three identical CNC units modeled as one work center with three instances, a furnace that runs one job per day, a paint line where going light to dark costs four hours of changeover. ERPNext stays the system of record for items, stock, and orders. EDGEBIC is the compute layer that answers which job fits where and what promise dates actually hold, and it reads what ERPNext already exports.
Q: We export ERPNext data by building report views and downloading them. Do those work as import sources, headers and all?
A: Yes, and the report-view download is the intended source. When you build a report view, choose the columns EDGEBIC needs, and download to CSV or Excel, the mask reads it directly: header row on, drag each heading onto its field, save the mask. If a scheduled export ever lands without a header row, the mask has a header-off mode that maps by column position instead, which is the setting for a raw extract. The only discipline for a positional export is that the column order must stay fixed, because a reordered column silently maps the wrong data rather than failing. For a hand-run report-view download, the header-on mode is simpler and safer.
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
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.
Share this article
Related Articles
Connecting EDGEBIC to Your ERP Database With a SQL Source
How to point a scheduled EDGEBIC integration at a read-only ERP query instead of a file: testing the connection, previewing columns, checking the mask fits, and the stored-password rule that catches most teams out.
EDGEBIC ERP Integration: The Complete Guide
How EDGEBIC integrates with any ERP: eight import masks, three source options, a documented data mapping, and the weekly rhythm that keeps a finite capacity schedule current.
Closing ERP Work Orders That EDGEBIC Still Thinks Are Open
Your ERP closing a work order is invisible to EDGEBIC. There is no status column on the order mask, and a job whose every step is done is not closed automatically. Here is the closing pass that keeps your numbers honest.
