Manufacturing ERP Migration: Move to Dynamics 365 With Zero Downtime
A technical guide to manufacturing ERP migration to Dynamics 365 — covering BOM migration, FIFO cost layers, WIP cutover logic, MES integration, and phased rollout strategies for zero downtime.
Planning a migration?
Get a free 30-min call with our engineers. We'll review your setup and map out a custom migration plan — no obligation.
Schedule a free call- 1,200+ migrations completed
- Zero downtime guaranteed
- Transparent, fixed pricing
- Project success responsibility
- Post-migration support included
Every plant manager says the same thing: "We can't go down for a day." Not a shift. Not an hour. The production line runs, or the business bleeds.
For a manufacturer, the ERP is not a financial ledger. It is the central nervous system of the shop floor — controlling inventory routing, machine scheduling, operator instructions, and compliance tracing. Moving a manufacturer to Dynamics 365 Finance & Supply Chain Management is not an IT project. It is a production continuity exercise with an IT component.
Standard migration approaches fail on the shop floor because they treat production data like static CRM records. You cannot "pause" a continuous process line, and you cannot afford to lose the genealogy of a lot-tracked component mid-assembly. Microsoft's Data Management Framework (DMF) provides standard entities for items, BOMs, routes, and vendors — but it does not provide a packaged playbook for partially completed manufacturing WIP. (learn.microsoft.com) That gap is where projects become risky.
This guide covers the exact technical constraints, cutover logic, and phased strategies that keep the line running during a manufacturing ERP migration to Dynamics 365. For the foundational failure patterns behind ERP data migrations, see Why ERP Migrations Fail at the Data Layer: 9 Core Patterns.
Zero downtime in manufacturing does not mean "nobody works during cutover." It means the plant keeps issuing material, producing, receiving, and tracing inventory while ownership of transactions moves from the legacy ERP to Dynamics 365.
Discrete vs. Process Manufacturing: The Data Implications Differ
Before writing a single migration script, classify your manufacturing mode. The data structures are fundamentally different, and D365 treats them differently.
Discrete manufacturing produces countable, assemblable units — machinery, electronics, vehicles. The migration payload centers on:
- Multi-level BOMs with parent-child component hierarchies and strict effectivity dates
- Routings (operations, work centers, run/setup times)
- Serial and lot tracking with full genealogy
- Kit assemblies and phantom BOMs
- Engineering Change Order (ECO) history
Discrete manufacturing ERP software focuses on managing individual components, BOM, routing, and assembly processes. In Dynamics 365, approved BOM versions are selected by validity rules such as date, quantity, site, and dimensions. Phantom BOM lines can explode lower-level components and merge routes into the parent during estimation — useful for engineering structures but a common source of performance issues when phantom hierarchies get deep. (learn.microsoft.com)
Process manufacturing produces goods in batches that cannot be disassembled — chemicals, food, pharmaceuticals. The migration payload is different:
- Formulas and recipes (not BOMs) with ingredient proportions, yield calculations, and potency logic
- Batch records with concentration and shelf-life attributes
- Co-products and by-products from single production runs
- FDA 21 CFR Part 11 audit chains and cGMP compliance records
With batch process manufacturing, calculating the formula is much more complex. Recipes can be updated or revised, attributes changed, proportions customized and volumes scaled. Formula versions must be approved, and only one formula version is typically active for a given coverage and quantity context. (learn.microsoft.com)
Mixed-mode manufacturers — roughly 30% of the mid-market — do both. A pharma company may manufacture bulk drug product using process mode, then use discrete mode for tableting and packaging. D365 supports mixed-mode planning, but formula-type items follow different sourcing rules. Microsoft notes that Formula, Co-product, By-product, and Planning item production types cannot use kanbans or production orders the same way BOM items do. (learn.microsoft.com) That means mixed-mode manufacturers need two migration pipelines sharing one cutover calendar.
If you are a mixed-mode manufacturer, do not unify discrete and process data into a single migration stream. The validation logic, cost roll-up behavior, and regulatory requirements are different enough that merging them guarantees errors.
The Bill of Materials (BOM) Migration Challenge
This is where manufacturing migrations collapse. A BOM in your legacy system is not the same object as a BOM in D365. The mapping is deceptively complex.
Multi-level BOMs require correct parent-child sequencing. If you load a child component after its parent, D365 will reject the parent or create it with missing references. Every BOM level must be imported bottom-up, mapped across the correct DMF entity sequence: BOMTable (the header), BOMVersion (the link to the item), and BOMLine (the components).
A legacy system might allow circular references, orphaned phantom assemblies, or overlapping effectivity dates. Dynamics 365 will reject all of these during import.
Phantom assemblies — sub-assemblies that exist for planning but never hit inventory — must be flagged correctly. In D365, phantom BOMs explode their components into the parent production order. If your legacy system represents phantoms differently (as regular items with a flag, or as separate planning BOMs), the transformation logic must handle the conversion. When a production or batch order is created, the engineering BOM is copied to the order, and estimation can convert phantom lines into a manufacturing BOM by exploding the lower-level items and merging applicable route operations. This is useful when the engineering structure does not match shop-floor execution, but it is also a common source of mismatch when teams migrate the visible parent-child tree but forget the execution-time explosion behavior. Microsoft warns that deep phantom hierarchies can hurt performance in repetitive environments. (learn.microsoft.com)
Effectivity dates control which BOM version is active at any given time. Start and End Date fields on BOM lines allow individual components to come into and out of effect based on date parameters. The system will use the version with the most recent starting date for production orders. You must migrate all active and future-dated versions, not just the current one. If you do not migrate effectivity dates correctly, D365 will use the wrong BOM version for production orders that span the cutover.
Engineering Change Management (ECM) adds another layer of complexity. The engineering bill of materials (BOM) and routes won't automatically be released to those companies. Be sure to review each of the converted products and decide whether you need to release the BOMs and/or routes. The conversion to engineering-controlled items is permanent, and every converted product needs manual review or custom scripting to release BOMs and routes to operating companies. Standard migration tools do not handle this step. (learn.microsoft.com)
ECM Migration Trap: Relying solely on standard DMF entities for ECM conversions will leave your operational companies without active BOMs at cutover. You must build custom scripts to programmatically release engineering BOMs and routes to the required legal entities.
If your legacy system has 15 years of Engineering Change Orders and BOM revision history, do not migrate all of it to active tables. Archive the historical revisions and only migrate the currently active BOMs and the immediate next pending revision.
Before UAT, expect these BOM validation checks to pass:
- Every parent, component, site, warehouse, and tracking-dimension combination resolves in the target
- Effectivity windows and revision dates do not overlap unless the business explicitly wants parallel-valid versions
- Phantom explosion in D365 produces the same consumable component set the plant expects
- Route operations, work centers, and subcontract steps line up after conversion
- ECO history is either migrated to archive, or explicitly reset with audit approval
If a table's configuration key is disabled in D365, the associated data entity becomes non-functional. If the configuration key for a table is disabled, that table isn't available in the data entity for functional use. This can silently break imports and API integrations during your migration. Always validate your data entities against active configuration keys in a pre-production environment that mirrors your production configuration exactly.
For a deeper look at why bloated data scopes kill migration projects, read Why ERP Migrations Fail at the Data Layer: 9 Core Patterns.
Migrating Inventory Cost Layers (FIFO/LIFO)
Inventory valuation continuity is a finance-critical requirement. If your COGS is wrong on Day 1 in the new system, your P&L is wrong, and your auditors will notice.
The core problem: historical cost layers matter. If you are running FIFO in your legacy system, each receipt of inventory created a distinct cost layer. Those layers determine how cost flows into COGS when items are consumed or sold.
Many implementation teams attempt to migrate inventory by posting a single journal line per item with the total quantity and average cost. If you use FIFO or LIFO valuation, this approach destroys your cost layers. When you post opening inventory, the system creates cost layers. For FIFO items, those layers determine how costs flow into COGS. If you post one journal line per item, you get a single cost layer. A single line per item effectively converts your FIFO inventory to average cost — changing your COGS for every subsequent issue.
First in, first out (FIFO) is an inventory management and valuation method where inventory that is produced or acquired first is sold, used, or disposed of first. During the inventory close process in Microsoft Dynamics 365 Supply Chain Management, the system creates settlements where the first receipt is matched against the first issue, and so on.
To preserve true FIFO cost layers during inventory migration:
- Run inventory close in the legacy system as of the cutover date.
- Export the inventory valuation report by item, lot, warehouse, and cost layer.
- Extract the specific receipt layers (Quantity, Unit Cost, Original Receipt Date).
- Format the import file to create multiple journal lines per item in the
InventJournalTransentity, representing the distinct historical receipts. - Ensure posting dates on the journal lines match the original receipt dates to preserve chronological aging.
- Post the movement journal.
- Run inventory recalculation in D365.
- Compare the D365 inventory valuation report to the legacy report — they must match to the penny.
This is labor-intensive but non-negotiable for financial accuracy. If your legacy system has inventory valued at $10M, Dynamics 365 must show exactly $10M, valued using the exact same cost layers.
Microsoft's inventory value reporting is designed for reconciliation between inventory and the general ledger and can isolate physical, financial, COGS, and WIP views of inventory — use it as your validation tool. (learn.microsoft.com)
If your legacy system uses standard costing and you are staying on standard cost in D365, the migration is simpler — you only need to load the active standard cost version. But if you are changing costing methods during migration (e.g., standard to FIFO), every open transaction must be financially settled first. In order to change the item model group on existing items, you'll need to have ALL transactions for that item financially closed.
For guidance on deciding what historical data to migrate versus starting fresh, see What Data Should You Actually Migrate to Your New ERP?.
The Hardest Part: Open Work Orders and WIP at Cutover
Work in Process (WIP) is the single hardest data category in any manufacturing ERP migration. At the exact moment of cutover, there are half-assembled machines, vats of mixing chemicals, and pallets of partially completed goods. A production order that is 60% complete has consumed materials, booked labor, and accumulated cost — but has not produced a finished good yet. That value lives on your balance sheet. It cannot disappear during cutover.
Dynamics 365 does not provide standard data entities for migrating partially completed production orders. You cannot export a production order that is 60% complete in the legacy system and import it as 60% complete in D365. If you must migrate open WIP, you cannot just insert a record saying "50% done." You must simulate the reality inside the ERP.
There are two strategies.
Strategy A: Drain the Line
The preferred approach. Stop releasing new orders 2 weeks before Go-Live. Force the factory to finish everything that is open. Complete all production orders that can reasonably be finished. Report remaining semi-finished goods into inventory at their current stage. At cutover, you migrate only on-hand inventory balances — no open production orders.
This works when your production lead times are short (days, not weeks) and you can build safety stock in advance.
Strategy B: Operation State Snapshot
Required when you have long-running production orders (aerospace, heavy equipment, complex assemblies) that cannot be completed before cutover.
You must simulate the reality inside the ERP. Migrate the production order. Replicate Material Consumption: you cannot migrate a transaction. You must re-execute the issue. Depending on your parameterization (Backflushing vs. Manual), you either report the completed operation to trigger the automatic issue or manually issue the material to align the WIP balance. Migrate the Hours: Inject logic to book the labor hours already spent. Result: The order sits at the correct cost and status, ready for the next operation.
The execution sequence:
- Freeze the legacy system at a defined cutover instant.
- Capture the exact state of every open production order: operation progress, materials consumed, hours booked, quantity started, quantity reported finished, scrap, and lot/serial assignments.
- Create the production order in D365 with the correct BOM and routing.
- Replay material issues and operation completions programmatically to replicate consumed work.
- Reconcile the WIP value in D365 against the legacy WIP account in the trial balance.
- Validate by running first-article checks on a small set of in-process orders before full plant release.
Avoid Option B if you can. It requires massive testing and often results in costing discrepancies. When it is unavoidable, plan for at least three full rehearsal cutovers.
In-process serial numbers need special care. If a unit already has a serial or lot identity mid-process, that identity becomes part of the WIP snapshot. Dynamics 365 production floor execution supports batch and serial capture for tracked components and finished products, and quality associations can generate quality orders by batch and serial at report-as-finished. (learn.microsoft.com) If you lose that chain at cutover, genealogy is broken even if quantities balance.
Do not bypass standard entities with direct SQL inserts to force open production orders into D365. This will break referential integrity, corrupt inventory cost layers, and destroy lot traceability. A started order is not "just another transaction." It is a live bundle of material, labor, routing state, and traceability.
Shop Floor Continuity and MES Integration
The ERP is only half the picture. Your shop floor likely runs on a Manufacturing Execution System (MES) connected to barcode scanners, PLCs, weigh scales, and operator terminals. During cutover, every one of those integrations must be re-pointed from the legacy ERP to D365 — and the shop floor cannot go dark.
This is not just another working weekend. It is a highly synchronized 48-to-72-hour cutover sequence where every minute is accounted for.
The 48-Hour Cutover Sequence
- Friday 6 PM: Legacy system enters read-only mode. Final inventory counts and WIP snapshots are captured.
- Friday 8 PM – Saturday: Static and dynamic data loads into D365 production. Master data, open orders, inventory balances.
- Saturday afternoon: MES integration endpoints are switched to D365. Shop floor terminals are reconfigured.
- Saturday evening – Sunday: Integration smoke tests. Scan a barcode. Issue a material. Report an operation. Verify the transaction lands in D365.
- Sunday afternoon: Go/No-Go decision. Reconciliation dashboard reviewed by steering committee.
- Monday 6 AM: Operators log into the new system.
D365's production floor execution interface is configured per device — each can have its own configuration and filters by production unit, resource group, or resource. (learn.microsoft.com) That device-by-device model is useful during cutover. It lets you switch one cell, line, or plant at a time instead of flipping every terminal at once.
For plants running 24/7, you cannot shut down at all. This is where the phased rollout becomes mandatory — you bring up D365 plant by plant, shift by shift, running legacy and D365 in parallel during the transition window.
The critical question is event ownership: which system posts start, consumption, scrap, completion, labels, and quality status after go-live? D365 supports both OData-based synchronous integration and asynchronous data-management flows, so the design issue is usually not "can we connect it?" but "who owns each transaction after midnight on go-live?" (learn.microsoft.com)
PLC integrations (OPC-UA, MQTT, direct I/O) typically connect to the MES, not the ERP directly. Changing the ERP does not break your PLC layer as long as the MES middleware is correctly re-pointed. The risk is in the middleware contract that turns machine events into ERP transactions. If the payload shape, endpoint, item keys, or transaction owner changes at cutover, you need regression testing before the line runs live. Validate this in a test environment before cutover weekend.
Quality Data and Lot Traceability
For FDA-regulated, FAA-regulated, or ISO-certified manufacturers, lot genealogy and batch records are not just operational data — they are legal requirements.
21 CFR Part 11 applies to records in electronic form that are created, modified, maintained, archived, retrieved, or transmitted under any records requirements set forth in Agency regulations.
Key migration considerations:
- Lot genealogy (forward and backward traceability) must be migrated with intact parent-child lot relationships. If Lot A of raw material went into Batch B of finished product, that linkage must exist in D365.
- Certificates of analysis attached to lots should be migrated as document attachments linked to the correct batch/lot records. D365 supports printing a COA directly from an inventory batch using the quality order linked to that batch. (learn.microsoft.com)
- Audit trails from the legacy system should be archived in a read-only format accessible for regulatory inspection. Do not try to load legacy audit trail records into D365's audit log — archive them separately and maintain access.
- When migrating data into an active system, FDA's 2003 guidance says legacy systems may have some flexibility, but migrating data into an active system implies compliance. So IT documents the migration process and validates that all values moved correctly (ensuring no data integrity gap).
The migration itself becomes a validation event. Document every transformation, validate every record count, and retain evidence packages for inspection. (fda.gov)
Microsoft's Traceability app supports backward genealogy search, forward where-used search, and Copilot-generated summaries of tracked-object history. Microsoft positions the forward search as a way to find impacted finished goods in recall scenarios. (learn.microsoft.com) That is the standard you should validate against: can you answer "where did this lot go?" and "what went into this serial?" on Day 1.
Most manufacturers choose a hybrid approach: migrate active lots (last 12–24 months) into D365's batch tracking tables and archive everything older in a validated, read-only reporting layer accessible for the full regulatory retention period.
The Phased Rollout Blueprint for Manufacturers
A big-bang cutover is almost never appropriate for manufacturers running multiple plants. The risk is too concentrated. The most successful strategy is a phased rollout that isolates risk by functional area.
Phase 1: Finance + Procurement + Master Data (Weekend 1)
- Chart of accounts, vendors, customers, items, BOMs, routings
- AP/AR, GL, bank accounts, tax configuration
- Procurement workflows
- Legacy ERP remains the system of record for production and inventory
The first phase should harden your Dynamics 365 landscape while leaving day-to-day production untouched. This de-risks the most dangerous phase by ensuring finance and master data are stable and validated before anyone touches production.
Phase 2: Inventory + Warehouse (4–8 Weeks Later)
- On-hand inventory with cost layers
- Warehouse configuration, locations, bin structures
- Warehouse Management System (WMS) integration if applicable
- Inventory valuation reconciliation against GL
This is a high-stress weekend. You freeze the warehouse, execute a physical cycle count, and migrate the on-hand inventory balances, lot numbers, and FIFO cost layers.
Phase 3: Production + Shop Floor (6–12 Weeks Later, Plant by Plant)
- Production orders, MES integration, shop floor terminals
- Quality management, lot traceability
- Plant-by-plant rollout for multi-site operations
- Each plant gets its own cutover weekend with a dedicated rehearsal and Go/No-Go decision
This sequence is boring on purpose. It isolates the data classes that break plants — BOM behavior, cost layers, open WIP, lot genealogy, shop-floor execution — from the data classes that mostly break finance and admin.
Can you go live one plant at a time? Yes. D365 production-floor devices are configured per device and can be filtered by production unit, resource group, and resource, which makes staged plant or line cutovers practical when site boundaries and integrations are clean. (learn.microsoft.com)
If part of your program is also a platform move from older Dynamics deployments, The Practical Guide to Moving from On-Prem Dynamics to Dynamics 365 Online covers the infrastructure side.
Clean Data for Copilot and AI Agents
Microsoft is embedding Copilot and AI agents into the Dynamics 365 Supply Chain module. One of the most important Dynamics 365 supply chain trends for 2026 is the rise of agentic ERP. In this model, intelligent agents can execute tasks with greater autonomy, such as reconciling accounts, communicating with suppliers, and optimizing workflows.
At Hannover Messe 2026, Microsoft is showcasing how agentic ERP with Copilot, agents and Dynamics 365 supports these operational decisions amid constant change, helping manufacturers replan faster, make better production tradeoffs, and meet or exceed customer service SLAs.
The migration implication: the data has to be clean now to enable AI later. Copilot's demand planning, supplier communication agents, and production optimization features all depend on structured, consistent master data. Duplicate items, inconsistent BOMs, broken lot genealogy chains, and corrupted lead times do not just cause operational problems — they make AI features useless. If you migrate dirty data, Copilot generates hallucinations instead of insights.
Treat data quality as an AI-readiness investment, not just a migration requirement. For a deeper look at preparing your data layer, see Dynamics 365 + Copilot — Getting Your Migrated Data Ready for AI.
When the Line Cannot Stop, the Migration Has to Be Perfect
Manufacturing ERP migrations fail when they are treated like generic IT projects. The shop floor does not care about your project timeline — it cares about whether the right BOM loads on the next work order, whether the scanner reads the lot number, and whether the cost roll-up matches what finance expects.
The technical constraints are real: phantom BOMs that do not map cleanly, FIFO cost layers that collapse into averages, WIP orders that cannot be "copied" into a new system, MES endpoints that need re-pointing in a 48-hour window. Each of these is solvable — but only if the team executing the migration has done it before and knows where the failures hide.
At ClonePartner, we engineer the cutover logic for complex manufacturing migrations — multi-level BOMs, WIP snapshots, cost layer reconstruction, and MES integration continuity. We do not hand you a tool and wish you luck. We execute the migration and own data integrity across every layer.
Frequently Asked Questions
- Can we go live on Dynamics 365 one plant at a time?
- Yes. For multi-plant manufacturers, plant-by-plant rollout in Phase 3 (production + shop floor) is the recommended approach. Finance and master data must already be live in D365 before any plant cuts over. Each plant gets its own cutover weekend, dedicated rehearsal, and Go/No-Go decision. D365 production-floor devices are configured per device and can be filtered by production unit, resource group, and resource, which makes staged cutovers practical.
- How do you migrate open work orders and WIP to Dynamics 365?
- D365 has no standard data entities for partially completed production orders. The preferred approach is to 'drain the line' — stop releasing new orders two weeks before go-live and complete everything open. When that is not possible (long-running orders in aerospace or heavy equipment), you must programmatically recreate each order in D365 and simulate consumed materials and labor to match the WIP value. This requires at least three full rehearsal cutovers.
- Will our MES and PLC integrations break during the migration?
- PLCs typically connect to the MES, not the ERP directly. The ERP migration breaks the MES-to-ERP communication layer, not the PLC layer. Your MES vendor needs to re-point API endpoints to D365 and validate the full scan-to-ERP flow in pre-production. The critical design question is event ownership: which system posts start, consumption, scrap, completion, and quality status after go-live.
- How do you preserve FIFO cost layers during inventory migration?
- Posting a single journal line per item creates one cost layer, effectively converting FIFO to average cost. To preserve true FIFO layers, you must enter multiple journal lines per item with correct posting dates that mirror original receipt dates. Each line creates a separate cost layer. Validate by comparing D365 inventory valuation to the legacy report at cutover — they must match to the penny.
- How do you migrate lot traceability data for FDA compliance?
- Most manufacturers migrate active lots (last 12–24 months) into D365's batch tracking tables and archive older data in a validated, read-only reporting layer. For FDA-regulated environments, the archive must be searchable and accessible for the full regulatory retention period. The migration itself must be documented as a validation event with evidence packages retained for inspection.