ERP migration

Migrate from Epicor iScala to Dolibarr ERP

Field-level mapping, validation, and rollback between Epicor iScala and Dolibarr ERP. We move data and schema; workflows are rebuilt natively in Dolibarr ERP.

Epicor iScala logo

Epicor iScala

Source

Dolibarr ERP

Destination

Dolibarr ERP logo

Compatibility

73%

11 of 15

objects map 1:1 between Epicor iScala and Dolibarr ERP.

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Epicor iScala to Dolibarr is a scope-reduction migration: iScala is a full-stack mid-market ERP with multi-subsidiary, multi-currency, and multi-language capabilities across manufacturing, distribution, and financial modules; Dolibarr is an open-source modular ERP/CRM designed for SMBs and mid-market companies that want a lightweight, customizable alternative. We extract data from iScala's SQL Server schema using direct queries scoped per company code, normalize iScala's two-letter module prefix tables into Dolibarr's module structure, and ingest via Dolibarr's REST API. The migration resolves iScala's multi-company schema (where company-dependent and company-independent data coexist in the same database), preserves multi-currency and multi-language fields using Dolibarr's language packs and extrafields, and flags iScala-specific workflows, Crystal Reports, and SSRS reports for manual rebuild. We do not migrate attachments stored outside the SQL database or custom iScala workflows and automations as code.

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

Epicor iScala logo

Epicor iScala

What's pushing teams away

  • Built-in reports are described as difficult to use and the interface is not considered user-friendly, creating frustration with day-to-day reporting tasks.
  • The application does not support opening multiple windows simultaneously, forcing users to close one screen before accessing another — a workflow bottleneck for order processing teams.
  • Steep learning curve and limited documentation make implementation and ongoing administration challenging for under-resourced IT teams.
  • Outdated UI compared to modern cloud ERPs creates a usability gap that frustrates younger users and increases training costs.
  • Performance issues after migration to newer Epicor Kinetic environments have been reported when server resources are undersized, causing slower reporting and task execution.

Choosing

Dolibarr ERP logo

Dolibarr ERP

What's pulling them in

  • Free open-source core with no per-user license fee makes it the lowest-cost entry point for small teams needing ERP and CRM in one package.
  • Self-hosted deployment gives full data ownership and eliminates vendor lock-in, especially attractive to businesses with compliance requirements.
  • Modular architecture means teams enable only the features they use, keeping the interface uncluttered and reducing learning curve.
  • Fast installation with no technical knowledge required — one reviewer set up multiple businesses in minutes using their own hosting.
  • Active community forum and marketplace of third-party add-ons provide support and extension options without mandatory subscription costs.

Object mapping

How Epicor iScala objects map to Dolibarr ERP

Each row shows how a Epicor iScala object lands in Dolibarr ERP, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Epicor iScala

General Ledger (GL)

maps to

Dolibarr ERP

Accounting module + Third Parties

1:1
Mapping required

iScala GL module (journal entries, chart of accounts, financial periods) maps to Dolibarr's Accounting module. Multi-company iScala deployments store separate GL records per company code; we query GL company codes upfront and create a separate Dolibarr instance or use Dolibarr's multi-company accounting extensions per legal entity. Exchange rates from iScala GL transactions migrate as Dolibarr currency exchange rate extrafields. iScala's configurable financial reports (CFR) do not migrate; we document the report inventory for admin rebuild using Dolibarr's built-in report builder or third-party BI connectors.

Epicor iScala

Sales Ledger (SL)

maps to

Dolibarr ERP

Third Parties (customers) + Invoices

1:1
Mapping required

iScala SL customer masters, open invoices, and AR aging records map to Dolibarr Third Parties (type Customer) and the Invoices module. Address and contact fields vary by iScala version (2.2 through 2022.1); we normalize them to Dolibarr's address and contact fields during field mapping. Outstanding AR balances migrate as open invoice records with payment terms preserved. Multi-currency AR transactions preserve the original currency and exchange rate in Dolibarr extrafields.

Epicor iScala

Purchase Ledger (PL)

maps to

Dolibarr ERP

Third Parties (suppliers) + Invoices (supplier)

1:1
Mapping required

iScala PL vendor masters and AP aging records map to Dolibarr Third Parties (type Supplier) and supplier invoices. Multi-currency purchase transactions require exchange-rate preservation during migration; we store the original transaction currency and rate in Dolibarr extrafields so that AP aging reports reflect actuals. GRNI (goods-received-not-invoiced) entries migrate as draft supplier invoice records pending vendor invoice matching.

Epicor iScala

Sales Orders (OR)

maps to

Dolibarr ERP

Orders module

1:1
Mapping required

iScala OR order headers and lines with pricing, discounts, and fulfillment status map to Dolibarr Orders (customer orders). We preserve line-level detail, quantity ordered versus quantity delivered, and attachment references. Order status from iScala (Draft, Confirmed, In Progress, Completed, Cancelled) maps to Dolibarr Order status values. Open orders migrate as draft or validated orders depending on fulfillment state; closed orders migrate as closed records for historical reference.

Epicor iScala

Purchase Orders (PC)

maps to

Dolibarr ERP

Supplier Orders module

1:1
Mapping required

iScala PC purchase order headers, lines, and receipts map to Dolibarr Supplier Orders. GRNI entries require careful sequencing to maintain AP match integrity; we migrate GRNI as draft supplier invoice records with linked receipt references. Purchase order approvals and authorization workflows do not migrate as automation; we document the workflow rules for admin to rebuild in Dolibarr.

Epicor iScala

Stock Control (SC)

maps to

Dolibarr ERP

Products + Stock module

1:1
Mapping required

iScala SC inventory items, warehouse locations, lot numbers, and serial numbers map to Dolibarr Products (stocked) and the Stock module. Lot and serial tracking flags preserve as product extrafields in Dolibarr. We sequence stock migration to include receipt transaction history so that lot and serial links remain intact; migrating only current balances without transaction history would break traceability. Warehouse locations map to Dolibarr warehouse records with physical location extrafields for multi-site deployments.

Epicor iScala

Material Production Control (MP)

maps to

Dolibarr ERP

Products + Projects (or third-party MRP module)

lossy
Mapping required

iScala MP work orders, routings, and material allocations represent the most complex module-to-Dolibarr mapping because Dolibarr's core does not include full MRP or production scheduling. We migrate work order headers as Dolibarr Project records with production status tracked via project status fields. Routing sequences and labor standards migrate as project task extrafields. BOM structures migrate as Dolibarr product component relationships where the third-party MRP module is installed; otherwise we flag BOM data for manual rebuild and document the bill of materials for admin to recreate.

Epicor iScala

HR / Payroll (HR, PA)

maps to

Dolibarr ERP

HR module or third-party HR extension

lossy
Mapping required

iScala HR and PA modules store employee records, compensation history, and payroll runs. Dolibarr's HR module handles employee records and time tracking, but payroll processing rules and tax calculations require manual configuration or a third-party payroll extension. Effective-dated records migrate as-is with date tracking preserved. Compensation history migrates as employee extrafields rather than native payroll records. We scope payroll migrations conservatively: employee masters and historical leave balances migrate; payroll calculation rules and tax configurations do not.

Epicor iScala

Asset Management (AM)

maps to

Dolibarr ERP

Assets module

1:1
Mapping required

iScala AM asset masters, accumulated depreciation, and depreciation methods map to Dolibarr Assets. Asset locations, cost centers, and depreciation schedules migrate as asset extrafields. Asset associations to departments from iScala map to Dolibarr Projects or Third Parties depending on whether the asset is linked to a project or a location. Depreciation methods (straight-line, declining balance) translate to Dolibarr's depreciation configuration.

Epicor iScala

Project Management (PR)

maps to

Dolibarr ERP

Projects module

1:1
Mapping required

iScala PR project masters, WBS elements, budgets, and time entries map to Dolibarr Projects. We migrate project headers, current budget balances, and task hierarchies. Detailed time entries migrate as Dolibarr Project time tracking records. Billing records migrate as project invoice links where the project is linked to a customer Third Party. Complex WBS hierarchies with multi-level dependencies may require flattening into Dolibarr's two-level task structure, with deep WBS preserved in project extrafields.

Epicor iScala

Service Order Management (SM)

maps to

Dolibarr ERP

Interventions module

1:1
Mapping required

iScala SM service order headers, line items, and field-service scheduling map to Dolibarr Interventions (service tickets). Technician assignments migrate as resource assignments or contact links on the intervention record. SLA flags and scheduling windows migrate as intervention extrafields. Open service orders migrate as draft or validated intervention records; completed orders migrate as closed records for historical reference.

Epicor iScala

Contract Management (CM)

maps to

Dolibarr ERP

Contracts module

1:1
Mapping required

iScala CM contract masters, terms, and billing schedules map to Dolibarr Contracts. Active contracts with billing cycles and associated customer or vendor Third Party records migrate as Dolibarr Contract records with line items representing recurring billing amounts. Contract status, start date, end date, and auto-renewal flags migrate as contract fields. Recurring billing schedules map to Dolibarr's contract frequency and billing period fields.

Epicor iScala

User-Defined Fields (UD)

maps to

Dolibarr ERP

Extrafields

lossy
Mapping required

iScala UD custom fields on standard objects require schema inventory per iScala version (2.2 through 2022.1) because UD field definitions vary significantly between releases. We inventory all UD fields during discovery, map their types to Dolibarr extrafield types (varchar, int, float, datetime, select, checkbox), and create the corresponding Dolibarr extrafield definitions before any data import. Any UD fields with no matching Dolibarr extrafield type are flagged for manual mapping review. UD field values migrate as extrafield data on the corresponding Dolibarr record.

Epicor iScala

Multi-Company / Multi-Site

maps to

Dolibarr ERP

Multiple Dolibarr instances or multi-company extension

lossy
Mapping required

iScala supports multiple companies and sites within a single SQL Server database. Dolibarr's standard installation is single-company; multi-company requires either separate Dolibarr instances per legal entity or the third-party multi-company Dolibarr extension. We scope each iScala company code as a separate migration unit, extract company-dependent records filtered by company code, and map site-specific configurations and inter-company transaction references to the customer's chosen multi-company strategy during scoping.

Epicor iScala

Attachments and Documents

maps to

Dolibarr ERP

Not migrated; documented for manual transfer

1:1
Not supported

Document attachments stored outside the iScala SQL database (file shares, SharePoint, or Epicor document management) are not migratable via API or SQL query. We document the file location references during discovery and recommend a parallel file transfer process using the customer's existing file share access. For iScala attachments stored as SQL BLOB records, we extract and load them to Dolibarr's documents directory with references updated in the migrated records.

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.

Epicor iScala logo

Epicor iScala gotchas

High

Web Services license exhaustion degrades API performance

High

Multi-company schema requires per-company scoping

Medium

User-Defined (UD) field schema varies by iScala version

Medium

Linux container migration can break file share and report paths

Low

Stock lot and serial records require linked migration

Dolibarr ERP logo

Dolibarr ERP gotchas

High

Foreign key constraint errors on cross-distribution database restore

High

SQL injection vulnerabilities in version 9.0.1

Medium

Custom fields stored as JSON in extraoptions require field-by-field deserialization

Medium

Decimal precision and rounding configuration affects price fields

Low

No native iOS/Android app forces reliance on browser

Pair-specific challenges

  • Multi-company schema requires per-company extraction scoping

    iScala stores company-dependent data under company codes within the same SQL Server database alongside company-independent system data. If extraction is not scoped to each company explicitly, records from different legal entities merge in the destination. We query company codes upfront from the iScala system configuration, build a per-company extraction filter into every table pull, and create separate Dolibarr instances or multi-company extension configurations per legal entity. Multi-company scoping is the first design decision in every iScala migration and must be resolved before any data moves.

  • Web Services license pool exhaustion degrades SQL-based extraction

    iScala's Web Services license pool governs API access, and while we use direct SQL queries for extraction, shared Web Services licenses can affect iScala's background processes during active migration windows. We monitor response times on any iScala API calls used for live validation and pause ingestion when response times exceed a threshold to prevent cascading performance degradation that could corrupt record sequencing. SQL-based extraction is our primary path, but license pool awareness is required in environments where iScala background jobs share infrastructure.

  • Dolibarr lacks native multi-currency precision for complex FX

    iScala's multi-currency GL supports complex foreign exchange scenarios including revaluation, unrealized gains/losses, and multi-period FX accounting. Dolibarr's core accounting module handles basic multi-currency invoicing but does not natively support advanced FX revaluation or multi-currency GL with period-based revaluation entries. We preserve iScala FX rates as Dolibarr extrafields on affected transactions, and flag advanced FX requirements for manual configuration or a third-party accounting extension that supports multi-currency GL revaluation.

  • UD field schema varies by iScala version; requires discovery inventory

    The UD module allows custom fields on standard objects across iScala, but the schema for UD field definitions changes between versions 2.2 and 2022.1. We inventory UD fields during discovery against the target iScala version's UD table structure. Any fields with no matching Dolibarr extrafield type are flagged for manual mapping review before migration. Skipping this inventory step results in custom fields being silently dropped or mapped to incorrect types, creating data integrity issues post-migration.

  • Dolibarr database migration errors on upgrade with MySQL key length limits

    Dolibarr's internal database migration scripts have known issues when upgrading across certain versions on MySQL/MariaDB configurations with utf8mb4 character sets, where index key length exceeds the 767-byte limit. This is relevant when migrating large contact lists with long email address fields or multi-language labels. We validate Dolibarr's character set configuration during installation and recommend utf8mb3 for migration stability where utf8mb4 key length issues are detected during pre-migration testing.

Migration approach

Six steps for a successful Epicor iScala to Dolibarr ERP data migration

  1. Discovery and multi-company scoping

    We audit the source iScala environment across active modules (GL, SL, PL, OR, PC, SC, MP, HR, PA, AM, PR, SM, CM, UD), database size, record counts per module, iScala version, and any active customizations or UD field definitions. We query iScala company codes from the system configuration to establish the multi-company extraction scope. The discovery output is a written migration scope document listing every module in scope, record volume per company code, UD field inventory, and a multi-company Dolibarr deployment strategy recommendation.

  2. Dolibarr instance provisioning and schema configuration

    We provision the target Dolibarr instance (self-hosted or DoliCloud) and configure the active modules before any data import. Module activation follows the migration scope: Third Parties, Products, Stock, Orders, Supplier Orders, Invoices, Projects, Contracts, Interventions, HR, and Assets are activated as needed. We create extrafield definitions in Dolibarr that mirror the UD field inventory from iScala. For multi-company deployments, we configure separate instances per legal entity or the multi-company extension based on the scoping decision.

  3. SQL extraction with per-company filtering

    We extract iScala data via direct SQL queries against the SQL Server database, with company code filters applied to every table pull. For each module (GL, SL, PL, OR, PC, SC, MP, HR, PA, AM, PR, SM, CM), we pull headers first, then line items and transactions, maintaining referential integrity through ordered extraction. Exchange rates, language codes, and currency identifiers are extracted alongside transactional records for multi-currency normalization. SQL extraction avoids Web Services license pool consumption and provides consistent performance regardless of iScala API availability.

  4. Data transformation and field mapping

    We transform iScala module-prefix schema rows into Dolibarr API payloads per module. Transformation includes: address and contact normalization across iScala versions; multi-currency field mapping with exchange rates preserved as extrafields; order and invoice status translation to Dolibarr status values; lot and serial number linking for stock traceability; and UD field value mapping to Dolibarr extrafield columns. Each module's transformation rules are validated against a sample of 50-100 records before bulk processing begins.

  5. Sandbox migration and reconciliation

    We run a full migration into a staging Dolibarr instance (a separate test environment or a separate DoliCloud trial) using production-like data volume. The customer's team reconciles record counts, spot-checks random records against the iScala source, and validates that multi-company data landed in the correct instance or multi-company scope. Any transformation corrections happen in this phase. We also validate that Dolibarr extrafields are populated correctly for UD field data and that multi-currency records show expected exchange rates.

  6. Production migration in dependency order

    We run production migration in record-dependency order: Third Parties (customers and suppliers), Products (with BOM and lot/serial settings), Stock (with transaction history for traceability), Assets, Projects, Orders (customer and supplier), Invoices (customer and supplier), Contracts, Interventions, HR employees, GL opening balances, then historical transactions. Each phase emits a row-count reconciliation report before the next phase begins. We freeze iScala writes during the final delta migration window and ingest the last-changed records before cutover.

  7. Cutover, validation, and workflow handoff

    We enable Dolibarr as the system of record after the final delta migration and freeze period. We deliver a written inventory of iScala reports (Crystal Reports, SSRS, iScala Query Designer), workflows, and automation rules that require rebuild in Dolibarr's module configuration or via third-party tools. We do not rebuild iScala workflows or automations as code. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's team during the first days of live operation in Dolibarr.

Platform deep dives

Context on both ends of the pair

Epicor iScala logo

Epicor iScala

Source

Strengths

  • Integrated multi-company, multi-currency General Ledger supporting real-time financial closing across subsidiaries.
  • Comprehensive manufacturing module (MP) with work orders, routings, and material production control.
  • Lot and serial number tracking in stock control (SC) for regulated industries like pharma and food.
  • Service order management (SM) with field-service scheduling for companies with on-site service operations.
  • Embedded reporting with iScala Query Designer and Crystal Reports for financial and operational analytics.

Weaknesses

  • UI is considered outdated compared to modern cloud ERPs, with no multi-window support limiting concurrent workflow.
  • Built-in reporting is difficult to use, driving users to external BI tools for ad-hoc analysis.
  • Limited public API documentation for iScala makes programmatic data extraction complex.
  • Web Services licensing model can cause degraded API response times when license pools are exhausted.
  • Steep implementation and training requirements for under-resourced IT and business user teams.
Dolibarr ERP logo

Dolibarr ERP

Destination

Strengths

  • Free core software with AGPL license and no per-user mandatory fee for self-hosted deployments.
  • Modular architecture lets teams activate only needed features, keeping the interface focused and the database lean.
  • Self-hosted option provides full data sovereignty and avoids recurring SaaS subscription costs.
  • Built-in CSV/Excel import and export wizard with saved profiles simplifies recurring data operations.
  • Low-code Module Builder allows functional extensions without writing PHP code.

Weaknesses

  • No native documented REST API for programmatic bulk operations — all migrations depend on the import/export wizard or direct database access.
  • Reporting and analytics are weak without paid add-ons, and built-in charts are limited compared to modern SaaS platforms.
  • UI design is described as dated by multiple reviewers, with infrequent visual updates to the default theme.
  • Community-only support for self-hosted deployments means no SLA or guaranteed response time for issues.
  • Security vulnerabilities (CVE-2024-5314, CVE-2024-5315) in version 9.0.1 with no immediate patch reported.

Complexity grading

How hard is this migration?

Standard ERP migration. All 8 core objects map 1:1 between Epicor iScala and Dolibarr ERP.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Epicor iScala and Dolibarr ERP.

  • Object compatibility

    A

    All 8 core objects map 1:1 between Epicor iScala and Dolibarr ERP.

  • 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

    Epicor iScala: Not publicly documented for iScala; Web Services license pool governs concurrent API sessions rather than a per-minute rate.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Epicor iScala to Dolibarr ERP 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 Epicor iScala to Dolibarr ERP data migrations

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

Can't find your answer?

Walk through your Epicor iScala to Dolibarr ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between four and eight weeks for deployments with 2-4 active iScala modules, under 50,000 total records, and a single-company scope. Full-stack migrations covering the complete module range including MP (manufacturing), HR/PA (payroll), AM (assets), and PR (projects) with multi-company data or large transaction histories move to ten to sixteen weeks because of SQL schema mapping complexity, BOM and routing translation, and multi-currency normalization work.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Epicor iScala.
Land in Dolibarr ERP, 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