Connecting manufacturing execution systems and external warehouses to Dynamics 365 Finance & SCM is one of the most operationally critical integration challenges for industrial companies. Every production order released, every goods receipt confirmed, every picking list dispatched to an external warehouse represents a handoff between systems — and each handoff is a potential source of delay, error, or inventory discrepancy.
This guide covers Dynamics 365 MES and WMS integration: what these integrations involve, how the data flows work, which message types are exchanged, and how FlexxLink handles both scenarios inside D365.
→ Back to the Dynamics 365 Integration Guide — overview of all integration scenarios
What Is Dynamics 365 MES and WMS Integration?
Manufacturing Execution System (MES) integration connects the shop floor to Dynamics 365 — enabling production orders, material consumption, route feedback, and completion confirmations to flow automatically between the ERP and the system controlling production. WMS integration connects an external warehouse management system to D365, automating goods receipts, batch management, picking list transmission, and goods issue confirmations.
In both cases, the goal is the same: eliminate manual data re-entry between systems, reduce errors at handoff points, and maintain a single point of truth in D365 for inventory, production status, and logistics data.
Without integration, production operators enter completion data manually into D365. Warehouse staff reconcile picking lists by hand. Inventory figures in D365 lag behind physical reality. With integration, these handoffs happen automatically — triggered by events in the MES or WMS, validated before posting, and visible in D365 in real time.
Dynamics 365 MES Integration
How the Production Process Works with MES Integration
FlexxLink manages four primary integration flows between an external MES and Dynamics 365:
1. Production Order Release
When a production order reaches Released status in D365, FlexxLink transmits the order to the MES — including bill of materials, route details, and any parameters required by the shop floor system. If a production order is withdrawn (status falls below Released), a corresponding cancellation message is sent to the MES to keep both systems aligned.
2. Production Start
When the MES activates a production order on the shop floor, a start message is sent back to D365. FlexxLink receives this message and updates the production order status in D365 accordingly — keeping ERP and MES in sync without manual intervention.
3. Production Feedback
The most critical flow in MES integration is the feedback loop. As production progresses, the MES sends data back to D365 covering:
- Good parts and rejected parts produced
- Material consumption figures
- Route card details — production process steps completed
- Picking list confirmations — actual material withdrawals
FlexxLink receives these messages, validates them against D365 master data and production order data, and stages them for posting. This keeps inventory, material consumption, and production progress figures accurate in real time.
4. Report as Finished
When the MES signals that production is complete, FlexxLink receives the completion message and triggers the Report as Finished process in D365 — updating inventory, closing production order steps, and halting further anticipated transactions.
→ Deep dive: Connecting a Manufacturing Execution System with Dynamics 365
Dynamics 365 WMS Integration
How the Warehouse Process Works with WMS Integration
For companies operating outsourced warehouses or specialized warehouse systems that run independently of D365, FlexxLink provides bi-directional integration covering the full inbound and outbound logistics cycle.
1. Goods Receipt
When goods arrive at the external warehouse, the WMS sends a goods receipt confirmation to FlexxLink. FlexxLink validates the receipt against the corresponding purchase order or transfer order in D365, creates batch records with expiration dates and batch identifiers where required, and posts the goods receipt — without manual entry in D365.
2. Batch Management
Batch disposition codes in D365 — used to control whether inventory is available, restricted, or blocked — are synchronized automatically to the external warehouse. When a quality order changes a batch disposition code, or when a code is reset after quality clearance, FlexxLink transmits the update to the WMS in real time, maintaining inventory alignment between the two systems.
3. Picking List Transmission
When a sales order, production order, or transfer order triggers a picking requirement in D365, FlexxLink transmits the picking list to the external warehouse — with or without batch references, depending on configuration. The warehouse receives the instruction and begins picking without any manual coordination step.
4. Goods Issue Confirmation
When the warehouse completes a pick and dispatches goods, it sends a goods issue confirmation back to FlexxLink. If the actual goods issue matches the picking list exactly, FlexxLink registers the goods issue automatically in D365. If there are discrepancies — partial picks, substitutions, or quantity differences — FlexxLink adjusts the picking list accordingly before posting, rather than blocking the process.
→ Deep dive: Connecting an External Warehouse with Dynamics 365
How FlexxLink Handles MES and WMS Integration
FlexxLink is installed as an independent deployable package directly inside Dynamics 365 Finance & SCM via Lifecycle Services (LCS). It does not sit outside D365 as a middleware layer — it runs natively within the ERP.
For MES and WMS integration, FlexxLink operates as a REST-based integration client. External systems send messages to FlexxLink's inbound REST endpoints; FlexxLink sends outbound messages to external REST endpoints. Any system capable of REST/HTTP communication can connect without additional middleware.
Key capabilities relevant to MES and WMS scenarios:
- Parameter-driven transmission controls — which events trigger outbound messages, what data is included, and how messages are structured are configured per integration party, not hardcoded
- Validation before posting — every inbound message is validated against D365 master data (production orders, purchase orders, item numbers, batch records, warehouse codes) before it reaches a staging table
- Automatic adjustment — discrepancies between received data and D365 documents (e.g. partial goods issues) are handled automatically where possible, rather than blocked
- Integration Monitor — a central workspace inside D365 providing full visibility across all MES and WMS messages: errors, processed messages, and complete job history
- Multi-threaded processing — high-throughput scenarios, such as frequent MES feedback loops or high-volume warehouse operations, are handled with priority-based parallel processing
Supported Message Types
| Scenario | Message | Direction |
|---|---|---|
| MES | Production Order Release | Outbound (D365 → MES) |
| MES | Production Order Withdrawal | Outbound (D365 → MES) |
| MES | Production Start | Inbound (MES → D365) |
| MES | Route Card | Inbound (MES → D365) |
| MES | Picking List (material consumption) | Inbound (MES → D365) |
| MES | Report as Finished | Inbound (MES → D365) |
| WMS | Goods Receipt | Inbound (WMS → D365) |
| WMS | Batch Disposition Update | Outbound (D365 → WMS) |
| WMS | Picking List | Outbound (D365 → WMS) |
| WMS | Goods Issue Confirmation | Inbound (WMS → D365) |
Implementation: What to Expect
FlexxLink is installed via Lifecycle Services (LCS) as a standard D365 package. MES and WMS interfaces are shipped ready-configured; implementation effort focuses on:
- Integration party setup — configuring the external MES or WMS as an integration party with its REST endpoint and interface parameters
- Message configuration — defining which events trigger outbound messages, what data fields are included, and how inbound messages map to D365 documents
- Validation profile setup — defining validation rules for inbound data against D365 master data
- Interface activation — enabling the relevant inbound and outbound interfaces
- Testing — end-to-end message flow testing per scenario (production order lifecycle, goods receipt, picking, goods issue)
Implementation time depends on the complexity of the external system and the number of custom message structures involved. Standard scenarios with REST-capable MES or WMS systems are typically achievable within a few weeks.
Licensing and Availability
FlexxLink is available on Microsoft Marketplace and is developed by Soluvine GmbH, an ISV for Microsoft Dynamics 365 Finance & SCM. MES and WMS integration is included in the same FlexxLink package as B2B/EDI — no separate module required.
Licensing uses a flat subscription model with no transaction fees. A 30-day free trial is available.
Frequently Asked Questions
Does FlexxLink work with any MES or WMS, or only specific systems?
FlexxLink connects to any MES or WMS that supports REST/HTTP communication. There are no restrictions on which external system is used — the integration is configured through FlexxLink's interface parameters, not hardcoded to specific vendors.
Is middleware required for MES or WMS integration?
No. Unlike EDI scenarios where middleware is typically required for format conversion, MES and WMS integration with FlexxLink works directly over REST without an intermediate middleware layer — provided the external system supports REST communication.
How are discrepancies between WMS goods issues and D365 picking lists handled?
When the actual goods issue from the warehouse does not match the picking list in D365, FlexxLink automatically adjusts the picking list to reflect the actual quantities before posting — rather than blocking the process and requiring manual intervention.
Can FlexxLink handle both MES and WMS integration simultaneously?
Yes. FlexxLink manages all integration scenarios — B2B/EDI, MES, and WMS — within the same framework. Each external system is configured as a separate integration party with its own endpoints, message configurations, and validation profiles.
What happens if the MES or WMS sends invalid data?
Every inbound message is validated against D365 master data before posting. Messages with validation errors are blocked in the staging workspace, flagged with the specific error, and can be corrected, approved, or rejected — without affecting other messages in the queue.
Does FlexxLink support both discrete and process manufacturing MES scenarios?
Yes. FlexxLink supports both discrete and process manufacturing environments, including batch management, expiration date tracking, and batch disposition code synchronisation relevant to process manufacturing workflows.







