ERP Integration (EDGEBIC)

ProShop to EDGEBIC: The Data Mapping Reference

User Solutions TeamUser Solutions Team
|
10 min read

Mapping ProShop data into EDGEBIC is a column-mapping exercise rather than a development project: you export parts, work centers, routings, open orders, and optionally logged hours to Excel or CSV, then drag each source column heading onto the matching EDGEBIC field once and save it as a reusable import mask. This reference lists what maps to what, which columns are mandatory, how unit conversion and blank cells behave, and what every row outcome means when a run finishes.

EDGEBIC by User Solutions integrates with ProShop through those masks rather than a certified connector, so nothing is installed inside the ERP and nothing enters its upgrade path. If you have not read the end-to-end version, start with the complete ProShop integration guide. This post is the lookup table you keep open while building masks.

The load order

Import in dependency order. Later files reference records that earlier files created.

#ProShop exportEDGEBIC entity typeDepends on
1PartsProductNothing
2Work centersWorkcenterNothing
3Routings / operationsBOR (bill of routing)Parts and work centers
4Open ordersSalesOrderParts
5Logged hours (optional)ActualsScheduled jobs

Two entity types have no ProShop origin and are built from a spreadsheet you write yourself: Shift (one row per shift with a start and end pair per weekday, a blank pair meaning the day is off) and PlantHoliday (closures by name and date). These two define the calendar every date is computed against, so they deserve ten careful minutes rather than five.

Auto-create is on by default, so a routing file naming a work center that has not been imported yet creates it on the fly. That is a useful safety net and a poor strategy: an auto-created work center has a name and nothing else, meaning one machine, no shift assignment, and no efficiency. Load the work center file properly first.

Parts to Product

EDGEBIC target fieldMandatorySource column
Product_NameYesThe part number. Natural key, matched case-insensitively
DescriptionDescriptive text
UOMUnit of measure
Unit_Cost, Unit_Price, Lead_Time, CategoryOptional planning and quoting attributes
TypeRaw Material, Work In Process, or Finished Good
Quantity_On_Hand, Supplier, Is_ActiveOptional descriptive columns

Only the part name is required. Everything else can arrive later through a second, narrower refresh file, because blank cells preserve existing values on an update run. Watch identifier formatting across exports: matching ignores case but not a revision suffix, so decide once whether the revision belongs in the scheduling identifier and render it the same way everywhere.

Work centers to Workcenter

This is the file where scheduling accuracy is won or lost, because it carries capacity.

EDGEBIC target fieldMandatoryWhat it drives
NameYesNatural key. Routing steps match on it
Number_Of_InstancesHow many identical machines the center holds. Blank defaults to 1
Capacity, EfficiencyRated capacity and the efficiency applied to it
Setup_Time_HoursDefault setup, overridden per routing step where present
Hourly_RateCost rollups
Is_BottleneckMarks the constraint so the engine can anchor around it
One_Per_Day_FlagOne job per machine per day, for long-changeover centers
Use_Global_ShiftsCalendar assignment
Pieces_Per_Hour, Min_Batch_Size, Max_Batch_SizeRate-based capacity and batching limits
Is_Active, Color, TypeHousekeeping and Gantt color

Number_Of_Instances is the highest-value column on the page and the one most ProShop exports do not carry, because ERP data models generally describe a work center as a capacity figure rather than a count of machines. A cell of two identical machines imported with one instance produces a plan roughly twice too long, and it fails quietly: nothing errors, the dates are simply wrong. Fill it deliberately for every multi-machine center. The arithmetic is in how EDGEBIC calculates work center capacity.

If your export expresses capacity as an available-hours figure that already embeds a machine count, do not carry that number into Capacity unchanged while also setting instances, or you will count the same capacity twice. Pick one representation: instances plus the shift calendar is the one the engine reasons about best.

Machine pools and certified operators have no export column

Two of the settings that most shape an aerospace schedule are configured inside EDGEBIC rather than imported. A work center group is a named pool of interchangeable machines: a routing step bound to a group re-evaluates every member on each reschedule, picks by strategy (earliest completion, primary first, or earliest start), and applies a per-member efficiency factor so a slower machine is chosen only when it still finishes first. Operations already started keep the machine they started on, because recorded work is never moved.

Operator skills are the second. No routing column can say a special process needs a qualified operator on shift, so that requirement is set on the step inside EDGEBIC and applied to every imported order afterward. Import the members as ordinary work centers, then create the group and the skills inside EDGEBIC. See how to create work center groups.

Routings to BOR

EDGEBIC target fieldMandatoryWhat to put in it
End_ProdYesPart number this routing builds
Sub_ProdYesWork center name (operation row) or component part (material row)
Op_FlagYesTrue for an operation, false for a material or component
No_ReqYesHours required per unit
Seq_NoOperation sequence, in gaps of 10
Next_SeqLeave blank; chaining happens automatically
Setup_TimeSetup hours at this step
Queue_TimeBuffer hours before the step may start
Flow_Step, Transit_DaysOverlap between steps, and outside-processing transit time
Parallel_OpParent step's work center name for parallel or alternate steps
Res_MultApplicable machine instances for this step

Op_Flag is the field people get wrong first. True means "this row is an operation running on a work center." False means "this row is a component consumed at this point in the routing." Mixing them produces a routing full of work centers that are actually parts, and it is visible immediately in the graphical designer.

Why the import takes two passes

A routing cannot be written row by row, because op 10 must point at op 20 and op 20 does not exist yet. So the import runs in two passes. Pass one validates each row, resolves or creates the parts and work centers it names, and buffers the row. Pass two groups the buffer by end product, sorts by sequence number, writes the steps, and wires the chain: 10 to 20, 20 to 30, and the terminal step to the finished part so the routing renders connected. Check that visually after the first import: a routing missing its final link draws as a chain floating free of the part it builds.

Two rules follow from the same mechanism. All of one part's steps must travel in one file, because a run wipes and recreates that part's steps on first reference, and splitting across two runs means the second wipe deletes the first run's work. And re-importing is safe for running orders, because every scheduled job carries a frozen snapshot of the routing it was planned with, which in a controlled-process shop matters as much as the schedule itself.

Outside processing maps cleanly as an operation row on a work center that represents the vendor, with the turnaround expressed as transit days. That keeps the outside time visible on the Gantt rather than buried inside one long step.

Orders to SalesOrder

EDGEBIC target fieldMandatorySource
Product_NameYesPart being built
QtyYesOrder quantity
Ref_NoYesOrder number: shared references group into one order, jobs auto-number {Ref}-{line}
Job_DateYesRelease or start date
Due_Date, Order_Date, PriorityPromise, entry, and ranking
Customer_NameAuto-created when missing
Unit_Price, User_NotesOptional

Two mask options control the date logic when the export carries only one date: one treats the job date as the due date, the other derives the job date backward from the due date. Choose the one matching how your export is built, once, on the mask.

Actuals

Job number, work center name, and actual date are mandatory (Job_Number, WorkCenter_Name, Actual_Date). Hours and pieces (Actual_Hours, Actual_Pieces) are both optional, and either can be derived from the other using the operation's rate.

The import always overwrites the days a file carries, so re-running a corrected extract fixes the numbers rather than doubling them. Days a file does not mention are preserved unless you explicitly ask for them to be cleared. Actuals import last, because each row has to find an operation on a job that is already scheduled.

Conversions, blanks, and zeros

SituationBehavior
Minutes in the exportConversion factor 0.016667 on that mask column
Seconds in the exportConversion factor 0.000278
Hours quoted per 100 piecesConversion factor 0.01
Blank cell on an updateExisting value preserved
Zero in a cell on an updateZero is written: it is a value, not a blank
Unmapped columnIgnored entirely
Mandatory field unmappedRun aborts before reading any row
One bad rowFails alone and the run continues, unless you choose to abort on first error

Different columns in the same file can carry different factors, so a routing export mixing per-lot run times with per-changeover setup minutes lands correctly in a single run.

Reading the outcomes

Every row resolves to Created, Updated, Reused, or Failed. Reused is the default for a record that already exists, so a weekly part file of 4,000 rows reporting Created 9, Reused 3,991 is the desired result rather than a failure. When counts look wrong, the per-run log file carries one line per row with the exact reason for every failure, which is the audit record a quality shop wants.

What import cannot bring, and why it matters

The settings that most differentiate a schedule have no column in any ERP export: the sequence-dependent setup matrix, operator skills and certifications, work center group strategies, bottleneck anchoring, and lot streaming transfer batches. Those are configured once in EDGEBIC and then apply to every imported order afterward. The EDGEBIC product overview maps the engine, and the ERP integration architecture explains why one mask design serves every ERP.

The E2 Shoptech and Plex references show how little the method changes from one platform to the next, and the ERP scheduling add-on page frames the category.

Each entity type has a short mandatory list and everything else is optional. Parts need a part name. Work centers need a name. Routings need end product, step name, an operation flag, and hours required. Orders need product, quantity, a reference, and a job date. Actuals need job number, work center name, and the actual date. If a mandatory field is unmapped in the mask, the run aborts before reading a single row.

Use a conversion factor on that mask column. A setup time in minutes becomes hours with 0.016667, and a routing time quoted per 100 pieces becomes per piece with 0.01. The multiplication happens before the value is stored, so the file needs no pre-processing. Factors are saved with the mask, which makes the conversion permanent, repeatable, and auditable through the per-run log.

Dependency order: parts first, then work centers, then routings, then open orders, then actuals. Routings reference both parts and work centers, and orders reference parts, so loading upstream data first stops the auto-create behavior from inventing thin placeholder records. Auto-create is on by default and will fill gaps, but a record created that way carries only the name it was given.

Operator skills and certifications are configured once inside EDGEBIC, not imported from an export, because no ERP column expresses which operator is cleared for which process on which shift. Once set up, a step that requires a certified operator is scheduled only into a shift where one is available, and that constraint applies to every imported order afterward. The import brings the parts, machines, routings, and orders; the certification model is EDGEBIC configuration.

Expert Q&A: Deep Dive

Q: Our part identifiers come out of ProShop with a revision suffix on some exports and without it on others. Will that create duplicate parts?

A: Yes, if the suffix is genuinely part of the string in one file and absent in another. Natural-key lookups ignore case, so WING-RIB-4 and wing-rib-4 resolve to the same record, but WING-RIB-4 and WING-RIB-4-B are different strings and will create two parts. Decide once whether the revision belongs in the scheduling identifier: if two revisions are built by genuinely different routings, give each its own identifier so a routing import wipes and recreates the right one; if they share a routing, strip the revision on export so both resolve to one part. Run a distinct-values check across your part file and routing file before the first import, because a mismatch caught then costs minutes while the same mismatch caught after routings load means a routing chain pointing at a part with no demand.

Q: A special-process step in our routing can only run when a qualified operator is on shift. Do we put that in the routing export, or somewhere else?

A: Somewhere else, because it does not fit a routing column. The routing export carries the step, its work center, hours, and setup; the requirement that a certified operator be present is configured in EDGEBIC as an operator skill on that step. Once configured, the engine will not schedule the step into a shift with no qualified operator available, which closes the common gap where a machine looks free but the person cleared to run the process is not. The routing import and the certification model are separate on purpose: the first is data that moves every week, the second is configuration you set once and rarely touch.

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