ERP migration

Migrate from Atlas ERP to Epicor Prophet 21

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 logo

Atlas ERP

Source

Epicor Prophet 21

Destination

Epicor Prophet 21 logo

Compatibility

88%

14 of 16

objects map 1:1 between Atlas ERP and Epicor Prophet 21.

Complexity

BStandard

Timeline

6-10 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Atlas ERP logo

Atlas ERP

What's pushing teams away

  • The platform is narrowly known in Bulgarian and Eastern European markets, making it difficult to hire staff already familiar with Atlas ERP compared to more globally distributed systems.
  • As a client-server on-premises system, it lacks the automatic updates, mobile-first UX, and remote-access simplicity of cloud-native ERP competitors, driving teams toward SaaS alternatives.
  • Custom procedure development, while flexible, becomes a long-term maintenance risk when the original developer is no longer available to support bespoke code written for the MS SQL layer.
  • Integration with modern third-party SaaS tools (Shopify, Stripe, Salesforce) requires custom middleware or API workarounds since there is no native connector ecosystem.
  • Support responsiveness is limited to business hours in a single time zone, which frustrates companies with global operations or after-hours manufacturing runs.

Choosing

Epicor Prophet 21 logo

Epicor Prophet 21

What's pulling them in

  • Industry-specific design for wholesale distributors, not a general-purpose ERP repurposed for distribution — distributors choose P21 because it matches their replenishment, kitting, and counter-sale workflows out of the box.
  • Strong inventory control with automated replenishment, lot and serial tracking, and multi-warehouse management appeals to distributors with complex stock requirements and tight margin pressure.
  • Responsive customer support cited across G2 and Gartner reviews, with Epicor's 90% retention rate reflecting long-term customer satisfaction in a market where switching costs are high.
  • Cloud deployment on Microsoft Azure provides the flexibility to scale user counts and warehouse locations without on-premise infrastructure investment.
  • The Software Development Kit lets distributors personalize P21 to their specific business processes without modifying the application source code, preserving upgrade paths.

Object mapping

How Atlas ERP objects map to Epicor Prophet 21

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

maps to

Epicor Prophet 21

AccountMaster

1:1
Fully supported

Atlas 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

maps to

Epicor Prophet 21

Company + Plant

1:1
Fully supported

Atlas 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

maps to

Epicor Prophet 21

Warehse

1:1
Fully supported

Atlas 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

maps to

Epicor Prophet 21

Part

1:1
Fully supported

Atlas 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

maps to

Epicor Prophet 21

PartBom

1:1
Fully supported

Atlas 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

maps to

Epicor Prophet 21

JobOper

1:1
Fully supported

Atlas 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

maps to

Epicor Prophet 21

JobHead + JobMtl + JobOper

1:many
Fully supported

Atlas 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

maps to

Epicor Prophet 21

OrderHed + OrderDtl

1:1
Fully supported

Atlas 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

maps to

Epicor Prophet 21

ReqPOHeader + PODetail

1:1
Fully supported

Atlas 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

maps to

Epicor Prophet 21

Customer + ShipTo

1:1
Fully supported

Atlas 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

maps to

Epicor Prophet 21

EmpBasic

1:1
Fully supported

Atlas 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

maps to

Epicor Prophet 21

PrWrkCmpr and payroll detail records

1:1
Fully supported

Atlas 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

maps to

Epicor Prophet 21

GLJrnHed + GLJrnLine

1:1
Fully supported

Atlas 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

maps to

Epicor Prophet 21

Support案件

1:1
Fully supported

Atlas 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

maps to

Epicor Prophet 21

UD fields on Part, OrderHed, JobHead, EmpBasic

lossy
Mapping required

User-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

maps to

Epicor Prophet 21

Epicor Attachment (Document REFERENCE)

1:1
Fully supported

Documents 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.

Gotchas + challenges

What specifically takes care here

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 logo

Atlas ERP gotchas

High

No public API — migration requires direct SQL read

High

Automatic inter-module posting creates duplicate ledger entries

Medium

Holding structure is stored as a self-referential company table

Medium

BOM and routing data live in separate tables from item masters

Medium

Custom fields not surfaced in the standard export UI

Epicor Prophet 21 logo

Epicor Prophet 21 gotchas

High

Third-party bolt-on integrations complicate migration scope

High

Dirty data without standardized processes compounds migration risk

Medium

SDK customizations and BPMs may not survive platform upgrades

Medium

Report-based export only for non-technical users

Low

Per-user pricing model requires accurate user count before migration planning

Pair-specific challenges

  • Atlas ERP has no public API — migration requires direct SQL read

    Atlas ERP exposes no documented REST or SOAP API. All migrations must read directly from the MS SQL Server database using a privileged SQL account with db_datareader permission scoped to the Atlas database. We request scoped credentials that cannot write to the source system. If the customer cannot provide direct database credentials, migration is blocked until an exception is granted or a workaround export is coordinated with their IT team. This adds an IT coordination step that cloud-to-cloud migrations do not require.

  • Auto inter-module posting creates duplicate ledger entries

    Every transaction in the Sales, Purchasing, Warehouses, Production, and Payroll modules in Atlas automatically generates journal entries in the Finance module. When we migrate both the operational records (Orders, Productions, Payroll runs) AND the finance records together, Epicor's automatic posting will create duplicate ledger rows. We solve this by migrating operational modules first with the auto-posting flag suppressed, then migrating finance records only for closed historical periods. The open period is left blank in Epicor to post fresh after go-live. If this sequencing is skipped, the customer will see inflated GL balances for every account that received both a migrated ledger entry and a live system re-post.

  • Epicor Kinetic, Prophet 21, and E10 have different schemas

    Epicor has shipped under multiple product lines with different database schemas: Epicor Kinetic (cloud), Epicor Prophet 21 (distribution-focused), and legacy E10/Vantage (older on-premises). The same business object may have a different table name, column name, or relationship structure across versions. We confirm the target Epicor version and edition during scoping, run a schema discovery against the destination tenant, and apply a version-specific mapping layer so that PartBom in one Epicor version maps to the correct table in another. Migrations attempted without version-specific schema mapping result in 15-40% record rejection at first insert.

  • Large historical data volume causes Epicor performance degradation

    Epicor databases for mid-market manufacturers typically hold years of production history, inventory movements, WIP activity, job logs, audit trails, and thousands of attachments across dozens of modules, UD tables, and custom business objects. When all this data is loaded into a new Epicor environment during migration, performance drops, implementation timelines extend, and storage and licensing costs rise. We apply a phased archival strategy: closed-period history goes into a searchable compliance archive, and only open and current-period records go into the live Epicor tenant. The archive remains queryable for audit and customer inquiry without inflating the Epicor database size.

  • BPM workflows and custom procedures do not migrate as code

    Atlas BPM workflows, custom MS SQL stored procedures written by AS Systems, and inter-module posting rules are not transferable to Epicor Kinetic as functional code. These are documented in the migration handoff package with a written description of each automation's trigger, conditions, and actions, along with a recommended Epicor equivalent (Business Activity Management rules, Kinetic REST webhooks, or BPM triggers). The customer's Epicor admin or an implementation partner rebuilds them post-migration. We do not migrate BPM as code because the execution models are fundamentally incompatible across platforms.

Migration approach

Six steps for a successful Atlas ERP to Epicor Prophet 21 data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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

Context on both ends of the pair

Atlas ERP logo

Atlas ERP

Source

Strengths

  • MS SQL Server foundation provides familiar tooling, strong transactional integrity, and straightforward backup-and-restore for IT teams already running the Microsoft stack.
  • Modules share a single database with automatic inter-module posting, ensuring that sales, purchasing, inventory, and finance stay in sync without manual reconciliation entries.
  • The holding structure and multi-company support with inter-company transaction handling is built into the core data model rather than bolted on as an afterthought.
  • Per-user pricing that decreases at higher tiers makes it cost-predictable for growing mid-market companies without per-transaction or per-module surprise billing.
  • Production planning, BOM management, and warehousing are integrated natively rather than requiring a separate manufacturing module or third-party add-on.

Weaknesses

  • No publicly documented REST or GraphQL API — all data access requires direct MS SQL Server connectivity, limiting integration options for cloud-first or SaaS-centric architectures.
  • The client-server architecture means no real multi-device, mobile-native experience; remote users typically rely on VPN or remote desktop access.
  • Customer reviews and community content are extremely scarce, making independent evaluation of real-world reliability and support quality difficult before committing.
  • The platform appears to serve almost exclusively the Bulgarian and Eastern European market, creating long-term vendor-lock-in risk if AS Systems reduces investment or support.
  • Customizations live in MS SQL stored procedures, which are difficult to version-control, audit, and port to newer versions of the application during upgrades.
Epicor Prophet 21 logo

Epicor Prophet 21

Destination

Strengths

  • Purpose-built for wholesale distribution with industry-specific replenishment, kitting, and counter-sale workflows out of the box.
  • Multi-warehouse management with bin locations, cross-docking, and real-time inventory visibility across all warehouse locations.
  • Automated replenishment engine with demand-based and min-max planning reduces stockouts and overstock carrying costs.
  • AI-infused reporting via Epicor Prism provides Gen AI-driven insights into ERP data without requiring a BI team.
  • Strong customer retention at 90% and a 50-year track record in the distribution vertical provides long-term vendor stability.

Weaknesses

  • High total cost of ownership — per-user pricing of $150-200/month plus $10K-$500K implementation creates significant budget commitment for small and mid-market distributors.
  • Customization via SDK requires technical expertise and introduces upgrade risk when custom code conflicts with new P21 releases.
  • Report generation performance is a known pain point — multiple users report system freezes during large or complex report exports.
  • Third-party bolt-on reliance for functionality that competitors include natively increases integration complexity and total solution cost.
  • Limited public API documentation — developers building custom integrations report difficulty finding P21 API authentication methods and endpoint specifications.

Complexity grading

How hard is this migration?

Standard ERP migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Atlas ERP and Epicor Prophet 21.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Atlas ERP: Not publicly documented.

  • Data volume sensitivity

    B

    Atlas ERP doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Atlas ERP to Epicor Prophet 21 migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Atlas ERP to Epicor Prophet 21 data migrations

Answers to the questions buyers ask most during Atlas ERP to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Atlas ERP to Epicor ERP migrations typically take six to ten weeks for single-entity mid-market companies with clean item masters, open production orders, and well-structured COA. Complex migrations with multi-level BOM hierarchies (50+ BOM levels), large production order histories spanning multiple years, intricate holding structures with inter-company settlements, or extensive custom field schemas requiring manual companion-table inspection move to twelve to twenty weeks. The Atlas source-side extraction from MS SQL Server and the BOM/routing extraction from companion tables are the primary timeline drivers, not the Epicor API load itself.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Atlas ERP.
Land in Epicor Prophet 21, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day