ERP migration
Field-level mapping, validation, and rollback between VIENNA Advantage and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
VIENNA Advantage
Source
Epicor Prophet 21
Destination
Compatibility
11 of 14
objects map 1:1 between VIENNA Advantage and Epicor Prophet 21.
Complexity
BStandard
Timeline
6-10 weeks
Overview
Moving from VIENNA Advantage to Epicor ERP is a structural migration driven by the gap between VIENNA's open-source modular architecture and Epicor's manufacturing-focused enterprise schema. VIENNA Advantage does not publish a REST or GraphQL API with documented bulk export endpoints, so we extract via direct database access with strict tenant-ID scoping to prevent cross-tenant contamination in multi-tenant deployments. Business Partners—a unified entity covering customers, vendors, and employees in VIENNA—must be split into Epicor's separate Customer and Vendor tables using the partner's type classification during transform. Products migrate as Epicor Part and PartPlant records with BOM linkage preserved where applicable. Orders, Invoices, and Payments carry relational links that we resolve in dependency order. The DMS document storage paths encode module context and version history; we extract binary files separately from metadata and re-associate them to the correct parent records in Epicor. Workflow automation rules and approval routing defined in VIENNA's declarative framework do not migrate; we deliver a Workflow Reconstruction Handbook for the destination implementation team. Historical GL journal entries, inventory movements, and project time entries are migrated as reporting archives rather than live operational records to avoid degrading Epicor's transactional performance.
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 VIENNA Advantage 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.
VIENNA Advantage
Business Partner
Epicor Prophet 21
Customer and Vendor (split required)
1:manyVIENNA Advantage Business Partners are a unified entity covering customers, vendors, and employees with a BP Type classification field (CUSTOMER, VENDOR, EMPLOYEE). We split during transform: CUSTOMER-type BPs create Epicor Customer records; VENDOR-type BPs create Epicor Vendor records; EMPLOYEE-type BPs create Epicor Employee records. Address, contact, payment term, and credit limit fields map to the corresponding Epicor customer or vendor detail tables. Multi-address BPs with distinct ship-to and bill-to roles create separate Customer records with the ShipTo or BillTo role flag. The original VIENNA BP ID is preserved in a custom field va_bp_id__c for audit and reconciliation.
VIENNA Advantage
Product / Item
Epicor Prophet 21
Part and PartPlant
1:1VIENNA Products map to Epicor Part records with PartNum, Description, UnitOfMeasure, ProductCode (SKU), and the IsMake, IsBuy, and TypeCode flags. The BOM linkage for manufactured items migrates as Epicor JobMtl and PartMtl records with the parent PartNum reference. VIENNA's UOM conversion table maps to Epicor's UOMClass and UOM definitions. PartPlant records are created per warehouse to carry on-hand quantities, reorder points, and safety stock levels at the plant-warehouse level.
VIENNA Advantage
Sales Order
Epicor Prophet 21
SalesOrder
1:1VIENNA Sales Orders map to Epicor SalesOrder records with OrderNum, OrderDate, CustomerNum, and OrderRel records for each release. Order line items from VIENNA map to OrderDtl with PartNum, SellingQuantity, UnitPrice, and Tax amounts. The VIENNA order status (Draft, Approved, Completed, Cancelled) maps to Epicor OrderHed.OpenOrder and OrderRel.OpenRelease flags. VIENNA's pricing conditions and discount rules require manual mapping to Epicor price lists or must be entered as a post-migration data clean-up step if the conditions are non-standard.
VIENNA Advantage
Purchase Order
Epicor Prophet 21
POHeader and PODetail
1:1VIENNA Purchase Orders map to Epicor POHeader and PODetail records with VendorNum, PODate, and OrderNum. Line items carry PartNum, POLine.UnitCost, and the PromisedDate from VIENNA's PO lines. VIENNA's goods receipt and invoice matching records do not have a direct Epicor equivalent; we migrate the PO and receipt data separately and flag the purchase accrual reconciliation as a post-migration accounting task.
VIENNA Advantage
GL Journal Entry
Epicor Prophet 21
GLJrnGrp and GLJrnLine
1:1VIENNA GL Journal Entries map to Epicor GLJrnGrp (batch) and GLJrnLine records with FiscalYear, FiscalPeriod, AccountNum, DebitAmount, and CreditAmount. We chunk migration by fiscal period to avoid API payload limits. Dimension tagging from VIENNA (cost centre, project, department) maps to Epicor's Dimension code structure. Historical closed periods are migrated as read-only archived journal lines; only the current open fiscal period is migrated as live, writable records to maintain Epicor's period controls.
VIENNA Advantage
AR Invoice
Epicor Prophet 21
InvcHead and InvcDtl (AR side)
1:1VIENNA Accounts Receivable invoices migrate to Epicor InvcHead and InvcDtl with CustomerNum, InvoiceNum, InvoiceDate, DueDate, and the line-level amounts. Payment records linked to VIENNA invoices migrate as CashHead and CashDtl records that Epicor applies against the corresponding InvcHead. Partial payment matching (overpayment or underpayment) requires explicit mapping of the VIENNA payment identifier to Epicor's payment grouping logic to avoid breaking the AR aging report.
VIENNA Advantage
AP Invoice
Epicor Prophet 21
InvcHead and InvcDtl (AP side)
1:1VIENNA Accounts Payable invoices migrate to Epicor InvcHead (AP type) with VendorNum, InvoiceNum, InvoiceDate, and the vendor invoice number. VIENNA's vendor invoice and goods receipt matching pairs map to Epicor's voucher matching workflow as pre-entered InvoiceHed records. Tax amounts from VIENNA's multi-tax configuration migrate to Epicor's TaxDtl records by TaxCode and RateCode lookup.
VIENNA Advantage
Warehouse / Inventory Record
Epicor Prophet 21
PartWhse and Warehse
1:1VIENNA warehouse-level inventory records map to Epicor Warehse (warehouse definition) and PartWhse (plant-warehouse inventory) with OnHandQty, ReorderPoint, SafetyStock, and LotNum where applicable. Expiration dates on lot-controlled items migrate to Epicor's PartLot table. VIENNA's stock movement history migrates as Epicor PartTran records for audit trail completeness, limited to the last 24 months of active movements unless the customer specifies a longer archive window.
VIENNA Advantage
Project
Epicor Prophet 21
Project and ProjectPhase
1:1VIENNA Projects with phases, assigned resources, billing rules, and time entries map to Epicor Project, ProjectPhase, and ProjectTask records. Billable versus non-billable flags from VIENNA's WBS structure map to Epicor's Billing method and Billing hold fields. Time entries and labour bookings migrate as LabourDtl records linked to the corresponding Project and Phase. Revenue recognition milestones migrate to Epicor's Billing tables for project billing control.
VIENNA Advantage
Documents (DMS)
Epicor Prophet 21
DocType and Attachment (or external archive)
lossyVIENNA DMS documents are stored with internal storage paths encoding module context (Business Partner, Order, Project) and version history. We extract binary files and metadata separately, reconstruct the folder structure, and re-associate documents to Epicor records via the DocType and ForeignKey linkage. Documents exceeding Epicor's attachment size limits or requiring long-term audit retention are migrated to a linked external document archive with a reference pointer stored in Epicor. Failure to re-associate results in orphaned documents with no contextual link, which we actively prevent by maintaining a parent-record lookup table during extraction.
VIENNA Advantage
Custom Fields / Canvas Extensions
Epicor Prophet 21
UD Fields (User Defined)
1:1VIENNA custom fields added via the Canvas framework are stored per-module with type, required, and default-value metadata. We extract the full custom field schema alongside the data and map each to the corresponding Epicor UD column definition (UD01-UD20 or extended UD tables). The field type mapping (string, integer, date, boolean, dropdown) is preserved. Custom fields on non-standard VIENNA modules that have no Epicor equivalent are held in a custom staging object with the original VIENNA field name and value for the customer's admin to allocate post-migration.
VIENNA Advantage
HRM / Employee Data
Epicor Prophet 21
EmpBasic and EmpPayroll
1:1VIENNA HRM data (employee records, pay structures, time and attendance) migrates to Epicor EmpBasic and related payroll tables where the customer's Epicor deployment includes the HR module. If Epicor HR is not in scope, we extract employee records as a separate CSV deliverable with fields mapped for the customer's HR team to load into their chosen HRMS. Active employment status, department assignment, and supervisor relationships migrate; historical salary review records are archived as read-only data.
VIENNA Advantage
Workflow Automation Rules
Epicor Prophet 21
Not Migrated (documented separately)
1:1VIENNA workflow definitions are stored as declarative rule configurations tied to the specific module context and have no documented export format. We capture screenshots and configuration notes of every active workflow during discovery and deliver a Workflow Reconstruction Handbook to the destination implementation consultant. The customer's Epicor partner rebuilds approval routing and document automation as BPM rules post-migration. Workflow rebuild is outside standard migration scope.
VIENNA Advantage
Multi-Tenant Tenant-ID Scope
Epicor Prophet 21
Org-level isolation
lossyVIENNA Advantage cloud deployments use a shared multi-tenant database with tenant separation at the schema or client-ID level. When exporting data, we apply strict tenant-ID filtering on every table join to prevent records from other tenants entering the migration. Epicor uses org-level isolation per deployment, so migrated data lands cleanly within a single Epicor company or plant without additional tenant scoping.
| VIENNA Advantage | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Business Partner | Customer and Vendor (split required)1:many | Fully supported | |
| Product / Item | Part and PartPlant1:1 | Fully supported | |
| Sales Order | SalesOrder1:1 | Fully supported | |
| Purchase Order | POHeader and PODetail1:1 | Fully supported | |
| GL Journal Entry | GLJrnGrp and GLJrnLine1:1 | Fully supported | |
| AR Invoice | InvcHead and InvcDtl (AR side)1:1 | Fully supported | |
| AP Invoice | InvcHead and InvcDtl (AP side)1:1 | Fully supported | |
| Warehouse / Inventory Record | PartWhse and Warehse1:1 | Fully supported | |
| Project | Project and ProjectPhase1:1 | Fully supported | |
| Documents (DMS) | DocType and Attachment (or external archive)lossy | Mapping required | |
| Custom Fields / Canvas Extensions | UD Fields (User Defined)1:1 | Fully supported | |
| HRM / Employee Data | EmpBasic and EmpPayroll1:1 | Fully supported | |
| Workflow Automation Rules | Not Migrated (documented separately)1:1 | Not supported | |
| Multi-Tenant Tenant-ID Scope | Org-level isolationlossy | 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.
VIENNA Advantage gotchas
No documented public export API
Multi-tenant cloud instances share a database
DMS document storage path reconstruction
Workflow rules are not portable
Community tier has no SLA or migration support
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 VIENNA schema mapping
We audit the source VIENNA Advantage deployment across deployed modules, VIENNA version, database type (SQL Server or PostgreSQL), multi-tenant configuration (tenant-ID scoping confirmed for cloud deployments), custom fields, custom Canvas modules, active workflows, and DMS document volume. We run a read-only schema discovery query set against the production database and a parallel Excel export of the core entities (Business Partners, Products, Orders, Invoices) to cross-validate record counts. The discovery output is a written Migration Scope Document including the full field-to-field mapping matrix, a document re-association plan, and a list of any VIENNA BPs with missing type classification that requires customer resolution before transform begins.
Epicor schema pre-creation and company setup coordination
We coordinate with the customer's Epicor implementation partner to confirm the Company structure, Chart of Accounts, UOM classes, and Part number format before creating any destination schema. We provision Epicor UD fields (UD01-UD20 or extended) to receive VIENNA custom field data. If the customer's Epicor deployment includes the HR or MES module, we extend the object mapping to cover Employee and Job records. We deploy the mapping configuration to a staging environment first for dry-run validation with a subset of production data before the full migration begins.
Direct database extraction with tenant-ID filtering
We execute a direct database read against the VIENNA SQL Server or PostgreSQL instance using a read-only account scoped to the correct tenant-ID. We run parallel extraction queries across Business Partners, Products, Orders, Invoices, Payments, GL Journal Entries, Inventory movements, Projects, and Custom Fields. Each extraction query runs with ORDER BY on the primary key to ensure consistent pagination across chunks. DMS binary files are extracted in parallel with metadata, maintaining the internal storage path to reconstruct the parent record association. All extracted data is staged in an S3-backed staging environment with encryption at rest and in transit.
Transform and Business Partner split
We run the transform pipeline in dependency order. Business Partners are split into Customer and Vendor records using the BP Type field; the original VIENNA BP ID is preserved in va_bp_id__c. Orders and Invoices reference the split BP records via the new destination identifiers. GL entries are chunked by fiscal period and mapped to Epicor's journal batch structure. BOM linkage from VIENNA manufactured products is decomposed into Epicor JobMtl records. All transform rules are logged with the source record ID and destination record ID for audit traceability. Any BP or Product that fails the split or type resolution enters the reconciliation queue for customer resolution before re-entering the pipeline.
Epicor bulk import in dependency order
We load migrated data into Epicor in strict dependency order: Warehse (warehouse definitions) first; Part (product master) second; PartWhse (inventory balances) third; Customer and Vendor records fourth; SalesOrder and POHeader fifth; InvcHead and InvcDtl sixth; GLJrnGrp and GLJrnLine seventh; Project, ProjectPhase, and LabourDtl eighth; DMS documents ninth with parent record re-association; UD custom fields last. Each phase emits a row-count reconciliation report against the source record count, with a mismatch threshold of 0.5 percent before the next phase begins. Epicor validation rules and required-field constraints are temporarily bypassed during bulk load via a migration-context user role with elevated data access, then restored after migration.
Cutover, document finalisation, and Workflow handoff
We freeze VIENNA Advantage writes during the cutover window, run a final delta migration of any records modified since the last extraction, then enable Epicor as the system of record. We run a full reconciliation comparing migrated record counts against source record counts across all object types, with spot-checks on 50 random records per object. DMS documents are verified against the parent record lookup table. We deliver the Workflow Reconstruction Handbook and the Automation Inventory to the customer's Epicor implementation consultant for rebuild planning. We support a five-day hypercare window for reconciliation issues raised by the customer's team.
Platform deep dives
VIENNA Advantage
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 VIENNA Advantage 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
VIENNA Advantage: Not publicly documented.
Data volume sensitivity
VIENNA Advantage 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 VIENNA Advantage to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your VIENNA Advantage 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 VIENNA Advantage
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.