Extensions in Microsoft Dynamics NAV

Recently, Encore hosted an event: “What’s New in Microsoft Dynamics NAV 2017”. We presented the best new Features in Dynamics NAV 2017, including Dynamics NAV extensions. enjoy!

Video will start playing at the correct point in the presentation.


The last piece I’m gonna get to is to talk about extensions. It is a little bit more of a technical subject but I think kinda quite paramount to NAV as a product moving forward. One of the things that has happened with NAV over the years is when we developed and we modified the application, we actually developed directly into the source code that Microsoft provides, and so when there’s updates from Microsoft or there might be add on products that you want to add in, there’s this concept of merging all of those objects. I’m sure everyone’s kinda heard that concept. I was talking about merging objects.

So Microsoft just wanted to move away from that and wanted to kinda segregate us from modifying source code and so they’ve done that via this concept of what they call extensions. And what they do is…we still develop and what looks like the core codes to NAV but identifies any of the changes that we make as an extension to the existing NAV software. What can we can then do with that is use PowerShell script that will turn them into new file called the .navx file, which we publish and install into a NAV application.

When we do that, if you actually go and look in the back end of the database, you don’t see any of those modifications. And what that gives us is the ability that if we wanted to apply, say, a cumulative update or we wanted to do a full upgrade then the isolation is there to be able to do that directly to the Microsoft source code by uninstalling our app, updating it, and then reinstalling our app again.

Male: It brings the data back.

Tony: Correct. So, if you uninstall an app and your app has new fields of data on it, for example, it will store that data elsewhere in the database so that when you update your source code, your source Microsoft code, and reapply that app, those fields will still contain that information. So you won’t lose any of that information.

Male: [inaudible 01:02:08] that the upgrade. [Inaudible 01:02:11 to 00:02:31]

Tony: So NAV 2017, you have this new function called Extension Management. So this will show you all extensions that have been published into the database. Just because you published it in doesn’t mean that you actually have yet installed it. Installing it and actually using it in the product are somewhat two separate things. There are a number of extensions apps that Microsoft provide out of the box so we can see there’s the Yodlee Bank Feed, PayPal Payment support, the QuickBooks Data Migration, if you want this to be migrating from QuickBooks and the Sales and Inventory Forecast.

What I’ve done is I’ve actually created a very quick modification in the system. It’s called My Favorite Customer, just to show, for the techies in the room, a little bit of what that look like. If I go back to my folder structure here, what I’ve done is created my base objects. So these are the core NAV objects that haven’t been modified. I’ve also exported out the ones that I have modified so I’ve added another new field in there. There’s a boot in that’s called My Favorite Customer. I’ve added that field to the page, and I’ve extracted those objects as text files here.

The PowerShell command let…so we can run and what it basically does it that it compares those together and create what’s called a delta file. So I’m gonna open that up in Notepad. And if you notice here, if you’ve ever played with the text files in NAV, I don’t actually have the whole of the object here with the changes in it. All I have is the fact that there’s now been an insertion into this particular object. I can package that up in combination with a manifest file. So, manifest file will help me identify that I have some dependencies.

So, for example, if I build an add on on top of another add on. Say, for example, Serenic Payroll, or Cost Control as Job Manager, I can say in my manifest that there’s a dependency there so we don’t run into problems with that. I can include permission sets, with my new app has a specific permission set. I can include that ends what appears in the database, and I also have version control in there so we can make sure that we’re installing the latest version, and that basically gets converted into this .navx file, which is a bit of FOB file with additional pieces to it. That’s what I publish into the NAV database.

So over here is the same database that we’re looking at. And if I look at the Customer Table, I can see that there’s no modification to it at all. Go back to my ENCORE demo here. I may extend this guy out. I can go ahead and install My Favorite Customer. I can see that it was published by ENCORE. It’s version is I’m gonna say Next and Install…Tells me that it’s been successfully installed.

Gonna go back to my Customers. Open it up. You see I’ve got my My Favorite Customer there. We go back into this database here, we can see that there’s no field for that. Gonna go back to this guy again. Just remember the field was there. Gonna go back to Extension Management, kinda uninstall…Go back to Customers again…I need to log back in again.


Make sure were in the right database. Go to Customers…Open it back up. And it’s gone. So that’s how easy it is to move modifications now.

And with this approach, Microsoft is also looking for the ISV channel. So if any of you have any add-on products, Serenic Navigator, Serenic Payroll, Cost Control, any of those add ons that we get from the ISV Marketplace. We’re pushing them to also use extensions. So it’s that easy to get in and out of your environment without having to do mergers or having to FOB imports, somewhat put it in to your guys control.

Dynamics 365, which is really out of the world, very, very, very light version NAV, which is online, also uses this concepts of apps. And there’s an app store, a bit like you would have for your Apple Store for your phone or your Google Store, where you can pick and choose the apps that you want and install them into your database and you’re kinda good to go. So we really feel like this is a bit of a game changer when it comes to being an upgrade and maintain your existing NAV database, as well as even pick and maybe try, you know, some of the ISVs that are out there. “Hey, I think this might work for me but you don’t want to go for the rigmarole of kinda merging all these objects in.” It’s been up a test database, install that app, and give it a go fairly easy.

Which Dynamics Product Is Best for You?

Answer some basic questions about your company and your requirements, and find out what products would fit your business.

Take Our Quiz

Which Dynamics Product Is Best for You?

Take Our Quiz