ERP migration
Field-level mapping, validation, and rollback between R4 ENTERPRISE and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
R4 ENTERPRISE
Source
Epicor Prophet 21
Destination
Compatibility
12 of 14
objects map 1:1 between R4 ENTERPRISE and Epicor Prophet 21.
Complexity
BStandard
Timeline
6-10 weeks
Overview
R4 ENTERPRISE to Epicor ERP is an on-premise discrete manufacturing ERP migration driven by the need for a modern REST API, cloud deployment options, and deeper MES and shop-floor scheduling capabilities. The principal technical challenge is that R4 ENTERPRISE publishes no public API — all data extraction requires Royal 4 Systems professional services to produce CSV or XML exports, which we then stage, validate, and re-map against Epicor Kinetic's table structure. We migrate Customers, Vendors, Items (with lot/serial and cost-layer history), Work Orders, active BOM revisions, GL Accounts, open AP/AR vouchers, open Sales and Purchase Orders, Inventory balances per location and lot, and Fixed Assets. We do not migrate workflows, automations, or report definitions as code; we deliver a written inventory of R4 report writer configurations for the customer's Epicor admin to rebuild. Multi-currency AP/AR balances are revalued against Epicor's exchange rate table at cutover, and layered cost records are flattened into a single effective cost per item.
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 R4 ENTERPRISE 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.
R4 ENTERPRISE
Customer
Epicor Prophet 21
Customer
1:1R4 ENTERPRISE Customer records map to Epicor Customer with full contact details, credit limits, payment terms, and currency preferences preserved. Multi-currency assignments on the Customer record migrate as read-only currency codes in Epicor. Customer ID from R4 ENTERPRISE is preserved in a custom field r4_customer_id__c for cross-reference and reconciliation. Address book entries migrate to Epicor's Address table with the primary address flagged.
R4 ENTERPRISE
Vendor
Epicor Prophet 21
Vendor
1:1R4 ENTERPRISE Vendor master records including 1099 flags, W-9 status, and multi-currency settings map to Epicor Vendor. Tax ID fields (EIN/VAT) migrate to Epicor's VendorTaxRegion table. Vendor ID from R4 ENTERPRISE is preserved in r4_vendor_id__c for reconciliation. We flag any vendors marked inactive in R4 ENTERPRISE so they are created as inactive in Epicor to prevent duplicate vendor provisioning.
R4 ENTERPRISE
Item
Epicor Prophet 21
Part
1:1R4 ENTERPRISE Items map to Epicor Part records. Unit of measure conversions, stocking locations, and lot/serial controls transfer directly. Cost-layer histories require flattening: R4 ENTERPRISE stores layered costs as separate child table rows; Epicor uses Average, Standard, or FIFO costing per part. We compute a single effective cost from the most recent R4 cost layer and populate Epicor Part.UnitCost at migration. Lot numbers and expiration dates migrate to Epicor's PartLot table.
R4 ENTERPRISE
Work Order
Epicor Prophet 21
Job
1:1R4 ENTERPRISE Work Orders carry routings, labor standards, and material allocations that reference BOM revisions. These map to Epicor Job records. Any routing steps tied to superseded BOM versions are flagged and excluded during migration. Open work orders migrate with their current status (released, in process, complete); closed work orders export as historical job records unless the customer elects to include full job history, which requires Epicor JobPart records for each operation step.
R4 ENTERPRISE
Bill of Material
Epicor Prophet 21
Job BOM
lossyR4 ENTERPRISE BOMs are versioned with each revision linked to a specific effective date and item revision. We extract the currently active BOM revision as of the migration date and map it to Epicor Job BOM. Superseded revisions are flagged in a reconciliation report for the customer's Epicor admin to review. If R4 ENTERPRISE uses phantom BOMs for subassemblies, these map to Epicor's Part.AllocatableFlag configuration.
R4 ENTERPRISE
General Ledger Account
Epicor Prophet 21
GL Account
1:1R4 ENTERPRISE chart of accounts including account type, cost-center assignments, and intercompany flags maps directly to Epicor GL Account. Segment structures transfer if Epicor is configured with matching account segment definitions. We map the full account hierarchy and preserve cost-center assignments as Epicor dimension codes. Account ID from R4 ENTERPRISE is preserved in r4_account_id__c for audit trails.
R4 ENTERPRISE
Accounts Payable
Epicor Prophet 21
AP Invoice
1:1Open AP vouchers from R4 ENTERPRISE migrate as Epicor AP Invoice records with vendor, invoice number, due date, and amount. R4 ENTERPRISE stores transaction currency and functional currency separately; at migration we preserve both amounts and the original exchange rate. Epicor re-prices or retains historical rates per the customer's election. Closed AP invoices are exported as reference history unless the destination requires full invoice detail, which increases migration scope significantly.
R4 ENTERPRISE
Accounts Receivable
Epicor Prophet 21
AR Invoice
1:1Open AR invoices migrate to Epicor AR Invoice with customer, invoice number, due date, and amount. We preserve open invoice aging buckets so Epicor's cash-flow reporting is accurate from day one. Multi-currency AR invoices carry both transaction and functional currency amounts with original exchange rates preserved for Epicor to revalue or hold.
R4 ENTERPRISE
Fixed Assets
Epicor Prophet 21
Asset
1:1R4 ENTERPRISE fixed asset records including acquisition cost, depreciation method, useful life, and location map to Epicor Asset. Accumulated depreciation balance transfers as of the migration cutover date. Asset ID from R4 ENTERPRISE is preserved in r4_asset_id__c. We map R4 depreciation methods to Epicor's depreciation method equivalents (straight-line, double-declining, units-of-production).
R4 ENTERPRISE
Sales Order
Epicor Prophet 21
Order
1:1Open R4 ENTERPRISE Sales Orders migrate to Epicor Order with customer, line items, quantities, pricing, and promised dates. Any order lines referencing discontinued items or inactive price lists in the destination are flagged in a pre-migration exception report. Closed Sales Orders are not migrated unless the customer elects to include historical order reference data, which requires Epicor OrderHed and OrderDtl records.
R4 ENTERPRISE
Purchase Order
Epicor Prophet 21
PO
1:1Open R4 ENTERPRISE Purchase Orders migrate to Epicor PO Header and PO Release records with vendor, line items, quantities, and expected receipt dates. PO lines that reference item numbers not present in the Epicor Part table are flagged for the customer to resolve before import resumes. We preserve PO status (open, released, closed) and any internal notes or approvals stored on the R4 PO header.
R4 ENTERPRISE
Inventory Balance
Epicor Prophet 21
PartBin
1:1R4 ENTERPRISE on-hand quantities extract per location and per lot/serial number. We populate Epicor PartBin records (quantity per warehouse and bin) and link lot numbers via PartLot. Bin location names transfer from R4 to Epicor's Warehse and Bin fields. Expired lots are flagged so Epicor does not create inventory records for discontinued SKUs that cannot receive new transactions.
R4 ENTERPRISE
Custom Fields
Epicor Prophet 21
Custom Fields
lossyR4 ENTERPRISE allows user-defined fields on several master records. We extract field names and values, then map them to Epicor UD columns (like UD01, UD02, or character/date/number fields configured on the target table). A customer-approved mapping table built during scoping documents each custom field name, source value format, and destination field type. Epicor requires custom fields to be pre-configured before migration; we coordinate schema deployment with the data load.
R4 ENTERPRISE
User
Epicor Prophet 21
User
1:1R4 ENTERPRISE user accounts include login name, role assignment, and menu preferences. We export user records and map roles to the nearest Epicor Security Group equivalents. Active users in R4 ENTERPRISE are provisioned as active Epicor users; inactive users are provisioned as inactive to preserve historical assignments without consuming a license. Employee records in R4 ENTERPRISE map to Epicor Employee records if the customer uses Epicor HR or time and attendance modules.
| R4 ENTERPRISE | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Customer | Customer1:1 | Fully supported | |
| Vendor | Vendor1:1 | Fully supported | |
| Item | Part1:1 | Fully supported | |
| Work Order | Job1:1 | Fully supported | |
| Bill of Material | Job BOMlossy | Fully supported | |
| General Ledger Account | GL Account1:1 | Fully supported | |
| Accounts Payable | AP Invoice1:1 | Mapping required | |
| Accounts Receivable | AR Invoice1:1 | Mapping required | |
| Fixed Assets | Asset1:1 | Fully supported | |
| Sales Order | Order1:1 | Fully supported | |
| Purchase Order | PO1:1 | Fully supported | |
| Inventory Balance | PartBin1:1 | Fully supported | |
| Custom Fields | Custom Fieldslossy | Not supported | |
| User | User1: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.
R4 ENTERPRISE gotchas
No public API for programmatic data extraction
Lot number and cost layer histories require careful sequencing
Multi-currency AP and AR balances need currency revaluation
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
Vendor export coordination and discovery scoping
We engage Royal 4 Systems professional services to schedule the data export from R4 ENTERPRISE. We submit a detailed export specification covering all source tables (Customer, Vendor, Item, WorkOrder, BOMRevision, GLAccount, APInvoice, ARInvoice, FxdAsset, SalesOrder, PurchaseOrder, PartBin, PartLot, PartCostLayer, User, CustomFieldValue) and the required output format (CSV or XML with column headers matching source table field names). Simultaneously, we audit the Epicor Kinetic environment for company configuration, currency setup, warehouse and bin structure, chart of accounts segment definitions, and security group model. The discovery output is a written migration scope document and a data export timeline from Royal 4 Systems.
Schema mapping and Epicor custom field deployment
We build the mapping specification from R4 ENTERPRISE source fields to Epicor Kinetic destination tables and columns. For every R4 custom field we create a corresponding Epicor UD field on the target table. We coordinate with the customer's Epicor admin to deploy the custom field schema into the destination company database before any data load begins. We also configure the Epicor cost method (Average, Standard, FIFO) per Part record based on the customer's election and the R4 cost layer analysis. Multi-currency configuration in Epicor (exchange rate tables per currency pair) is verified to match the R4 functional currency setup.
Staged export validation and transformation
When Royal 4 Systems delivers the data export files, we stage them in our migration environment and run a multi-pass validation: record counts per table, required field presence checks, referential integrity (foreign key chains), and data quality (non-printable characters, field length overflows). We flag any records with referential orphans (e.g., an invoice line referencing a vendor not present in the vendor extract) and deliver an exception report to the customer for resolution before transformation. Cost layer flattening, BOM revision selection, and multi-currency amount normalization happen in this stage.
Epicor test migration and reconciliation
We run a full migration into the Epicor test company using production-like data volume from the R4 staging extracts. The customer's Epicor administrator and operations leads reconcile record counts (Parts in, Customers in, Vendors in, Jobs in, AP/AR in, PartBins in), spot-check 25-50 random records against the R4 source for field accuracy, and validate that lot/serial assignments and cost amounts match expectations. Any mapping corrections, BOM revision exclusions, or cost-layer adjustments happen in this phase before the production migration begins.
Production migration in dependency order
We run the production migration in record-dependency order: GL Accounts (chart of accounts and segment definitions), Vendors, Customers, Parts (with PartLot and cost flattening applied), PartBins (on-hand quantities per warehouse and lot), Fixed Assets, open AP and AR vouchers, open Purchase Orders, open Sales Orders, Work Orders mapped to Jobs, and BOM revisions mapped to Job BOM. Each phase emits a row-count reconciliation report and a random-sample validation before the next phase begins. Multi-currency revaluation runs after AP/AR import to apply Epicor's exchange rate table against the migrated functional-currency amounts.
Cutover, validation, and report writer handoff
We freeze R4 ENTERPRISE writes during cutover, run a final delta migration of any records modified during the migration window, then enable Epicor ERP as the system of record. We deliver a written inventory of all R4 ENTERPRISE report writer configurations and their recommended Epicor Report Builder equivalents, plus a list of any R4 workflows or automations (workflow-triggered alerts, scheduled exports, or EDI feeds) that require rebuild in Epicor Kinetic or a middleware tool. We support a one-week post-cutover window where we resolve any reconciliation issues. We do not rebuild R4 report definitions, workflows, or automations inside the migration scope.
Platform deep dives
R4 ENTERPRISE
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 R4 ENTERPRISE 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
R4 ENTERPRISE: Not applicable..
Data volume sensitivity
R4 ENTERPRISE 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 R4 ENTERPRISE to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your R4 ENTERPRISE 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 R4 ENTERPRISE
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.