NAV 2017 Events – A Real World Example

 
 
 
 

With Microsoft Dynamics NAV 2017, you can use events to design the application to react to specific actions or behavior that occur, enabling you to separate customized functionality from the application business logic. Using events where customizations are usually made provides a lower cost of code modifications.

The principal is that you program events in the application to run customized behavior when they occur. In this example, we are going to develop the same customization to NAV – with and without use of Events subscriptions. The business requirement is to check to see if sales order margin is more than 20% at the time of posting.

Modifying NAV in Version 2015 and earlier

To address this requirement in older versions of NAV, a NAV developer would insert custom code into codeunit 80 to execute additional business logic (for example check if order margin is above 20%).  The end result was that the business user was satisfied – until they had to pay to have a developer merge that code into the next version of NAV.   

DNAV Development Environment Database Screenshot

Modifying NAV in 2017

In NAV 2017, a developer would address the same business requirement without modifying codeunit 80.  In the example below, you will see that Microsoft has introduced events to NAV.  The event in this case is OnBeforePostSalesDoc.  A NAV developer would write a custom codeunit in the customer range (50000 -99999) and then subscribe to the event in CodeUnit 80.  While NAV is executing codeunit 80, that event will check the custom codeunit and execute the business logic (in this case check for 20% margin). 

DNAV Development Environment Event Screenshot

DNAV Development Environment Event Subscriber Screenshot

Summary

The difference between these two approaches is not evident to the business user.  However, the new approach eliminates the need to merge code in CodeUnit 80 when moving from version 2017 to a later version.  The upgrade effort will be much faster, as standard NAV code is left unmodified. 

Do you have additional questions regarding events in Dynamics NAV?  Comment below. 

Leave a Comment:

* Required Field

Based on this article, you may be interested in:

1-15-2018Maher Malki

5 Benefits of Cloud Backup and Disaster Recovery

In today’s information-based economy, businesses that succeed know that their most valuable resource isn’t their inventory, it’s their data. Despite this, 58% of small businesses are not prepared for a data loss. With the physical…

Read More
7-12-2017Tim Downie

Loads, Shipments, and Waves Oh My! Part 2: Many Orders to One Shipment

As stated in Part 1, Dynamics 356 for Operations offers the flexibility to manage outbound warehouse processes from the most basic order and ship processes to the most complex load planning requirements.  D365O uses a variety of concepts that…

Read More
1-23-2018Joyce Joseph

How to Set Up Purchase Order Posting Profiles in Dynamics 365 and Dynamics AX 2012

The bottom line when it comes to inventory posting profiles is when you don’t set them up properly, you aren’t getting the most out of your Dynamics 365 or Dynamics AX 2012 system. 

Read More
10-07-2016Amanda Wells

Two Ways Microsoft Dynamics Affects Employee Morale

Commute included, you likely spend over ten hours per day working and preparing for work. While we all strive for the right work/life balance, often times work becomes life. Luckily, there are numerous technological advances that are emerging to…

Read More