ERP migration
Field-level mapping, validation, and rollback between Atlas ERP and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
Atlas ERP
Source
Epicor Prophet 21
Destination
Compatibility
14 of 16
objects map 1:1 between Atlas ERP and Epicor Prophet 21.
Complexity
BStandard
Timeline
6-10 weeks
Overview
Atlas ERP runs on a shared MS SQL Server database with no public API, so every migration requires a privileged SQL read against the Atlas database. The system posts every operational transaction automatically to the Finance module, which means we must migrate operational records first without triggering re-posting, and then handle the open-period finance records after go-live. We walk the self-referential holding company table recursively to preserve subsidiaries and inter-company relationships, and we detect user-defined custom fields via a pre-migration schema diff since they live in companion tables not exposed in the standard UI. Epicor Kinetic (the cloud-facing product) accepts data via REST and SOAP APIs with rate-limit handling; we use batch chunking and parent-record lookup resolution to load Items with BOM explosions, Production Orders with routing steps, and multi-line Sales and Purchase Contracts without triggering Epicor's validation-rule rejections on the first attempt.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Atlas ERP object lands in Epicor Prophet 21, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Atlas ERP
Chart of Accounts
Epicor Prophet 21
AccountMaster
1:1Atlas stores the Chart of Accounts as a flat or hierarchical table in MS SQL with account codes, names, types, and optional cost-center linkage. We extract the full account tree via direct SQL read, preserving parent-child hierarchy, and create corresponding GL AccountMaster records in Epicor with the same account structure. Account codes are mapped 1:1 where possible; if the customer has a non-standard Atlas coding scheme, we apply a code-remapping table during the transform phase before Epicor insert.
Atlas ERP
Holding / Company
Epicor Prophet 21
Company + Plant
1:1Atlas uses a self-referential company table where parent_company_id points to the holding entity. We walk this tree recursively during extraction to identify all subsidiaries and the holding node. In Epicor, we create Company records (for the legal entity) and Plant records (for operating locations) in parent-first order to satisfy foreign-key constraints. Inter-company GL posting settings in Epicor are configured based on the Atlas inter-company transaction flags discovered during schema inspection.
Atlas ERP
Warehouse
Epicor Prophet 21
Warehse
1:1Atlas Warehouses are master-data records with warehouse_id, name, address, and optional cost-center linkage. We export them as-is and create corresponding Warehse records in Epicor, mapping the Atlas warehouse_id to Epicor's WarehseID and the name to WarehseName. If the Atlas warehouse has bin or location sub-records, we also create WhseBin entries in Epicor for the warehouse location hierarchy.
Atlas ERP
Item
Epicor Prophet 21
Part
1:1Atlas Items are product master records with type (stock item, service, non-stock), unit of measure, costing method, and optional site linkage. We extract the part master and map Atlas item_type to Epicor PartType (stock item becomes Stock, non-stock becomes Non-Stock, service becomes Service). PartNumber maps directly from Atlas item_code. Unit of measure from Atlas uom_code maps to Epicor IUM and SalesUM.
Atlas ERP
Bill of Materials
Epicor Prophet 21
PartBom
1:1Atlas BOM lines live in a separate bom_lines table linked by item_code. A naive export of just the item master will miss the entire production capability for manufactured goods. We join the bom_lines table to the item export, extract the full BOM hierarchy (including sub-assemblies with multiple levels), and map each line to Epicor PartMtl records. We preserve the quantity-per and material type, and set PartMtl.Est ScrapPercent from Atlas scrap_rate if present.
Atlas ERP
Routing Steps
Epicor Prophet 21
JobOper
1:1Atlas production routing step definitions are stored in routing_steps companion tables linked by item_code. We extract routing_steps in order sequence and map each step to Epicor JobOper records attached to the JobHead production order. The Atlas work_center_id maps to Epicor ResourceGroupID or ResourceID depending on whether the source is a group or an individual resource.
Atlas ERP
Production Order
Epicor Prophet 21
JobHead + JobMtl + JobOper
1:manyAtlas Production Orders carry a header with order number, status, planned start and end dates, and the linked item_code. We extract the JobHead record and also pull the associated BOM lines (bom_lines) and routing steps (routing_steps) that were active at the time of order creation, inserting them as PartMtl and JobOper respectively. Status mapping: Atlas planned/released/in-progress/closed map to Epicor JobHead.JobReleased/JobComplete/JobClose. Open production orders are migrated with their full material and operation structure; closed orders migrate as historical job records.
Atlas ERP
Sales Order
Epicor Prophet 21
OrderHed + OrderDtl
1:1Atlas Sales Orders use a header-and-line table structure with order number, customer link, order date, and line items covering item_code, quantity, price, discount, and tax. We extract the full order header and line detail together, preserving open/closed status, and map OrderHed to Epicor OrderHed with CustomerNum resolved via a customer dedupe lookup. OrderDtl lines carry PartNum, UnitPrice, Discount, and OrderQty mapped directly.
Atlas ERP
Purchase Contract
Epicor Prophet 21
ReqPOHeader + PODetail
1:1Atlas Purchase Contracts and planned deliveries are stored in the Purchasing module with contract headers, line items, supplier linkage, and delivery schedule dates. We extract contract headers as Epicor POHeader records (with PORel for scheduled delivery dates) and map line items to PODetail. Pending delivery lines are flagged in the migration report so the customer can verify open PO quantities against supplier confirmations at go-live.
Atlas ERP
Customer / CRM
Epicor Prophet 21
Customer + ShipTo
1:1Atlas CRM records include company name, contact persons, addresses, sales responsible person, and lifecycle stage. We export the full contact hierarchy and map to Epicor Customer records with ShipTo addresses. The Atlas contact person becomes a CustCnt record linked to the Customer. The Atlas responsible person (sales owner) is resolved against the User mapping and set as the Epicor SalesRepCode on the Customer record.
Atlas ERP
Employee
Epicor Prophet 21
EmpBasic
1:1Atlas Employee records include name, department, position, employment status, and salary grade. We map these to Epicor EmpBasic with department from Atlas dept_name mapped to Epicor EmpBasic.Department, and employment status (active/inactive/terminated) mapped to the Epicor flag fields. The Atlas employee_number maps to EmpBasic.EmpID as the dedupe key.
Atlas ERP
Payroll Run
Epicor Prophet 21
PrWrkCmpr and payroll detail records
1:1Atlas payroll history is stored in a separate payroll module with period-based gross/net breakdown, deductions, and employer contributions. We export the run summary and line-by-line detail and map to Epicor's payroll work file (PrWrkCmpr) structure. Gross pay, net pay, and deduction codes are mapped to the Epicor pay code schema. Note that Epicor payroll configuration requires the customer to define the pay code set before payroll records can be imported; we deliver a payroll field map as part of the migration package.
Atlas ERP
Journal Entry
Epicor Prophet 21
GLJrnHed + GLJrnLine
1:1Atlas posts all module transactions automatically to the Finance module, so journal entries exist as both the original operational record (Sales Order, Production Order, Payroll run) and the corresponding GL posting. We extract journal_lines and journal_headers tables together and map to Epicor GLJrnHed and GLJrnLine. Because we migrate operational records separately and suppress re-posting, we import only the historical ledger records for closed periods, and leave the current open period to post fresh in Epicor after go-live to avoid double-counting.
Atlas ERP
Service Desk Ticket
Epicor Prophet 21
Support案件
1:1Atlas Service Desk tickets carry status, priority, assignee, and conversation history. We export the ticket header, linked SLA terms (which are not transferable and must be re-created in Epicor), and conversation threads. SLA configurations and escalation rules are documented in the handoff package for the customer's Epicor admin to rebuild. Ticket status values map to Epicor HDCase status codes.
Atlas ERP
Custom Properties
Epicor Prophet 21
UD fields on Part, OrderHed, JobHead, EmpBasic
lossyUser-defined fields added through Atlas system administration are stored in companion tables alongside core entity tables and are not exposed in the standard UI export. We detect these shadow columns by running a pre-migration schema diff against the base Atlas table definitions. Each discovered extra column is mapped to the equivalent Epicor UD field (Part.UDField, OrderHed.UDField, JobHead.UDField, EmpBasic.UDField) during import. Customers must confirm any known custom fields during scoping so no shadow column is missed.
Atlas ERP
Attachment / Document
Epicor Prophet 21
Epicor Attachment (Document REFERENCE)
1:1Documents linked to Atlas orders, items, employees, or production orders are stored on the file system or in varbinary columns in MS SQL. We extract the binary blobs and recreate them as file attachments in Epicor, linked to the corresponding entity record. Epicor's document management supports PDF, image, and Office file types. Large binary attachments (over 25 MB per file) are flagged for chunked extraction to avoid SQL Server memory pressure during read.
| Atlas ERP | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Chart of Accounts | AccountMaster1:1 | Fully supported | |
| Holding / Company | Company + Plant1:1 | Fully supported | |
| Warehouse | Warehse1:1 | Fully supported | |
| Item | Part1:1 | Fully supported | |
| Bill of Materials | PartBom1:1 | Fully supported | |
| Routing Steps | JobOper1:1 | Fully supported | |
| Production Order | JobHead + JobMtl + JobOper1:many | Fully supported | |
| Sales Order | OrderHed + OrderDtl1:1 | Fully supported | |
| Purchase Contract | ReqPOHeader + PODetail1:1 | Fully supported | |
| Customer / CRM | Customer + ShipTo1:1 | Fully supported | |
| Employee | EmpBasic1:1 | Fully supported | |
| Payroll Run | PrWrkCmpr and payroll detail records1:1 | Fully supported | |
| Journal Entry | GLJrnHed + GLJrnLine1:1 | Fully supported | |
| Service Desk Ticket | Support案件1:1 | Fully supported | |
| Custom Properties | UD fields on Part, OrderHed, JobHead, EmpBasiclossy | Mapping required | |
| Attachment / Document | Epicor Attachment (Document REFERENCE)1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Atlas ERP gotchas
No public API — migration requires direct SQL read
Automatic inter-module posting creates duplicate ledger entries
Holding structure is stored as a self-referential company table
BOM and routing data live in separate tables from item masters
Custom fields not surfaced in the standard export UI
Epicor Prophet 21 gotchas
Third-party bolt-on integrations complicate migration scope
Dirty data without standardized processes compounds migration risk
SDK customizations and BPMs may not survive platform upgrades
Report-based export only for non-technical users
Per-user pricing model requires accurate user count before migration planning
Pair-specific challenges
Migration approach
Discovery and source audit
We connect to the Atlas MS SQL Server database using read-only credentials scoped to the Atlas database and run a full schema inventory across all modules: Finance (COA, journals), Warehouses, Items, BOM lines, Routing steps, Production Orders, Sales Orders, Purchase Contracts, Employees, Payroll runs, and CRM. We run a pre-migration schema diff to detect any user-defined companion tables not exposed in the standard Atlas UI. We also inventory the holding company tree by querying the self-referential parent_company_id column. The discovery output is a written migration scope document with record counts per entity, any detected data quality issues, and a confirmation of the target Epicor version and edition.
Destination schema design
We design the Epicor destination schema based on the confirmed Epicor version (Kinetic, Prophet 21, or E10). This includes creating Plant and Company records in the correct parent-first order, provisioning Part records with PartType and unit-of-measure settings, defining the BOM structure on PartBom, configuring the GL Chart of Accounts with the correct account types and hierarchies, and mapping Atlas custom fields to Epicor UD fields on each relevant entity. We configure inter-company posting settings if the Atlas holding structure has active inter-company transactions.
Data extraction from Atlas SQL
We extract data directly from the Atlas MS SQL Server database using SELECT queries in dependency order: Chart of Accounts first (no dependencies), then Company/Holding structure, Warehouses, Items, BOM lines joined to item masters, Routing steps, Employees, then transactional records (Production Orders, Sales Orders, Purchase Contracts, Payroll runs, Journal Entries). We extract attachments as binary blobs in separate file-level exports. Each extraction emits a row-count manifest. Any Atlas record flagged as deleted or archived in the source is excluded from the migration scope.
Transform, clean, and stage
We apply the field-mapping transformation layer to the extracted Atlas data: Atlas item_type to Epicor PartType, Atlas BOM structure to Epicor PartMtl, Atlas routing_steps to Epicor JobOper, Atlas journal entries to Epicor GLJrnHed/GLJrnLine, and Atlas custom field columns to Epicor UD fields. We deduplicate against any auto-generated ledger rows that would conflict with operational records already migrated. We flag and review duplicate customer accounts, duplicate part numbers, and orphaned records (employees with no department, orders with no customer) before staging. The staged dataset is validated against referential integrity constraints before the next step.
Sandbox migration and reconciliation
We run a full migration into an Epicor test or sandbox environment using production-equivalent data volume. The customer's operations lead and finance lead reconcile record counts (Parts in, Warehouses in, Production Orders in, GL entries in), spot-check 25-50 records against the Atlas source, and validate that BOM structures are complete on at least five randomly selected manufactured parts. Any mapping corrections are applied to the transformation layer and the sandbox migration is re-run. No production migration proceeds until the customer signs off on the sandbox reconciliation report.
Production migration in dependency order
We run the production migration in this sequence: Company and Plant first (for holding structure), then Warehouses, then Parts (with PartBom), then Employees, then Sales Orders, Purchase Contracts, Production Orders (with JobMtl and JobOper), then Journal Entries for closed periods only, then Service Desk Tickets, then UD fields, then file attachments. We suppress auto-posting on the finance layer throughout the migration window. Each phase emits a row-count reconciliation report. Epicor's REST API rate limits (600 requests per minute per session) are respected via batch chunking and exponential backoff. Any record rejected by Epicor's validation rules is logged to a non-conforming records queue for customer review and correction before retry.
Cutover, validation, and handoff
We freeze Atlas writes during cutover, run a final delta migration of any records modified during the migration window, then enable Epicor as the system of record. We deliver the written BPM workflow and custom procedure inventory with Epicor equivalent recommendations. We provide the UD field mapping sheet, the BOM completeness report, and the GL reconciliation report comparing Atlas ledger totals to Epicor GL balances for each account. We support a one-week hypercare window for reconciliation issues raised by the operations or finance team. We do not rebuild Atlas BPM as Epicor Business Activity Management rules inside the migration scope; that work is a separate engagement with the customer's Epicor admin or implementation partner.
Platform deep dives
Atlas ERP
Source
Strengths
Weaknesses
Epicor Prophet 21
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 2 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Atlas ERP and Epicor Prophet 21.
Object compatibility
2 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Atlas ERP: Not publicly documented.
Data volume sensitivity
Atlas ERP doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Atlas ERP to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your Atlas ERP to Epicor Prophet 21 migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Atlas ERP
Other ways to arrive at Epicor Prophet 21
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.