Microsoft Dynamics NAV 2016: What’s New

With the new release of Microsoft Dynamics NAV 2016, there is a lot to blog about.  Let me start by trying to list down all the new features in this new release. Though, I’m actually quite sure I’m not going to be able to, because there are just that many .. and as Vjeko mentioned in his recent blog post, there are many things that were not announced explicitly, but are also in this new release. OK, here it goes … 😉

For Consultants

There are quite some functional additions to the product. Now, I didn’t follow these sessions at Directions EMEA, and I’m not a functional consultant at all (focusing on technical parts is already hard enough ;-)), but let me try to list a few application additions to the product:

Power BI

Finally, Power BI is supporting Microsoft Dynamics NAV .. . This means that when you enter your, you have a new service available, which is called “Microsoft Dynamics NAV”, like you see here:

This would imply that we finally have a decent integration, including data refresh! As far as I know, this is crucial, but was not possible until now!

Download Exchange Rates

Exactly what it says – The application is now able to download the exchange rates and add it in the Exchange Rate tables. Can’t imagine this hasn’t been built by many partners – we had our own solution for this for years!

OCR Service (Lexmark)

Another service Microsoft Dynamics NAV 2016 uses, is an OCR Service from Lexmark, and is integrated in the “Incoming Documents” functionality.  As such, you’re able to send a scanned (or picture) purchase document, and the OCR will try to extract valuable data from the picture.

Integration with CRM

You probably all have experimented with the old CRM Connector, and came to the conclusion: it sucked! No flexibility, not stable, … we tried to implement it a few times, but always had to turn to third party solutions, which is hard to sell for customers that buy 2 Dynamics products.. .

Now, with NAV2016, there is finally a decent way to connect NAV with CRM by adding a new type of table, being a CRM table. In a way, we are able to connect to a CRM Online table, which means we can code against it like it was a normal table in NAV. So the entire CRM integration is actually just coded in C/AL. Which means: readable, extendable! In 10 minutes, you can have an out-of-the-box connection with CRM Online.  And a few minutes later, you can have even a customized CRM Connector, that matches your customer’s needs.

Improved Web Client

The Web Client has been improved on more than 60 points.To only mention a few:

  • Tabs are extractable
  • You can switch companies
  • You can switch languages

Universal App

We all knew the tablet app, and loved it, right! Well, now there is a “Universal App”, which means: one app for all appliences. It serves as a tablet app (in tablet mode), on a phone it acts as a phone app .. Yes indeed! A PHONE APP! Which looks something like this:


One of the biggest new things in NAV! Based on Eventing (see later in this post), you are able to create your own workflows. Configurable as you like it. You’re able to create your own workflow-events (either in code and using the workflow framework, or using pre-configured workflows) with conditions, and responses (like mail, notification or whatever).

I have been blogging about it here, but that’s just a small post about a big feature. I strongly recommend to dive into it. It’s a great framework, and you can apply lots of things on it!

The only remark might be is that you’ll probably have to add code to make it work like you want. But that’s ok. It should be treated as a framework instead of a complete solution anyway (in my opinion)!

For Developers

There are also quite some changes and additions on platform and development level. Let’s try to go over them:

Application Test Toolset

I’m very excited about this addition. The Test Toolset has been out there for years – but now it’s supported, extended and released for all supported countries. The framework has been extended, and out-of-the-box, there are about 15000 tests available!

Ability to use Camera and GPS in C/AL

It is even possible to code against the camera and GPS in G/AL! Just look at the how-to’s in the help:

  • How to: Implement the Camera in C/AL
  • How to: Implement Location in C/AL


This is a few days of topics to explain this. Eventing is something very common in the .Net world, but now, with Eventing in NAV, we can benefit from it as well. Eventing consists of “publishers” and “subscribers”. A publisher raises an event in code when something happens, like “OnBeforePostDocument” in codeunit 80. A subscriber is a function that subscribes to an event. In a way, we can create a function, add the property “subscriber” to it, and assign it to a specific published event where we want to assign the function to. This would mean, when the published events gets executed, all the “attached” subscriber functions get executed as well.

Customization Extensions

Also something that is difficult to explain in a few words. A Customization Extension can be seen as an enhanced fob file which only contains delta’s. This is a very rudimentary description, but really .. If you hold yourself to a few limitations (which will be blogged about a lot), you are able to create a so-called “navx”-file. This navx file contains information/deltafiles/permissionset/.. , and can be published and installed to other databases.

It can even be installed on specific tenants, which makes it possible that you do specific customizations to specific tenants in a multitenant environment.

Again, this is just a short description, but actually it’s a huge thing! I have had a session on best practices about these extensions at Directions EMEA, and will be doing the same session on Directions US. A lot more to come about this topic!

The new Code Editor

Great for developers: finally we have code completion and intellisense as coding editor within C/SIDE – already in the year 2016! :-). I won’t go too deep into it. Vjeko has explained this extensively on his blog.

Now, if you would – for some weird reason – prefer the old code editor, there is still a way. Just start the finsql.exe with the option “useoldeditor:yes”, like:

And then the new shortcuts which everyone loves:

  • CTRL+G opens the “Globals” window
  • CTRL+L opens the (guess what ..) “locals” window
  • CTRL+Z is undo (and you can do multiple :-))
  • CTRL+Y is redo

A non-NAV developer is not amazed, I know, and he shouldn’t be – but we are, aren’t we :-).

Posting Preview

Another finance addition. In a way, we’re able to see what a posting we result into. The result is a kind of “navigate” window with the different entries that it results into. Like:

You can drill down to each entry.


A try-catch for NAV! Yes, really! One thing to notice, though .. When a Try-function fails, the transaction is NOT rolled back! This is something to keep in mind! This is by design. You catch the error, not the transaction!  Vjeko explained this in an extensive blogpost!

Microsoft Dynamics NAV Managed Service for Partners

THE big secret. Microsoft is taking the infrastructure-challenge for setting up multitenant cloud services based on NAV out of our hands. This was a big hurdle, so this service is a big help for partners. I truly believe that. I haven’t got any details yet on how to start using it and such, or any screenshots, but I’ll try to figure out.
a few remarks on this one may be: it is only intended for multitenant solutions, and you HAVE to upgrade to a new Cumulative Update at least each three months!

A few small additions to NAV2016 as mentioned by my colleague on his blog (more info to find there):

Multiple Namespaces in XMLPorts

The ability to add multiple namespaces

Automatic Deployment of Add-Ins

We can now add an Add-in as a zip file to the Add-in table, and NAV will make sure they get deployed to the clients, when necessary.

64 bit client

Which will result in faster processing for memory-intensive operations, like (for example) reports.


Like an AutoIncrement, this BigInteger field with type “Timestamp=Yes” will maintain itself .. On each modify, a new timestamp value will be added to the record. This is great for interfacing, to find out which records have changed since a specific timestamp.


Only for .Net objects, but very useful! Used to loop .Net collections!


Really good addition to be able to test a certain varaible wheter it is Temorary or not.. . I think we were only able to do this on a RecRef – will, now we can do it on a Record-Variable as well! Thanks, Soren, to get this added!


Same for the “RECORDID” property – we do not have to use the RecordRef anymore to get to the RECORDID.

Some known issues

As any major release, it comes with a few pitfalls. I want to be thorough, so I don’t want to keep things from you. Here are the known issues at this moment:

  • Installing NAV2016 will overwrite the 2015 administration tool. Arend Jan blogged about that here: . He also mentioned how to fix it!
  • Apparently, the GetDatabaseTableTriggerSetup is executed every time it enters a table, instead of only once per table. This has been mentioned on Twitter, but I have not had the time to confirm it yet, though. This might result in some performance issues!
  • In the Customization Extensions there are a few issues that will be fixed in the next CU, which are causing the data upgrade to fail:
    • Ability to work with AutoIncrement
    • Ability to work with FlowFields

As far as I know, all issues that were reported will be fixed in Cu1. But that’s not a promise ;-), that’s an assumption (which is mother of all….).

OK, guys and girls! Hope you liked it, hope it’s somewhat complete. Probably not. If not, please drop me a comment!

4.05 avg. rating (81% score) - 19 votes

Permanent link to this article:


6 pings

Skip to comment form

  1. For developers I would also mention the support for regular expressions in the dev. environment 🙂

      • waldo on October 9, 2015 at 9:43 am

      Very true! Thanks!

    • Remco Reinking on October 9, 2015 at 10:27 am
    • Reply

    Hi Waldo, good BLOG!
    Maybe you know what happened to our good old NASHandler function in Codeunit 1?
    Looks like it is gone.
    Is it replaced by codeunit 450, to start all kind of functions using the jobqueue?
    Is it not possible anymore to use a NAS for other stuff? Codeunit 44 NASManagement doesn’t exist as well.

      • waldo on October 9, 2015 at 10:52 am

      Could very well be that it’s gone, but why would you need it? There are enough options now to start your NAS, no? You have the Job Queue, and you have the possibility to start one codeunit separately. You can always “mimic” the NAShandler function if necessary.. no?

      • Remco Reinking on October 9, 2015 at 11:22 am

      Off course, but still, it makes me wonder. Normally the jobqueue would start using the NAS with a parameter JOBQUEUE:
      the NASHandler function uses it to start codeunit 450. So I wonder if this behaviour is changed and if it is codeunit 450 that gets started automatically when a NAS gets running.

      • Remco Reinking on October 9, 2015 at 11:31 am

      never mind, still used to “the old” NAS, just read that it is possible to start a NAS and specify which codeunit to start.

      • waldo on October 9, 2015 at 11:32 am


  2. hi

    do you have more details about the ocr service?
    how to configure it?
    is it only an online/cloud service, is there also an offline ocr service ?
    are there any requirements to use it ?

    br jonathan

      • waldo on October 9, 2015 at 12:39 pm

      It uses an online service from Lexmark – or that’s what I remember. You have to sign up, and as far as I remember, you can use the service 75 times for free. That’s all details I have, I’m afraid.

  3. thx a lot. maybe more info after the navtechdays (sesion ocr). regards.

    • dany on October 27, 2015 at 1:44 pm
    • Reply

    I had so much hope in the OCR, but with this stupid Lexmark Cloud Service it is totally useless for our Companies. Why cant MS develope an own OCR dll-service to use offline!

      • waldo on October 30, 2015 at 3:50 pm

      We’re moving to an online world (if we’re not there already) where we can consume what other people have built (not having to invent the wheel twice..) .. There is nothing to do about that, I’m afraid! 🙂

  4. so it’s best to purchase third party add-in for offline ocr functionality, e.g.

    • Jens on November 6, 2015 at 11:52 am
    • Reply

    Thank’s for the tip about using the old editor (useoldeditor=yes)
    I also didn’t think I would ever use the old editor anymore, but the new code editor didn’t allow to select all (ctrl+a) code in a object and DELETE all code. Using the old editor still allows to do this efficiently.

      • waldo on November 6, 2015 at 12:41 pm

      Exactly the reason why it’s still there 😉

    • John Clair on December 8, 2015 at 11:15 am
    • Reply

    Thanks for the insightful post. On the CRM connector piece… does the new nav functionality only work with the online CRM version or will it work with the on premise version of crm as well.

    WE are looking to upgrade both nav and crm next year. (both to 2016) and getting rid of the connector is one of my strong selling points for the why upgrade.

      • waldo on December 10, 2015 at 11:52 am

      When I look at the requirements, I get these versions that are required:
      – Microsoft Dynamics CRM Online 2015 Update
      – Microsoft Dynamics CRM Online 2015 Update 1
      – or Microsoft Dynamics CRM 2015.

      not knowing anything about CRM, I assume (..) it supports OnPremise as well as Online..

      more info:

  1. […] Continue reading » […]

  2. […] Waldo – Whats new in NAV 2016? […]

  3. […] Was hat sich sonst getan? Da bereits zahlreiche Posts über einen Überblick der Neuerungen in NAV 2016 anbieten verlinke ich einfach darauf, und konzentrier mich in den kommen Posts auf spezielle Themen. Zusammenfassung Neuerungen . Beispiel 1 . Beispiel 2 […]

  4. […] Was hat sich sonst getan? Da bereits zahlreiche Posts über einen Überblick der Neuerungen in NAV 2016 anbieten verlinke ich einfach darauf, und konzentrier mich in den kommen Posts auf spezielle Themen. Zusammenfassung Neuerungen . Beispiel 1 . Beispiel 2 […]

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.