Warehouse Microsoft Dynamics 365

Developing Custom WHS Wave Configuration in D365FO

Subscribe Here!

Back to main Blog
Steve Shebuski, VP of Digital Strategy
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 _postEngineContains 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

Code Sample of Class

Next, regenerate the wave process methods so these operations will show in the user interface.  

regenerate the wave process methods

Custom Wave Pro Tips

There are a few pitfalls to avoid while creating a custom wave.  

Custom Wave Pro Tips

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.

Have Questions? We are here to help.

Stay up to date