Category Archives: General

Everything that does not fit in one of the categories

NAV2016CU2 | Obsolete Commands Cleaned Up!

When CU2 was released, I totaly forgot to test something I should have.

Based on my “what the BEEP” post my friends at Microsoft decided that it was time to “clean up” and gave me a heads up.

If you type “BE” in NAV2016CU2 the keyword you get is BEGIN, not BEEP.


NAV2016CU2 Intellisense

From what I have been told the obsolete commands are hardcoded. If you find anything that should be removed, just reply to this blog. Microsoft folks read it :). (Trust me I know).

As far as I could test I could not find the BEEP in the Symbol menu either, but I might have looked in the wrong place.

NAV2016CU2 | Symbol Menu & More

NAV 2016 Cumulative Update 2 is released. I have to admit, normally I don’t pay that much attention to updates, but the last ones are on my radar because of some promisses.

Symbol Menu

Nobody could be happier with the new code editor than me. It makes me more productive and makes our environment sexier and more attractive to young people.

However, the very first piece of feedback I gave was that in some cases the Symbol Menu was not bad.


This feedback was first ignored during the Technical Preview process, but due to pressure after release it is now back.

Glad I was not the only one.

Events & Extensions

There are a couple of interesting KB articles in CU2. Mainly about Extensions and Events.

376710 You cannot publish an extension if it contains too many objects.

So somebody is trying to wrap their entire vertical solution in an Extension? 😉

376969 An extension object cannot be added when a deleted base object had the same ID.

This is a strange one. First and foremost, if you package an extension ALWAYS use ID’s in you CfMD range. I don’t recommend packaging custom objects as Extension.

You can change the automatically generated ID in the Database-Alter menu on the Advanced Tab.

StartID UidOffset

I admit, it does not work too well with distributed development where each developer has their own database.

Hopefully in the (near) future Microsoft will make the required changes in NAV to make proffesional development easier out of the books so we can safely say distributed development is easy. I would also like to see GIT support.

How I upgraded to NAV2016, without upgrade toolkit

Back home from NAVTechDays. It’s a rainy saturday, nothing much to do in the garden. Kids are playing or doing their saturday activities with sports and scouting. I figured it was time for me to catch up with bookkeeping and some paperwork after all the traveling.
Continue reading

Learning Dynamics NAV Patterns | The book has shipped!

Today I was a happy man when I got home. I unboxed the first 25 copies of my new book Learning Dynamics NAV Patterns. Just in time for Directions EMEA next week.


I will take 25 copies with me next week. If you would like a copy, find me at the event, between the 1000+ other people. You can easily find me. I am the tall guy with the ponytail wearing a NAV Skills t-shirt.


I hope and expect the book to have a positive impact on the way the NAV partners develop software. I believe it is time to take the next step in proffesional software. This book explains how and which elements of Dynamics NAV are good to be reused.

Looking forward to see you next week!

(Did I say I am happy?)

PS: You can order the book here

Or on Amazon:

Microsoft How Do I Video Series | Behind the scenes

Microsoft produces How Do I videos for many of their products. They can be found on MSDN where they are grouped by product.

For Microsoft Dynamcis NAV we have recorded over 100 videos for NAV2013, NAV2013R2 and NAV2015. The recordings for NAV2016 are being prepared as I write this blog.

I came on board for NAV2013R2 to do a series about NAV Development Best Practices that we then decided to call Design Patterns. I also did a handful of other videos about the Job Queue, Word Reporting and lately some functional end user scenario videos.

Let’s take a look behind the scenes and see how these videos are being made.

Scenario & PowerPoint

The videos are created using a scenario. This is often the title of the video with a small description of the steps. After beign approved by Microsoft the recording can start.

Most of the videos are recorded at home or office. We use Camtasia which makes it relatively easy to record them. Lately the editing such as zoom and highlight is done by an editor which saves a lot of time, before that this had to be done by the author.

The PowerPoint has evolved to a nice moving introduction to the video. Most of the How Do I video should take place in the product itself, not in powerpoint.

The Recording Studio

Some videos are recorded in the studio. The one we use in Europe is in Belgium. The same studio as used for Plataan TV which most of you know from other online training.


The studio is at the research campus in Hasselt.


The first time you are in a studio like this it is a strange experience. No matter how many videos you have recorded at home, this is different. But once you are used to the cameras it is fun and when well prepared we can be very productive in the studio.

Do you want to join the team? Leave a message on the blog and I will forward it to the team.

Dynamics NAV 2013 | Dimensions (I)

This blog post is brought forward from my old blog to be linked into my new book.

Ok, let’s go back to what matters. The cool stuff about NAV 2013.

At NavTechDays Antwerp I did a deep dive into the changes that are made in Dimensions. In the comming blogs I am going to share this.

What are dimensions

Dimensions are first introduced in version 3 as a replacement for project and department codes and have two main functional purposes. The first is restriction checks on posting. We can for example give a G/L account a mandatory product dimension or vice versa block a certain dimension or dimension value for posting. The second purpose of dimensions is data analysis. Using dimensions allows us to define analysis views that we can use for reporting and analysis.

The main elements in Dimensions are Master Data, Journal and Document registration, posting and analysis.

Problems & Challenges

Let’s look at the problems and challenges we have with Dimensions and the reasons for the redesigned in NAV7.

Storage Firstly we have the storage issue. Dimensions can consume up to 33% of the space in a database.

Performance Moving the data through the database takes a cut out of the performance. This is at least 30 % even if you don’t use dimensions.

Coding I think many developers here agree, to take dimensions into account when posting a journal or document you need quite a substantial piece of coding.

Design Pattern

Let’s compare the design pattern in NAV 6 or earlier and NAV 7.

If we look at the first part, master data, we can see that there are almost no changes in the masterdata part of dimensions. A special one in this list is the Job Task Line dimensions. Microsoft considers this table master data, also because you can assign multiple dimensions.

The biggest change is in the way dimensions are assigned to journals in documents. All the tables that are designed for this in previous versions have been replaced by one new table Dimension Set Entry. In this table NAV stores all used dimension combinations. Rather than storing all separate dimensions for each record, each record is assigned to a unique set combination.

This allows us to do what I personally consider the nicest change in this new architecture, to move the dimensions through the posting routines, all you need to do is assign the correct Dimension Set ID.

To analyse the data, codeunit 410 has been changed. This codeunit has always been a bottleneck in Dynamics NAV for performance reasons. In Dynamics NAV 7 this is based on the new query object.

Dimension Sets

The Dimension Set is the biggest change in NAV 7.

Each table that contains dimension information should contain a new field Dimension Set ID. In the core product this is always field 480.

Calculating the SET ID is done in codeunit 408.

This codeunit is also been on a huge diet. Because there is no longer need for the data moving functions 50% of this codeunit has been removed. Perhaps even more because the new code for the Set handling has been added.

Each table should have a new function for showing the dimensions. This is done using the dimension set entry table as a temporary table.

— To Be Continued —