ERP migration
Field-level mapping, validation, and rollback between Infor XA and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
Infor XA
Source
Epicor Prophet 21
Destination
Compatibility
10 of 12
objects map 1:1 between Infor XA and Epicor Prophet 21.
Complexity
BStandard
Timeline
8-12 weeks
Overview
Migrating from Infor XA to Epicor ERP is a multi-phase extraction from IBM i Db2 followed by schema translation into Epicor's REST API. Infor XA stores manufacturing data in RPG-era flat-file structures that require unpacking into relational records; there is no public API, so extraction relies on read-only SQL access to the IBM i database coordinated with the customer's IBM i administrator. We extract Items, BOMs, Work Orders, Purchase Orders, Routings, GL accounts, open AP/AR, Customer Orders, and Shop Floor Data Collection records in dependency order, starting with master data and completing with transactional history. We map multi-level XA BOMs to Epicor's single-level BOM hierarchy with operation-level sequencing, transform XA's custom fields (CMS470 user-defined fields) to Epicor User Defined Fields, and convert IBM i security profiles to Epicor's role-based access model. We do not migrate RPG programs, CL scripts, custom Business Objects, IFS-hosted document attachments, or workflows; these are documented in a written inventory for the customer's admin to rebuild in Epicor's Business Activity Management framework.
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 Infor XA 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.
Infor XA
Item master (IM)
Epicor Prophet 21
Part (PartMaster)
1:1XA Item records carry stocking codes, cost methods, warehouse assignments, lot/serial controls, and unit-of-measure conversions that map to Epicor Part and PartWhse records. We extract from the IM tables (IMITEMP, IMITEMX) and map stocking UOM, standard cost, and stocking location to Epicor Part and PartWhse. XA's stocking code (M/S/T for manufactured/stocked/transferred) translates to Epicor's TypeCode and Method of Mfg. Multi-warehouse configurations in XA generate one PartWhse record per warehouse in Epicor.
Infor XA
Bill of Material (BOM)
Epicor Prophet 21
JobMtl / PartMtl (multi-level BOM)
1:manyXA BOMs support multi-level, phantom, and substitute item structures with effective date windows. Migration requires recursive BOM explosion to flatten nested hierarchies into Epicor's single-level BOM format. We extract BOMM and BOMX tables, compute the full BOM tree, and map each level to Epicor PartMtl records linked to the parent Part. Phantom items (XA BOMH phantom flag) become Epicor JobMtl phantom material sequences. Effective date ranges from XA translate to Epicor's revision-effective date logic, with multiple revisions created where date-range overlaps exist.
Infor XA
Work Order (WO)
Epicor Prophet 21
JobHead / JobMtl / JobOper
1:1XA Work Orders drive shop floor control with operation sequences, labor posting, and costing links. We extract WOHDDR/ WODETL tables and map WO header status, priority, type, and start/due dates to Epicor JobHead. Operation sequences map to JobOper with work center references and schedule dates. Material requirements map to JobMtl. We preserve WO-to-operation linkage and labor posting records, extracting WOLabor to post against the equivalent Epicor LaborDtl records during migration. Closed and open work orders migrate; historical WO records with status other than complete are flagged for customer review before migration.
Infor XA
Purchase Order (PO)
Epicor Prophet 21
POHeader / POLine
1:1XA PO headers carry supplier assignment, terms, and delivery schedules; line items carry quantity, price, and delivery date. We extract POHDDR/PODETL and map supplier (RMSUPP to Vendor table), PO number, terms, and line status to Epicor POHeader and POLine. Open POs (released or partially received) migrate as active records; closed or received POs migrate as historical records with receipt history. Purchase order history in XA's PO receipt records requires mapping to Epicor's PORel and RcvDtl tables with vendor invoicing matched against XA's AP invoice data.
Infor XA
General Ledger (GL)
Epicor Prophet 21
GLAccount
1:1XA GL accounts are defined in a structured chart of accounts with account codes, descriptions, and posting controls in COAFIL and COASEG tables. Standard account definitions export cleanly and map 1:1 to Epicor's GLAccount structure. We validate account code length and character set against Epicor's account segment rules and flag any XA account codes that exceed Epicor's segment length limits for manual remediation. GL fiscal periods, posting date ranges, and currency assignments migrate from XA's fiscal calendar and multi-currency setup to Epicor's GLFiscals and Currency tables.
Infor XA
Open AP/AR records
Epicor Prophet 21
APInvHed / ARPmtSched / ARInvoice
1:1Outstanding payables and receivables carry supplier/customer references, invoice numbers, due dates, and amounts. We extract APOPEN and AROPEN tables and map to Epicor's APInvHed (header) and ARInvoice records. We flag any AP records with hold status or discount terms that require Epicor payment terms and AP validation rule mapping. Open invoice balances must tie to the migrated GL accounts to ensure Epicor's AP/APTran posting is accurate at cutover. Period assignment is preserved from XA's fiscal period structure.
Infor XA
Customer Order (SO)
Epicor Prophet 21
OrderHed / OrderDtl
1:1XA sales orders link to pricing, availability checking, and inventory allocation. We extract SOHDDR/SODETL and map order headers, line items, delivery addresses, and order-specific discounts or special terms to Epicor OrderHed and OrderDtl. Order status in XA (open, partially shipped, on hold) maps to Epicor OpenLine or within completion logic. Pricing and availability checking results from XA are noted but recalculated in Epicor at migration time to reflect current inventory and pricing rules.
Infor XA
Shop Floor Data Collection
Epicor Prophet 21
LaborDtl / PartTran
1:1Time entries, labor posting, and operation completions in XA's shop floor module (SFDC/SFWC tables) tie to work orders and employees. We extract labor clock-in/out records, operation completions, and scrap postings and map them to Epicor LaborDtl (linked to the migrated JobOper) and PartTran (inventory transactions for labor, scrap, and material usage). Labor cost in XA is computed using XA's labor posting rules; we migrate the hours and let Epicor recalculate cost using Epicor's labor rates and work center rates at migration time unless the customer specifies otherwise.
Infor XA
Manufacturing Routing
Epicor Prophet 21
JobOper / EmpBasic (work center reference)
1:1Routings define operation sequences, work centers, and labor or machine standards tied to production in XA. We extract the RMROUTE tables and map routing operations to Epicor JobOper, resolving work center codes to Epicor's ResourceGroup and Resource tables. Operation labor hours, machine hours, and setup/cycle times from XA map to Epicor StdFormat, EstLaborHours, and EstMachineHours. We flag any XA routing work centers that have no direct Epicor ResourceGroup equivalent for customer configuration before migration.
Infor XA
Custom fields (CMS470)
Epicor Prophet 21
User Defined Fields (UDFs)
lossyXA supports user-defined fields on items, suppliers, and purchase agreement headers via CMS470—these are alphanumeric, numeric, or date fields that require explicit field-level mapping to Epicor UDFs. We identify every active CMS470 field during discovery, provision matching UDFs in Epicor (with correct field type, length, and decimal places) before any data import, and map the values column-by-column. New UDFs must be created in Epicor first, which requires Epicor admin access and is sequenced before record migration begins.
Infor XA
Users and security profiles
Epicor Prophet 21
User, Customer, Supplier (RBAC model)
1:1XA user accounts and IBM i security profiles define access rights and default accounting entities. We extract user records and map them to Epicor's User account with role-based security. IBM i profile authority (program object restrictions, data area access) maps to Epicor's Menu Security and Company/Site restrictions. Users with multiple company assignments in XA receive multiple Epicor Company record assignments. We flag any custom security or menu restrictions that have no direct Epicor RBAC equivalent for manual configuration.
Infor XA
Supplier (RMSUPP)
Epicor Prophet 21
Vendor
1:1XA supplier master records carry terms, payment methods, and bank information that map to Epicor Vendor. We extract RMSUPP and map payment terms, currency, and bank details to Epicor Vendor records with Terms and BankAcct references. Supplier part numbers stored in XA's supplier item cross-reference map to Epicor's VendorPP (Vendor Part Preference). AP BACS/EFT bank details from XA map to Epicor's VendorBank table with appropriate bank routing and account number fields.
| Infor XA | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Item master (IM) | Part (PartMaster)1:1 | Fully supported | |
| Bill of Material (BOM) | JobMtl / PartMtl (multi-level BOM)1:many | Fully supported | |
| Work Order (WO) | JobHead / JobMtl / JobOper1:1 | Fully supported | |
| Purchase Order (PO) | POHeader / POLine1:1 | Fully supported | |
| General Ledger (GL) | GLAccount1:1 | Fully supported | |
| Open AP/AR records | APInvHed / ARPmtSched / ARInvoice1:1 | Fully supported | |
| Customer Order (SO) | OrderHed / OrderDtl1:1 | Fully supported | |
| Shop Floor Data Collection | LaborDtl / PartTran1:1 | Mapping required | |
| Manufacturing Routing | JobOper / EmpBasic (work center reference)1:1 | Fully supported | |
| Custom fields (CMS470) | User Defined Fields (UDFs)lossy | Fully supported | |
| Users and security profiles | User, Customer, Supplier (RBAC model)1:1 | Fully supported | |
| Supplier (RMSUPP) | Vendor1: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.
Infor XA gotchas
Direct Db2 extraction required for bulk data export
IFS-hosted document attachments fall outside standard extraction
Decades of site-specific RPG customizations resist direct migration
Citrix XenApp dependency complicates user acceptance testing
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
IBM i access and extraction planning
We coordinate with the customer's IBM i administrator to establish read-only SQL access to the XA Db2 database using a dedicated IBM i user profile with limited authority to production tables. We audit the Db2 table catalog to identify all XA data tables (IM, BOM, WO, PO, SF, GL, AP, AR, SO, RM) and document their schema dependencies. We schedule data extraction runs during non-production windows to avoid impacting live XA sessions and configure the extraction tooling (native SQL or IBM i Access ODBC) to chunk large tables into manageable CSV outputs.
Data profiling and dependency mapping
We profile the extracted XA data to assess volume (record counts per table), quality (duplicate items, orphaned BOMs, missing supplier references), and dependency order. We identify master data entities (Items, BOMs, Routings, GL Accounts, Suppliers, Customers) that must load before transactional entities (Work Orders, POs, Shop Floor records, AP/AR, Sales Orders). We surface data quality issues—duplicate part numbers, BOMs with missing parent items, GL accounts without posting controls—and deliver a cleansing checklist to the customer's XA administrator before migration design begins.
Epicor schema design and UDF provisioning
We design the destination Epicor schema based on the customer's Epicor edition, company structure, and site configuration. This includes provisioning all User Defined Fields (UDFs) that correspond to XA CMS470 custom fields, configuring the GL chart of accounts to match the migrated XA account structure, setting up Epicor work centers and resource groups mapped from XA routing definitions, configuring Part UOMs, and designing the BOM revision structure. All UDFs must be created in Epicor before record migration begins. We design the Epicor schema in a non-production Epicor environment first for validation.
Master data migration in dependency order
We migrate master data first: GL Accounts (Chart of Accounts and Fiscal Calendar), Suppliers (Vendor table), Customers (Customer table), Items (Part and PartWhse records), Bills of Material (PartMtl exploded from XA BOM tables), Manufacturing Routings (JobOper from XA RMROUTE), and finally User accounts mapped from XA IBM i profiles to Epicor RBAC roles. Each master data phase produces a reconciliation report (record count, key field validation) before the next phase begins. BOM explosion runs during this phase, producing flat BOM datasets ready for Epicor PartMtl import.
Transactional data migration with referential integrity
We migrate transactional data in dependency order after master data is validated: Open Purchase Orders (POHeader/POLine), Open Customer Orders (OrderHed/OrderDtl), Work Orders (JobHead/JobMtl/JobOper with operation sequences), Shop Floor Labor History (LaborDtl/PartTran), and Open AP/AR (APInvHed/ARInvoice). GL period balances migrate last. Each phase runs against the Epicor REST API with batch chunking, error logging, and real-time record count reconciliation. Any failed records are held in an exception queue for resolution before the next phase begins.
Cutover, delta migration, and workflow inventory handoff
We freeze writes to XA during the cutover window, run a final delta migration of any records created or modified during the migration period, validate total record counts in Epicor against source XA record counts, and hand off the system of record. We deliver a written inventory of all identified RPG custom programs, CL scripts, and XA site-specific modifications with a categorization recommendation (replace with standard Epicor feature, migrate as-is, or rebuild). We do not rebuild XA RPG programs, automations, or workflows as part of standard migration scope. We support a two-week hypercare window for data reconciliation issues identified after cutover.
Platform deep dives
Infor XA
Source
Strengths
Weaknesses
Epicor Prophet 21
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 3 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 Infor XA and Epicor Prophet 21.
Object compatibility
3 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
Infor XA: Not publicly documented — depends on Runtime Server (nginx gateway) configuration and IDF object limits..
Data volume sensitivity
Infor XA exposes a bulk API — large-volume migrations stream efficiently.
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 Infor XA to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your Infor XA 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 Infor XA
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.