After quite some technical, development related, posts I want to discuss a warehouse management related topic in this post. As of version 10.0.11 of Microsoft Dynamics 365 for Supply Chain Management, the module MHAX (Material handling equipment interface) is in private preview. To activate the module you need to enable the flight WMHEMaterialHandlingFeature and also enable the corresponding configuration key. Once enabled you get a module to commination with external warehouse automation and material handling equipment.
In the current preview version you can setup subscriptions for the following outbound operations:
- Work creation: Work was been created/inserted.
- Work initiation: Status of work has been change to “In progress”.
- Pick completion: Pick line was been completed.
- Put completion: Put line was been completed.
- Work completion: Work was been completed.
- Work cancelled: Work was been canceled.
After activating a subscription for a specific operation, MsDyn365SCM will create entries in an outbound que e. g. after work creation. The external warehouse management system have to read the que via a synchronous webservice call. As a comparison, we implemented this process in one of our add-ons via an external Azure Service Bus Queue, to get a more loose coupling. You can find a high level presentation of our implementation, of the outbound process, in the following picture:
To get the responses back into MsDyn365SCM, the external warehouse management system could use one of the inbound operations via a synchronous webservice call. The business logic is then executed within the context of the synchronous webservice call. In the current preview version you can use one of the following inbound operations:
- LP receipt: Receive items via license plate (ASN structure).
- Work confirm: Complete work.
- Short pick: Complete work including short picked items.
- Overwrite: Overwrite location of a specific work line.
In our addon we implemented this process via a journal pattern in MsDyn365SCM, to import the “raw data” and run the processing of the data via batch jobs, which posts the previously imported journal. You can find (again) a high level presentation of our implementation, of the inbound process, in the following picture. One detail to mention here is the custom service we use for importing the “raw data” to the queue/journal. We didn´t use DIXF in this scenario, because we ran into several problems because of high throughput.
All in all I think MHAX is a good starting point for interfacing with external warehouse management systems. From a functional perspective you have the most common action available, but in case you have a high-volume case/customer, there is some room for improvements.
What is your experience with the integration of external warehouse management systems? Are you implementing the process similar as we do or are you already using MHAX?