ERP migration
Field-level mapping, validation, and rollback between Sage 100cloud and Microsoft Dynamics 365 Business Central. We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Business Central.
Sage 100cloud
Source
Microsoft Dynamics 365 Business Central
Destination
Compatibility
11 of 15
objects map 1:1 between Sage 100cloud and Microsoft Dynamics 365 Business Central.
Complexity
BStandard
Timeline
10-16 weeks
Overview
Moving from Sage 100cloud to Microsoft Dynamics 365 is two distinct migrations under one product family: Business Central for sub-300-user mid-market deployments, and Finance & Operations (D365 F&O, formerly AX) for enterprise-grade multi-entity, manufacturing, and supply-chain depth. We confirm the destination edition during scoping, because Business Central uses Configuration Packages (RapidStart) for data load while F&O uses the Data Management Framework (DMF) with Lifecycle Services (LCS) data packages — different tooling, different sequencing, different validation. Sage 100cloud lacks a public REST API for live transactional data, so all extraction runs against the Pervasive SQL or Microsoft SQL Server database underlying the MAS 90/200 codebase, with read-only credentials scoped to the company database. Custom UDFs in Sage's extension tables require manual schema discovery and per-field mapping. Workflows, approval rules, and automation logic from Sage do not migrate; we deliver a written rebuild specification for Power Automate (Business Central) or Workflow editor (F&O). Closed and locked fiscal periods drive a business decision about whether historical GL transactions are in or out of scope.
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.
Source platform
Sage 100cloud platform overview
Scorecard, SWOT, gotchas, and pricing for Sage 100cloud.
Destination platform
Microsoft Dynamics 365 Business Central platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Business Central.
Data migration guide
The complete Dynamics 365 Business Central migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Dynamics 365 Business Central migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Business Central.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Sage 100cloud object lands in Microsoft Dynamics 365 Business Central, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Sage 100cloud
Chart of Accounts (GL)
Microsoft Dynamics 365 Business Central
G/L Account (BC) or Main Account (F&O)
1:1Sage 100cloud's GL accounts export from the GL_Account master via SQL or BIE view. In Business Central we load via RapidStart Configuration Package on the G/L Account table, preserving Account No., Name, Account Type, and Direct Posting flag. In F&O we use the DMF Main Account entity (LedgerChartOfAccountsEntity) and recreate the account structure in the Chart of Accounts. Sage segment values (Type, Division, Department) become Financial Dimensions in F&O or Dimension Codes in BC, configured before account import so dimension references resolve.
Sage 100cloud
Customer (AR_Customer)
Microsoft Dynamics 365 Business Central
Customer (BC) or Customer (F&O)
1:1Sage AR_Customer maps to the Dynamics Customer entity. Customer number, name, billing address, shipping addresses, payment terms, credit limit, and salesperson assignment migrate. In BC we use the Customer table via RapidStart; in F&O we use the CustCustomerV3Entity through DMF. Multi-ship-to records are flattened in Sage and recreated as multiple Ship-to Addresses on the destination Customer record. We preserve the Sage Customer No. as a custom field for cross-reference.
Sage 100cloud
Vendor (AP_Vendor)
Microsoft Dynamics 365 Business Central
Vendor (BC) or Vendor (F&O)
1:1Sage AP_Vendor records (address, payment terms, 1099 flag, W-9 status) map to Dynamics Vendor. In BC we load via Configuration Package on Vendor; in F&O we use VendVendorV2Entity. 1099 settings transfer to the 1099 fields on the destination vendor card to preserve year-end reporting. Bank account information for ACH/wire payments is loaded separately into the Vendor Bank Account entity, with routing and account numbers re-encrypted under Dynamics' protected fields.
Sage 100cloud
Inventory Item (IC_Item)
Microsoft Dynamics 365 Business Central
Item (BC) or Released Product (F&O)
1:1Sage IC_Item migrates to BC Item or F&O Released Product. Item No., Description, Base Unit of Measure, Item Tracking (Lot or Serial), Costing Method (FIFO, LIFO, Average, Standard), and Inventory Posting Group transfer. In F&O the Released Product is created from a Product Master first; we generate the master records during transformation. Lot and serial-tracked items require Item Tracking Code assignment before the inventory balance load.
Sage 100cloud
Bill of Materials (IC_BOM)
Microsoft Dynamics 365 Business Central
Production BOM (BC) or BOM Version (F&O)
1:manySage BOM headers and components split into Dynamics Production BOM (BC) or BOM Version (F&O). Each BOM component becomes a Production BOM Line in BC or a BOM Line in F&O. Phantom BOMs from Sage are flagged for re-modeling because Dynamics treats phantoms differently (BC uses Production BOM Type, F&O uses Line Type = Phantom). Routing data, if maintained in Sage Production Management, becomes a Routing in BC or a Route in F&O loaded separately. Effective dates are preserved on BOM Versions.
Sage 100cloud
Open AR Invoice
Microsoft Dynamics 365 Business Central
Customer Ledger Entry (BC) or Customer Open Transaction (F&O)
1:1Open accounts receivable from Sage AR_Invoice migrate as Customer Ledger Entries in BC (via the Sales Invoice journal posted at the cutover balance) or as open transactions through the CustCustomerOpenTransV2Entity in F&O. We preserve original invoice date, due date, amount remaining, document number, and currency. Partially-applied payments are loaded as separate Customer Ledger Entries with the application table reconstructed post-load. The total open AR balance must reconcile to the GL Accounts Receivable control account.
Sage 100cloud
Open AP Invoice
Microsoft Dynamics 365 Business Central
Vendor Ledger Entry (BC) or Vendor Open Transaction (F&O)
1:1Sage AP_Invoice open balances migrate as Vendor Ledger Entries in BC (via a Purchase Invoice journal posted at cutover) or through the VendVendorOpenTransV2Entity in F&O. We preserve original invoice date, due date, amount remaining, document number, vendor reference, and 1099 amount. Held invoices and disputed invoices from Sage are flagged via a status custom field and either loaded with a hold flag in Dynamics or excluded with customer sign-off.
Sage 100cloud
Fixed Asset (FA_Asset)
Microsoft Dynamics 365 Business Central
Fixed Asset (BC) or Fixed Asset (F&O)
1:1Sage FA_Asset records (acquisition cost, depreciation method, useful life, book value, accumulated depreciation) migrate to Dynamics Fixed Asset. BC uses the Fixed Asset table loaded via RapidStart with separate Depreciation Book records per book. F&O uses FixedAssetEntity with separate Book entries per Value Model. Sage depreciation methods (straight-line, declining balance, MACRS) map to Dynamics equivalents; non-standard methods are flagged and require customer sign-off on the mapping before posting.
Sage 100cloud
GL Transaction History
Microsoft Dynamics 365 Business Central
G/L Entry (BC) or General Journal (F&O)
lossyHistorical GL transactions from Sage are migrated only with explicit scoping. In BC we use the General Journal to post historical entries to a separate historical posting group with an opening balance reversal entry to net the impact. In F&O we use the General Journal Entity through DMF with a dedicated journal name. Locked Sage fiscal periods must be unlocked or excluded; the customer signs off on the historical migration window (typically two to seven years) before any historical GL is loaded.
Sage 100cloud
Sales Order (SO_SalesOrder)
Microsoft Dynamics 365 Business Central
Sales Order (BC) or Sales Order (F&O)
1:1Open Sales Orders from Sage migrate to Dynamics Sales Order. Header fields (customer, ship-to, payment terms, requested ship date) and line items (item, quantity, unit price, line discount) transfer. In BC we load via the Sales Header and Sales Line tables; in F&O we use SalesOrderHeaderV2Entity and SalesOrderLineV2Entity. Partially-shipped lines are split into shipped and remaining components, with the remaining quantity carried into Dynamics as the open balance. Closed historical sales orders are typically excluded unless explicitly scoped.
Sage 100cloud
Purchase Order (PO_PurchaseOrder)
Microsoft Dynamics 365 Business Central
Purchase Order (BC) or Purchase Order (F&O)
1:1Open Purchase Orders from Sage migrate to Dynamics Purchase Order. Header (vendor, ship-to, requested receipt date, payment terms) and lines (item, quantity, unit cost, expected receipt date) transfer. In BC we load via Purchase Header and Purchase Line; in F&O we use PurchPurchaseOrderHeaderV2Entity and PurchPurchaseOrderLineV2Entity. Partially-received POs are split into received and remaining quantities, with the received portion documented but not re-posted. We flag POs with multiple receipts at scoping for customer decision on whether to migrate as open or closed.
Sage 100cloud
Inventory Balance (on-hand)
Microsoft Dynamics 365 Business Central
Item Ledger Entry (BC) or InventOnHand (F&O)
1:1Inventory on-hand balances per item per warehouse per lot per serial are loaded at cutover. In BC we use the Item Journal to post positive adjustments with the correct posting groups, then reconcile to the inventory GL control account. In F&O we use the InventOnHandV2Entity with the appropriate site, warehouse, and inventory dimension. Lot and serial numbers are preserved exactly to maintain traceability. Bin-level balances require Warehouse Management activation in the destination before load.
Sage 100cloud
Job Costing (JC_Job, JC_Transaction)
Microsoft Dynamics 365 Business Central
Job (BC) or Project (F&O)
lossySage Job Costing maps to BC Jobs or F&O Project Management and Accounting. Job structures (phases, cost codes, budget vs actual) require field-level reconfiguration. In BC we map Sage phases to Job Task Lines; in F&O we map to Project Categories under a project hierarchy. Historical job transactions migrate as Job Ledger Entries (BC) or Project Transactions (F&O). Open work-in-process balances are loaded as a single opening WIP entry per job, reconciled to the WIP GL control account.
Sage 100cloud
Custom UDF (per module)
Microsoft Dynamics 365 Business Central
Custom field via extension (BC) or table extension (F&O)
lossySage UDFs in module-specific extension tables have no standard export. We query the Sage SQL schema for non-standard columns per module, export to sidecar CSV, and create matching custom fields in Dynamics via AL extensions (BC) or table extensions through Visual Studio Application Object Tree (F&O). Field-level data type translation is manual (Sage varchar, decimal, date map to AL/F&O equivalents). Custom field count is unconstrained but each field adds to the extension's deployment footprint; we recommend consolidation before creation.
Sage 100cloud
User (Sage 100cloud user)
Microsoft Dynamics 365 Business Central
User (BC) or User (F&O)
1:1Sage users map to Dynamics users by email match against Microsoft Entra ID. Active users are provisioned in Microsoft Entra and assigned to the Dynamics environment via license assignment before record import. User Permission Sets (BC) or Security Roles (F&O) are recreated from Sage role definitions, with the customer's admin signing off on the role mapping. Inactive Sage users are not provisioned but their historical record ownership is preserved with the original username stored in a custom audit field on affected records.
| Sage 100cloud | Microsoft Dynamics 365 Business Central | Compatibility | |
|---|---|---|---|
| Chart of Accounts (GL) | G/L Account (BC) or Main Account (F&O)1:1 | Fully supported | |
| Customer (AR_Customer) | Customer (BC) or Customer (F&O)1:1 | Fully supported | |
| Vendor (AP_Vendor) | Vendor (BC) or Vendor (F&O)1:1 | Fully supported | |
| Inventory Item (IC_Item) | Item (BC) or Released Product (F&O)1:1 | Fully supported | |
| Bill of Materials (IC_BOM) | Production BOM (BC) or BOM Version (F&O)1:many | Fully supported | |
| Open AR Invoice | Customer Ledger Entry (BC) or Customer Open Transaction (F&O)1:1 | Fully supported | |
| Open AP Invoice | Vendor Ledger Entry (BC) or Vendor Open Transaction (F&O)1:1 | Fully supported | |
| Fixed Asset (FA_Asset) | Fixed Asset (BC) or Fixed Asset (F&O)1:1 | Fully supported | |
| GL Transaction History | G/L Entry (BC) or General Journal (F&O)lossy | Fully supported | |
| Sales Order (SO_SalesOrder) | Sales Order (BC) or Sales Order (F&O)1:1 | Fully supported | |
| Purchase Order (PO_PurchaseOrder) | Purchase Order (BC) or Purchase Order (F&O)1:1 | Fully supported | |
| Inventory Balance (on-hand) | Item Ledger Entry (BC) or InventOnHand (F&O)1:1 | Fully supported | |
| Job Costing (JC_Job, JC_Transaction) | Job (BC) or Project (F&O)lossy | Fully supported | |
| Custom UDF (per module) | Custom field via extension (BC) or table extension (F&O)lossy | Fully supported | |
| User (Sage 100cloud user) | User (BC) or User (F&O)1: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.
Sage 100cloud gotchas
No native REST API exposes live transactional data
Rate limits and login attempt thresholds block API access
Parallel Migration Wizard breaks after moving to a new installation
Custom UDFs and custom fields have no standardized export path
Historical GL periods may be locked or archived
Microsoft Dynamics 365 Business Central gotchas
Named-user licensing has no concurrent-use relief
API rate limits throttle large-volume migrations
Historical posted transactions require selective migration scoping
NAV-to-Business Central cloud migration requires partner coordination
Custom fields and AL extensions require separate migration handling
Pair-specific challenges
Migration approach
Destination edition decision and SQL extraction setup
Week one drives the Business Central vs Finance & Operations decision through a structured checklist (user count, multi-entity count, manufacturing depth, WMS needs, multi-currency requirements, budget). The decision is signed off in writing before any further work. We then establish a read-only SQL connection to the Sage Pervasive SQL or Microsoft SQL Server instance, scoped to the company database, either via VPN or a customer-hosted SQL Server jump box. The first extraction pass enumerates the database schema, counts rows per table, and identifies every UDF column across every module. The schema document drives the destination build.
Destination environment build (BC RapidStart or F&O LCS sandbox)
For Business Central we provision a sandbox via the BC admin center, build the chart of accounts dimension structure, configure posting groups, and create RapidStart Configuration Packages for each migrated entity. For F&O we provision a Tier 2 sandbox via LCS, configure the legal entities, and build the DMF data project containing all required Data Entities with composite entity sequencing. Custom UDF extensions are developed in parallel by FlitStack AI developers and deployed to the sandbox. The sandbox environment is locked from manual changes once the destination schema is verified.
Staged SQL extraction and transformation
We extract Sage data in the order Chart of Accounts, Customers, Vendors, Items, BOMs, Fixed Assets, Open AR, Open AP, Inventory Balances, Sales Orders, Purchase Orders, Job Costing using read-only SQL queries against the AR_, AP_, IC_, FA_, GL_, SO_, PO_, JC_ tables and BIE data views. Each extracted batch lands in a staging SQL Server or Postgres database where transformations are applied: posting group assignment, dimension reference resolution, currency code normalization, customer or vendor number formatting, UDF type coercion. Transformations are tested batch-by-batch with row-count and null-count validation before any data moves to Dynamics.
Dry-run load to sandbox with reconciliation
For BC we run the RapidStart Configuration Packages in sequence (G/L Account, Dimension, Customer, Vendor, Item, etc.) against the sandbox. For F&O we run the DMF data project against the Tier 2 sandbox using the LCS data package import. Reconciliation runs after the dry-run: trial balance comparison against Sage, open AR/AP balance match to GL control accounts, inventory item count and on-hand quantity match, fixed asset book value comparison. The customer's CFO or controller signs off on the dry-run reconciliation before we schedule the production window.
Production cutover with frozen Sage window
Production cutover runs over a freeze window (typically a long weekend or holiday) during which Sage is closed to posting. We refresh the destination from sandbox to production using the BC environment management or LCS database refresh, then run the production load in the same sequence as the dry-run. Each entity load is monitored for error rates and the run is paused if error count exceeds a threshold. The full load typically completes in 12-72 hours depending on volume; for F&O with full historical GL the window can extend to 96 hours, which we plan around a four-day weekend.
Reconciliation and parallel-close validation
Post-cutover reconciliation runs in three passes: trial balance comparison, open AR/AP balance reconciliation, and inventory on-hand reconciliation. Any deltas are logged and either retried (transient DMF errors) or surfaced to the customer for manual review (data conditions like unposted Sage journals discovered post-cutover). The customer's finance team then runs a parallel close: the first month-end after cutover is closed in Dynamics, and the result is compared to the prior month's Sage close pattern. Parallel close issues are logged for the customer's controller to resolve.
Sign-off, automation rebuild specification, and handover
Final sign-off includes the reconciliation report, the UDF mapping document, the Sage automation rebuild specification (Power Automate flows for BC or Workflow editor for F&O), and the security role mapping. We do not perform the automation rebuild, the security role configuration, or the user training; these sit with the customer's Dynamics partner or internal team. The Sage SQL extraction credentials are revoked and the staging environment is decommissioned. The customer's Microsoft partner relationship continues for post-go-live support, which is outside FlitStack AI scope.
Platform deep dives
Sage 100cloud
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Business Central
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 1 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 Sage 100cloud and Microsoft Dynamics 365 Business Central.
Object compatibility
1 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
Sage 100cloud: 100 req/min per company; 5,000 req/day per company; 20 failed login attempts per hour before 24-hour lockout.
Data volume sensitivity
Sage 100cloud 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 Sage 100cloud to Microsoft Dynamics 365 Business Central migration scoping. Not seeing yours? Book a call.
Walk through your Sage 100cloud to Microsoft Dynamics 365 Business Central migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Sage 100cloud
Other ways to arrive at Microsoft Dynamics 365 Business Central
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.