Steve Shebuski, VP of Digital Strategy
Guiding businesses through their digital transformation journey
The Blue Horseshoe supply chain team gets this question a lot: How do you develop a custom WHS wave step in Microsoft Dynamics 365 for Finance & Operations?
This process has dramatically changed from custom wave steps in Microsoft Dynamics AX 2012. In AX 2012, the developer creates the custom wave step by extending the base enumeration and overlayering the class WHSPostEngineCustom.
What’s in a wave?
A wave is a method to run a specific action(s) to create work for the warehouse. Depending on your type of order that is being released to the warehouse, you might need specific things done before or after the work is created.
The Warehouse module in D365 includes standard wave templates. These wave template types are shipping, production, and Kanban. You can find how-to instructions for these standard wave templates on Microsoft’s website.
Creating a custom wave processing method in D365
D365FO has one abstract class: WHSCustomWaveStepMethod. There are only two mandatory methods that you must have in your class.
displayName() - Name to display on the “Wave Templates" form.
process(WhsPostEngine _postEngine) - Contains the function of wave step and the initial call during wave execution.
D365’s Wave Process method will now display on the form with a method name that looks like a class. If you’re used to creating a custom warehouse wave in AX, you know this is a big difference. Keep in mind that in D365, the name of your custom class will become the name of your new wave step.
Custom Wave Process Template Code
An example is WHSPostMethod, the Wave Process Methods form. Notice the tag at the top of the class which specifies the Wave Template Type. For this example, this is a shipping Wave Template.
Code Sample of Class
Next, regenerate the wave process methods so these operations will show in the user interface.
Custom Wave Pro Tips
There are a few pitfalls to avoid while creating a custom wave.
Wave Process Method not showing up on front end
Even if you’ve performed a full sync, you may still find that the Wave Process Method is not showing up on the front end. Review your custom objects. There’s a good chance that you may need to delete a few to sync successfully.
If you’re attempting to wave more than one order at a time, use multithreading. You can do this from the allocateWave step.
Configuring custom waves in D365FO is straightforward, once you learn the new process.
For more information about Warehouse Management in Microsoft Dynamics 365 for Finance and Operations, contact Blue Horseshoe.