NAV codebase for Dynamics 365

Something that was kind of a big deal happened this week. During the keynote at Directions ASIA in Bangkok, Marko Perisic (General Manager, Microsoft Dynamics SMB) announced that Dynamics 365 for Financials and Dynamics NAV will operate on the same codebase.

There are two reasons why this is a big deal. First it falls right in line with Microsoft’s “AND strategy” when it comes to cloud ERP and on premise ERP. BOTH are essential to Microsoft, and BOTH will have a place in their product line. Second, and this is where NAV is kind of unique, it will allow Dynamics 365 for Financials to be “Full NAV” in the cloud. Let that sink in: Microsoft is committing to having full Dynamics NAV functionality in Dynamics 365. Whether you implement in the cloud or on premise, your ERP will operate on the same codebase. As far as I can tell, there are not many ERP products that provide this. I have a feeling that it is a trend that many will follow though.

The Dynamics 365 codebase has always been the same as NAV, but only parts of its functionality was exposed. The assumption was that the Dynamics 365 codebase could potentially diverge from the on prem version of the product, although how that would happen was not always very clear. Now that there is a firm commitment to keeping a single codebase, the next step is that Dynamics 365 will at some point provide “Full NAV” capabilities, which was in fact also part of the same keynote.

The nuts and bolts are still in progress. Dynamics 365 is updated constantly and NAV only gets monthly cumulative updates and annual version updates. There is also a lot of movement in how add-ons and customizations will be implemented, although the magic word there is “Extensions”.

For Microsoft to come out and announce the equal codebase though….. that is a Very Big Deal.

Webinar – Dynamics NAV Dev Tools Preview

This morning I was part of a panel to host a webinar to show the development tools preview. It was my pleasure to provide the demo part and show the attendees a taste of what is to come in the new development tools for Dynamics NAV. The demo part was just about 25 minutes, and then we opened up the floor for questions. We had some good questions, and it was a lot of fun to be able to share that with everyone.

The webinar was recorded and uploaded to YouTube, and you can watch it here. Oh, my name is not Erik Ernst, not sure how that happened ūüôā

Early Christmas Present – NAV Developer Tools Preview

At Directions in the US this year, Microsoft announced that they would release a preview of the new development tools for Dynamics NAV. Today, they have delivered on that promise, and you can try them out in your Azure subscription. Head on over to the Development Tools Preview for Dynamics NAV to read all about it. You will find instructions on how to get started there. Go to the New NAV Development Environment on MSDN to read more about the details.

If you decide to take the tools for a test run, and you find any issues with them, you can report on those issues in the AL Github issue tracker. Go to The Microsoft/AL Github page, click on the ‘Issues’ tab and create a new issue there. Microsoft is monitoring the issues there.

The important part to keep in mind about this preview is that it gives us a preview of how development for extensions is evolving. The goal is to simplify the process to where all we need to do is write the code and hit a build button, and all internals are taken care of by the environment.

Remember, this is just a preview of the tools. It is not supposed to be flawless. Microsoft is also working on many other tools to complement VSCode and provide a development experience that will meet the NAV developer’s needs.

NAV in VSCode – Hello World

Today marks something quite unique, at least for the NAV world. Microsoft is actually giving us a preview of a preview product that they have announced for Christmas.

During this year’s conference season, Microsoft has shown their vision of the future development tools for Dynamics NAV. We’ve seen various demonstrations of how we will be doing development for NAV in Visual Studio Code, a lightweight development tool. Today they have put some sample files on GitHub (Check it out here) for all of us to look at and to critique.

Visual Studio Code (VSCode for short) is available on Windows, but also on MacOS. Since my main computer is a MacBook, I wanted to see if it really does work. To be modifying NAV objects within VSCode on a MacBook is an almost surreal experience, but here’s proof:

screen-shot-2016-11-29-at-4-22-41-pm

The sample is a simple “Hello World” application, with a couple of codeunits and a so-called ‘page extension’ object. Part of the vision for future development is to make building extensions easier. Without going into any detail of why that is important, this will make extension and app development a LOT easier to do.

Some of my thoughts:

  • Microsoft is finally taking NAV development into a professional development tool. Hopefully this will inspire (or at least not deter) a new generation of NAV developers
  • json files for configuration and for the app signature will make automating deployment much easier
  • No more control ID’s, which means those will no longer cause¬†upgrade headaches
  • I would like to also get rid of object ID’s, which they have said that they are looking into. Current licensing is based on object ID’s though, so I’m not holding my breath
  • It will be interesting to see if there is any automatic sorting by control type. For instance will you be able to mix fields and functions in a table object, or will the compiler automatically sort this for you. There’s potential to really mess up the object’s readability
  • This is Visual Studio Code, not Visual Studio. It is still to be seen whether C/AL will be a fully functioning .NET language, and it is still unknown whether we’ll have access to other .NET goodies from this editor
  • Lastly – we are getting just a preview of the tool. Nothing was said with certainty about when this is ready for prime time. What is REALLY cool though is that Microsoft is inviting everyone to participate in the process

Go check out the files for yourself, and if you’d like you can even contribute to the GitHub project. For me, this is a very exciting prospect, and I can’t wait to see what happens next.

What’s New – NAV 2017

Directions EMEA was this past week, and I was not there, which makes me sad. I wish I were there, not in the least because it was in Prague, and I’ve never been to Prague, and I REALLY want to visit Prague…

Anyway, ever since Directions US in Chandler, AZ, I was planning to write about what’s new in NAV 2017. Then, right before the weekend that I was going to work on that, my fellow MVP and good friend Eric ‘Waldo’ Wauters beat me to it. So, please go to his website and read this post.

Most important:

  • Office 365 integration
  • Flow and Power Apps integration
  • Power BI right on the Role Center
  • Some extensions out of the box (PayPal, Ceridian, Quickbooks Migration). By the way, there are mane more capabilities with Extensions, HUGE improvement over NAV 2016
  • Cortana Intelligence

Dynamics 365 and AppSource

I read this blog today, and I tweeted about it too. What struck me about the article is how it talks about how Microsoft wants to help you focus on your business while providing a connected set of systems that seamlessly work together for you.

You might have read about ‘Project Madeira’, for instance on Waldo’s blog, or Erik Hougaard’s blog, or many more just like it. Even Marko Perisic, the General Manager for Dynamics SMB¬†wrote about it. Today’s announcement is about where Madeira leads, and it’s called “Dynamics 365”¬†and the new “Microsoft AppSource”.

The landing page for Dynamics 365¬†is still very confusing to me.¬†There seem to be a lot of products underneath it all, like ‘For Sales’ or ‘For Operations’ and more like that. Then on the pricing page there is another subdivision into ¬†an “Enterprise Edition” and a “Business Edition” where you can play around with some configurations. Now some of those are based on NAV and some of those are based on AX. What always annoys me is that it is not clear at all to figure out what is what. If the Business Edition is based on NAV, how come I can only see a small subset of the functionality?

The part that does seem to be clear is that there will be a store of some sort where you can purchase, and they have called this store “AppSource”, check out this link. They even created a video with one of those supremely irritating cute little Ukulele ditties.

The article goes into some marketing fluff like “Helping customers transform with a new approach to business process” and “technology is transforming our lives”, but overall it does a pretty good job I think to talk about how business processes interact and how you need different systems to execute those processes. There are a lot of moving parts, like PowerBI, Cortana, Office 365, common data model, work flow, and a bunch of other ones. The purpose of the article seems to be that Microsoft is working on putting together a set of cloud solution that can help you put it all together.

Two new names to keep track of: Dynamics 365 and Microsoft AppSource. I’m sure in the months to come there will be a lot of new information about these. If you are a NAV partner, I would certainly consider going to Directions this year, and as an end user I’d look at the NAVUG events.

NAS on the Service Tier

If you have made heavy investments in automated solutions that run in NAS you can breathe easy, because chances are that it still works in NAV 2013!!

When Microsoft first came out with the news that the Classic Client was history, and that a number of object types were going to be discontinued, there was a LOT of speculation in the NAV world. Most of this speculation was based on unverified rumors, baseless “common sense” applied to unverified assumptions. One of these assumptions was “the Classic Client will be gone, so therefore NAS will be gone too”. Technically, these people were right of course. With a few minor restrictions (no forms, no dataports, no user input, no dialog boxes), NAS was nothing but a Classic Client without a user interface that runs as a Windows Service. Because the Classic Client no longer exists, NAS as we knew it is indeed gone.

What many of these people don’t realize is that the NAV team actually cares a great deal about making the life of the NAV partner channel easier. Everyone that knows about NAS knows how many products are built around it, even standard NAV functionality is implemented through the use of NAS (Job Queue, ADCS, to name a couple). It was in everyone’s interest to have a good alternative for NAS, and I believe the result is a very solid way to provide the ability to automate just about any user task in NAV. Coupled with the ability to create NAV sessions programatically, I believe that there are even more possibilities.

One aspect of your existing NAS implementation may cause some difficulties, and that is the fact that COM is no longer supported in NAV 2013. For instance, the “CP Timer” no longer works, the “Bus Adapters” no longer exist, and many other automation components will no longer work. For every use of COM you will need to find an alternative, whether this is .NET interoperability or whether you will need to find an alternative component. If you have existing NAS solutions, and you are thinking about upgrading to NAV 2013, please get in touch with your partner and start investigating what needs to happen (if anything) to keep your NAS solution running.

For a long time I’ve known about NAS on the Service Tier, and I’ve been looking forward to the time that I would finally be able to share this information. So sit back and relax, grab a cup of coffee and start the video. I’ll explain how to set up an instance of the Service Tier for NAS Services, and I’ll show you a number of ways that you can implement NAS on the Service Tier.

First published August 8, 2012

SQL Setup Essentials for NAV

The way that SQL Server is set up can greatly affect the performance of your NAV database. People often ask me about how to properly set up SQL Server for NAV databases, and it is a common topic¬†in the online forums. I’ve posted a clip on YouTube in which I cover the essential elements of how to properly set up SQL Server for NAV.

First published April 18, 2012

Import Flat Files with XMLPorts

After reading this blog and watching this YouTube video, you should have enough information to start figuring out how to use XMLPorts to import flat text files, even when this file contains data for multiple tables.

When I first got started as a NAV developer, I was assigned a senior whose job it was to educate me about what it takes to be an effective NAV developer. Whenever I had a question he would always challenge me to figure it out myself, while maybe giving me a tiny little push in the right direction. At first I thought that was very annoying, but it forced me to develop what is probably the most important skill as a developer: the skill of “figuring out how stuff works”. Once he was satisfied that I had spent an adequate amount of time and brainpower to a problem, he would take the time to give me a lesson. Sometimes he would make these lessons up on the spot, because he had to figure it out himself. Those lessons are my favorite memories of my time learning how to be a NAV developer, and oddly enough most of them weren’t even about syntax or objects, but about “how to figure stuff out”.

Every day, I make my rounds through the online communities, in search of questions to answer. Sometimes, I find a question that makes me wonder myself how something works. When this happens, I take a standard NAV database, and spend some time in the evening hours to figure it out. The past few days there’s been a question about how to import data for multiple tables into the RTC from a flat file, using an XMLPort. Now, at my work, all the developers attend a weekly conference call. On these weekly calls one of us presents a technology, or some tips on how to do certain things. We had recently held one about XMLPorts for the RTC, so I felt confident that this one would not be too big of a problem for me.

While my wife took my daughter to dance class, I worked on a couple of XMLPorts for the RTC, to import Purchase Invoice information into NAV. The YouTube clip below describes the results of those efforts. Hopefully this will help you understand how this works.

First published April 24, 2012

NAV2013 Beta – OData Introduction

With NAV 2013, Microsoft has added the capability to expose data from your NAV system as OData Web Services. Where that differs from regular Web Services (which in the NAV Server management snap-in is now identified as ‘SOAP Services’), is that OData only exposes data feeds, and within the context of Dynamics NAV is read-only. Click here to read all about OData, and here for an overview of OData in NAV 2013.

I’ve put together a new YouTube clip to show you where to find the OData Web Services in the NAV Server Management tool and the Web Wervices table from the RTC, as well as a couple of examples of how to consume them. As you will find out fairly quickly in this video, I have a LOT to learn about OData. I wanted to share what I do know though, and give you an idea of where to start looking.

This provides a new way to expose data from NAV, in an industry standard way, although I am sure that true OData experts will find missing pieces. It is another possibility for us to expand the reach of the ERP application that we know and love. I hope you enjoy the video, and that you will be inspired to start learning about it, and maybe even get some ideas about how to use them for your business.

First published May 23, 2012