ERP migration
Field-level mapping, validation, and rollback between Aptean Compiere ERP and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
Aptean Compiere ERP
Source
Epicor Prophet 21
Destination
Compatibility
11 of 15
objects map 1:1 between Aptean Compiere ERP and Epicor Prophet 21.
Complexity
BStandard
Timeline
5-8 weeks
Overview
Moving from Aptean Compiere ERP to Epicor ERP is a cross-platform schema translation that requires resolving Compiere's three-tier entity hierarchy (System, Client, Organization) against Epicor's Company-Site-Warehouse structure. Compiere Business Partners (unified customer and vendor entity) split into Epicor Customer and Supplier records. Products map to Epicor Part records with multi-level BOMs preserved through Epicor's PartMfgLimits and JobMtl tables. Warehouse Locators with up to five user-defined dimensions (aisle, bin, rack, level, bay) must be flattened into Epicor's two-level Warehouse and Bin structure. Price Lists map to Epicor's PriceLDisc and PriceLBrk tables. We do not migrate Compiere Workflows, automations, or custom application code. We deliver a written inventory of these for the customer's Epicor admin to rebuild post-migration. Historical transaction carry-over requires a disciplined scope agreement upfront because Aptean's own implementation guidance warns that lifting all legacy records without cleansing creates duplicate, incomplete, or obsolete data that slows cutover and undermines user confidence in the new system.
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 Aptean Compiere 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.
Aptean Compiere ERP
Business Partner
Epicor Prophet 21
Customer and Supplier
1:manyAptean Compiere's unified Business Partner entity covers both customers and vendors in a single table (C_BPartner). During migration, we split the source records into Epicor Customer and Supplier tables. Customer records carry the Compiere BP location, tax ID, and credit limit fields. Supplier records carry vendor payment terms and Remit-To address data. BP Group assignments (C_BP_Group) map to Epicor's CustomerType or SupplierType codes, and the IsCustomer / IsVendor flags on the source record determine which Epicor tables receive each row.
Aptean Compiere ERP
Organization (multi-org hierarchy)
Epicor Prophet 21
Company and Site
1:1Compiere's three-tier System-Client-Organization hierarchy maps to Epicor's Company-Site structure. Each Compiere Organization under the Client becomes an Epicor Site within the target Company. We preserve the Organization name as the Site description and map the AD_Org_ID reference to the Epicor Plant table (Plant table for manufacturing sites or Site for distribution-only sites). Multi-org security boundaries from Compiere (role-based access per Organization) do not carry over; we document the source Org-to-role mapping for the customer's Epicor admin to reconfigure in Epicor's Role and Company-Plant security model.
Aptean Compiere ERP
Product
Epicor Prophet 21
Part
1:1Compiere Products map to Epicor Part records. The M_Product_ID becomes PartNum; ProductType (Item, Resource, Service, Online) maps to the Epicor PartType field. The source Product Category (M_Product_Category_ID) maps to Part.ClassID and the Epicor PartClass table. Stocked and non-stocked product types carry over as TypeCode values. We preserve the source's UPC/EAN from the product barcode table as the Part.SNMask where applicable.
Aptean Compiere ERP
Bill of Materials (multi-level)
Epicor Prophet 21
PartMfgLimits and JobMtl / PartMtl
1:1Compiere multi-level BOMs map to Epicor's manufacturing BOM structure. Stocked BOMs in Compiere become JobMtl entries under a Job record in Epicor; non-stocked BOMs become PartMtl (kit) entries on the Part record. We traverse the Compiere PP_Product_BOM hierarchy up to the configured depth (default 10 levels) and reconstruct the Epicor JobMtl or PartMtl lines in order, setting the QtyPer and BukcetAssemblySeq fields to match the source. Phantom BOMs in Compiere (phantom flag PP_BOMType) map to Epicor JobAsmbl records with the Phantom field set.
Aptean Compiere ERP
Warehouse
Epicor Prophet 21
Warehouse
1:1Compiere Warehouses map to Epicor Warehouse records. The M_Warehouse_ID and Warehouse Name carry over. Compiere's warehouse-level attributes (including IsInTransit and IsActive flags) migrate to the Epicor Warehouse table fields. We create one Epicor Warehouse per source Compiere warehouse during the import phase.
Aptean Compiere ERP
Locator (5-dimension)
Epicor Prophet 21
Warehouse and Bin
lossyCompiere Locators support up to five user-defined dimension fields (Aisle, Bin, Rack, Level, Bay) per warehouse. Epicor's bin structure is a two-level Warehouse-Bin hierarchy with no native dimension extensibility. We flatten the five Compiere dimensions into a single BinNum field using a configurable delimiter pattern (e.g., Aisle-Bin-Rack-Level-Bay = A01-B02-R03-L04-B05). The customer selects the delimiter during scoping. We preserve the full five-dimension source values in a custom UD field on the Epicor Bin record so the admin can query by any original dimension after cutover. This is one of the most transformation-intensive mappings in the migration and requires a dedicated data mapping pass.
Aptean Compiere ERP
Purchase Price List
Epicor Prophet 21
PriceLDisc (Vendor)
1:1Compiere Purchase Price Lists map to Epicor PriceLDisc records with PriceLCode pointing to a vendor-specific price code. The source C_BPartner_ID links the price list to the Vendor (Supplier) record in Epicor. Effective dates (M_PriceList_Version.ValidFrom) map to Epicor PricePerCase dates for contract pricing validity. We map M_PriceList line records (M_ProductPrice) to PriceLDisc lines with the correct breakQty and UnitPrice values.
Aptean Compiere ERP
Sales Price List
Epicor Prophet 21
PriceLDisc (Customer)
1:1Compiere Sales Price Lists map to Epicor PriceLDisc records with PriceLCode pointing to a customer or general price code. Customer-specific price lists in Compiere (where the price list is assigned to a C_BPartner) become Epicor PriceLDisc records scoped to the customer number. General sales price lists become Epicor PriceLDisc records with no customer restriction. Date-controlled pricing in Compiere (special sales initiatives with effective dates) maps to Epicor's effective and expiration date fields on the PriceLDisc header.
Aptean Compiere ERP
Chart of Accounts (AccountingXX.csv)
Epicor Prophet 21
COASeg and GLAccount
lossyCompiere uses country-specific AccountingXX.csv (e.g., AccountingUS.csv) as the import basis for the Chart of Accounts. We parse the source CSV, preserving the natural account structure, account type (AccountType column), and default mappings (Account_Default column for mandatory accounts). These import into Epicor's GLAccount table via the Chart of Accounts segment definition (COASeg) and account code structure. Compiere's Accounting Schema framework (multiple accounting standards per organization) maps to Epicor's GLBook table, where each accounting schema becomes a GLBook with the appropriate fiscal calendar and currency settings. This mapping requires the customer to confirm whether they use a single Epicor GLBook (single accounting standard) or multiple GLBooks (multi-GAAP or multi-subsidiary reporting).
Aptean Compiere ERP
Open AP / AR
Epicor Prophet 21
APInvoice / ARInvoice
1:1Open Accounts Payable records from Compiere (C_Invoice with C_BPartner_ID where IsPaid=N) migrate to Epicor APInvoice header records and APInvoiceDtl lines. The Compiere C_InvoicePaySchedule table (payment schedule) maps to Epicor's terms and due date logic. Open Accounts Receivable records (C_Invoice with IsSOTrx=Y and IsPaid=N) migrate to Epicor ARInvoice header and ARInvoiceDtl lines. We migrate open invoices only; historical closed invoices are scoped separately to avoid Epicor's invoice reconciliation conflicts on closed periods. The migration team coordinates with the customer's finance lead to agree on the open-item cutoff date before this phase runs.
Aptean Compiere ERP
Product Category
Epicor Prophet 21
PartClass
1:1Compiere Product Categories (M_Product_Category) map to Epicor PartClass records. The Product Category's default expense and revenue account references from Compiere map to Epicor's PartClass.Default LaborAccount, BurdenAccount, MaterialBurdenAccount, and OtherAccount fields. Discount structures set globally on the Compiere Product Category inherit into Epicor's PartClass pricing defaults, and the customer reconciles the pricing inheritance model during post-migration configuration.
Aptean Compiere ERP
User and Role (3-level security)
Epicor Prophet 21
User, Employee, Role
1:1Compiere's three-tier role security (System, Client, Organization level roles) maps to Epicor's Role and Employee security model. We extract AD_User and AD_Role records and match Compiere users to Epicor Users by email. The source role-per-Organization assignments map to Epicor Plant or Site-level security roles. Users without a matching Epicor employee record go to a reconciliation queue for the customer's Epicor admin to provision before record import. We do not migrate Compiere role permissions as code; we deliver a written role matrix document for the admin to reconfigure in Epicor Security Administration.
Aptean Compiere ERP
Sales Order (open)
Epicor Prophet 21
OrderHed and OrderDtl
1:1Open Sales Orders from Compiere (C_Order with DocStatus in Draft, In Progress, or Completed) migrate to Epicor OrderHed header and OrderDtl lines. Compiere order lines (C_OrderLine) map to Epicor OrderDtl with LineNumber, PartNum, SellingQuantity, UnitPrice, and Tax amounts preserved. The source C_BPartner_Location_ID (ship-to address) maps to the Epicor ShipToNum reference on OrderHed. We do not migrate completed or closed Compiere orders unless the customer explicitly scopes historical order carry-over; Epicor's fiscal period and GL date constraints on historical order import require a separate agreement during scoping.
Aptean Compiere ERP
Purchase Order (open)
Epicor Prophet 21
POHeader and PODetail
1:1Open Purchase Orders from Compiere (C_Order with IsSOTrx=N and DocStatus not Closed) migrate to Epicor POHeader and PODetail. The Compiere vendor (C_BPartner_ID as vendor) maps to Epicor's VendorNum reference. PO line quantities and prices carry over from Compiere's C_OrderLine. Line delivery dates from Compiere's DeliveryVia and ShipPer rules map to Epicor's PromiseDate and DueDate fields. We scope open purchase orders only; closed and received-in-full POs are excluded to avoid Epicor's receiving validation conflicts.
Aptean Compiere ERP
Custom Object / User-Defined Fields
Epicor Prophet 21
UD Field or Custom Table (UD##)
lossyCompiere Active Data Dictionary custom fields (columns added via the AD Column table with IsCustom=Y) migrate to Epicor User Defined fields. We audit the Compiere AD_Column and AD_Table metadata to identify every custom column, extract its data type, and create an equivalent Epicor UD field (e.g., Character01, Number01, CheckBox01, or a formal UD Field definition via Epicor's Customization Editor). Compiere custom tables created via the Visual Dictionary Editor map to Epicor UD## tables. We pre-create the Epicor UD schema before any record migration so that parent-record UD field references resolve at import time.
| Aptean Compiere ERP | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Business Partner | Customer and Supplier1:many | Fully supported | |
| Organization (multi-org hierarchy) | Company and Site1:1 | Fully supported | |
| Product | Part1:1 | Fully supported | |
| Bill of Materials (multi-level) | PartMfgLimits and JobMtl / PartMtl1:1 | Fully supported | |
| Warehouse | Warehouse1:1 | Fully supported | |
| Locator (5-dimension) | Warehouse and Binlossy | Fully supported | |
| Purchase Price List | PriceLDisc (Vendor)1:1 | Fully supported | |
| Sales Price List | PriceLDisc (Customer)1:1 | Fully supported | |
| Chart of Accounts (AccountingXX.csv) | COASeg and GLAccountlossy | Fully supported | |
| Open AP / AR | APInvoice / ARInvoice1:1 | Fully supported | |
| Product Category | PartClass1:1 | Fully supported | |
| User and Role (3-level security) | User, Employee, Role1:1 | Fully supported | |
| Sales Order (open) | OrderHed and OrderDtl1:1 | Fully supported | |
| Purchase Order (open) | POHeader and PODetail1:1 | Fully supported | |
| Custom Object / User-Defined Fields | UD Field or Custom Table (UD##)lossy | 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.
Aptean Compiere ERP gotchas
Service Packs gated behind Enterprise Edition
Multi-organization hierarchy affects data scoping
Oracle and PostgreSQL database edition differences
Historical transaction carry-over without cleansing
Unclear API rate limits and bulk endpoint availability
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 edition audit
We audit the source Compiere instance: edition tier (Community, Professional, or Enterprise), database backend (Oracle XE, Oracle SE/EE, or Postgres Plus Advanced Server), multi-org structure (number of Organizations under the Client), BOM complexity (maximum depth and total BOM count), warehouse and locator dimension count, and open transaction volume. We also confirm whether Aptean Connect access is available for Enterprise-tier migrations where migration tooling may reduce database-direct export complexity. The discovery output is a written migration scope, a data volume estimate per object, and a Compiere edition confirmation that gates our export method selection.
Schema design and Company-Site mapping
We design the Epicor destination schema: Company and Site records (mapped from the Compiere org hierarchy), Warehouse and Bin structure (with the five-dimension locator flattening logic agreed and documented), Part and PartClass records (mapped from Compiere Products and Product Categories), BOM structures (JobMtl and PartMtl for each multi-level BOM), Chart of Accounts and GLBook definitions (mapped from the source AccountingXX.csv), and User Defined field definitions for any Compiere custom columns. Schema is deployed into a Epicor Sandbox environment first for validation before production migration begins.
Sandbox migration and reconciliation
We run a full migration into an Epicor Sandbox environment using production-like data volume. The customer's Epicor lead reconciles record counts across all object types (Business Partners in, Parts in, BOMs in, Warehouses in, Bins in, Price Lists in, open AP/AR in, open orders in), spot-checks 25-50 records per object against the Compiere source, and signs off the schema, mapping logic, and locator delimiter pattern before production migration begins. Any mapping corrections — particularly the five-dimension locator transformation — happen in sandbox, not in production.
Owner reconciliation and user provisioning
We extract every distinct Compiere user referenced on Business Partner, Order, Invoice, and Product records (AD_User_ID references) and match by email against the Epicor destination org's User table. Any Compiere user without a matching Epicor User goes to a reconciliation queue for the customer's Epicor admin to provision (active or inactive depending on the source user's current status). This step gates the production migration because OwnerId references on Epicor records require a valid User ID at insert time.
Production migration in dependency order
We run production migration in record-dependency order: Company and Site configuration, Chart of Accounts and GLBook, Warehouse records, PartClass and Part, multi-level BOMs (JobMtl and PartMtl traversal), Bin records (with five-dimension transformation applied), PriceLDisc and PriceLBrk, Customer and Supplier records (from Compiere Business Partners), open AP/AR invoices, open Purchase Orders, open Sales Orders, and finally Custom Object UD fields. Each phase emits a row-count reconciliation report before the next phase begins. We use Epicor DMT for CSV import and apply rate-limit handling and batch chunking where Epicor's REST API is used for custom UD field population.
Cutover, validation, and automation rebuild handoff
We freeze Compiere 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 Workflow and Automation Inventory document listing every Compiere workflow, approval rule, and scheduled process that requires rebuild in Epicor's BPM, Alert, and Data Directive frameworks. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's operations and finance teams. We do not rebuild Compiere workflows as Epicor Business Process Management (BPM) records inside the migration scope; that is a separate engagement.
Platform deep dives
Aptean Compiere 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 Aptean Compiere 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
Aptean Compiere ERP: Not publicly documented.
Data volume sensitivity
Aptean Compiere 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 Aptean Compiere ERP to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your Aptean Compiere 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 Aptean Compiere 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.