The Blog, The Books & The Workshops. In one place


This blog contains 10 years of information about Dynamics NAV . The articles are all categorised, which makes it easier for you to find the information you need.

Continue reading

Posted in Dynamics NAV, General | 4 Comments

Say “Hello World” in AL for Visual Studio Code


The very first piece of AL Code for Visual Studio Code has just gone VIRAL! GitHub admins see above normal forking of this great branch. Check it out and see what our language of the future looks like!

Microsoft starts teasing us while we eagerly wait for the December PREVIEW.

// ---------------------------------------------------------------

// Copyright (c) Microsoft Corporation. All rights reserved.

// Licensed under the MIT License. See License.txt in the project root for license information.

// ---------------------------------------------------------------

// Codeunit for creating random greetings

codeunit 70051100 GreetingsManagement

{

    // Get a translated 'Hello World' string.

    // Thanks to https://www.bing.com/translator/

    local procedure GetHelloWorldText(GreetingNo : Integer) : Text;

    begin

        case GreetingNo of

            0:  exit('Afrikaans: Hallo wêreld');

            1:  exit('Arabic: مرحبا بالعالم');

            2:  exit('Bulgarian: Здравей, свят');

            3:  exit('Cantonese: 世界你好');

            4:  exit('Greek: Γεια σου κόσμε');

            5:  exit('Korean: 전 세계 여러분 안녕하세요');

            6:  exit('Thai: หวัดดีชาวโลก');

            7:  exit('Hindi: हैलो वर्ल्ड');

            8:  exit('Japanese: ハローワールド');

        else

            exit('Hello, World'); // Default to the good old one.

        end;

    end;




    // Gets a random greeting.

    procedure GetRandomGreeting() : Text;

    begin

        Randomize;

        exit(GetHelloWorldText(Random(10)));

    end;

}

If you don’t know what I’m talking about. Get out from under your rock and see some daylight. Microsoft is moving the good old C/AL programming language to “AL” programming in Visual Studio Code with a new compiler.

I already have a whole series of blog posts about this ready since the new compiler has all capabilities to make my dream come true. Design Patterns as templates to be used just like C# templates. The compiler is crazy smart and will be the vehicle to make upgrading more predictable in the future.

Videos

As part of the NAV TechDays YouTube channel you can also see the session about the designer as well as the preview in the Keynotes.

 

For Readers

If you like reading more than watching, then go to the blog of Arend Jan.

Posted in Dynamics NAV | Leave a comment

NAV2017 | Why is it so damn fast!


This week after NAVTechDays I started upgrading one of my more complex customers to NAV2017. We have several reasons to do this.

#1 – Outlook Add-In

Eventually we want to use the Outlook Add-In for a project next year to improve the sales data and reduce invoice errors.

#2 – Notifications

My first reason was to use Notifications. I had already built something like Notifications in the classic client which was very easy with the Wysiwyg controls and we lost this when upgrading to NAV2016.

#3 – Job Queue

Then we got another reason. Job Queues. In NAV2016 they sometimes keep hanging over maintenance jobs in the weekend or during other scheduled or unscheduled system tasks.

Job Queues got improved in NAV2017 and are now part of platform and multithreaded. They came a long way since they ran as a Form with a Timer.

Funny detail is that the system table is not called Job Scheduler just like the first one.

Platform Upgrade

Since we have a huge amount of users in multiple locations and countries and quite a large database we decided to break the upgrade down in smaller pieces and start with a platform upgrade.

This is quite easy and does not take more than a few minutes but during testing I ran into this error message:

“Call to the function ‘LOCKTABLE’ is not allowed inside the call to ‘TryPrint’ when it is used as a TryFunction.”

This made me smile since I actually managed to implement try functions during transactions. I have to fix this but I decided to move that to a later point in time when I do the Application upgrade.

Workaround

NAV2017 has a new key called DisableWriteInsideTryFunctions which by default is set to TRUE. This is perfect but not when you run a platform upgrade since NAV2016 actually supported this.

Why no Full Upgrade

The reason not to go for full upgrade is end-user training. The UI of NAV2017 has changed so much and I don’t have time to train all the users in the timeframe I want the platform improvements to work.

It’s not because merging is a lot of work. In NAV2016 we have implemented a lot of events where possible and hooks where there were no events.

Isolate Job Queue

You can upgrade Job Queue to the NAV2017 objects quite easily since they are isolated. The only change is in Codeunit 41 where is calls into a Job Queue Codeunit.

If you don’t remove this reference NAV will do an App Crash with no usefull log.

So what about performance

The very first second I spun up the 2017 instance and started testing everything just felt so much more responsive. This was noticable since the database runs on a very slow file system. (To be fixed in December by adding more HP)

Building the Dynamics 365 for Financials service

The session high on my list for NAVTechDays was this one. I ended up having to miss it because I got stuck at our booth.

This was the 3rd video I watched from NAVTechDays and definately one of the the most interesting ones. I never realised Microsoft had made such big performance improvements to the core stack that on-prem customers would benefit from.

Saas = Simplicity

The reason I love NAV is because its simplicity. Something I felt was getting lost last few years by adding components like PowerShell and Azure.

Saas takes all of this away and makes NAV simple again. I will blog more about this in following blogs as I will continue to explore NAV2017, Dynamics 365 and AppSource in my new role as CTO of the Dynamics App Alliance.

dynamics-margin

Posted in Dynamics NAV | 2 Comments

NAV 2017 | Download (seems to be) fixed


When Microsoft Dynamics NAV 2017 was released a few weeks ago there were some issues with downloading. Some MVPs have blogged workarounds. The issues were related to the FTM (File Transfer Manager).

This Microsoft website explains the issue.

Good news I heard at NAVTechDays was that the issue seems to be resolved and I checked this morning and downloaded W1 RTM without issues.

I’m guessing that the FTM was completely removed but I am not sure. Maybe someone from Microsoft reading my blog can comment.

Anyway, I thought I should share this good news on a windy Sunday morning while updating the Microsoft Dynamics Programming book for NAV 2017 for you.

Posted in Dynamics NAV | Leave a comment

NAV2017 ApplicationArea | The Mistery of Disapearing Controls


Last week, before going to NAVTechDays I was asked to teach a ForNAV class in Switzerland. NAV2017 was just released so I decided to use that for the examples.

While doing some preparation I ran a few reports and it looked fine until I realised I could not design reports from the Windows Client anymore.

This is a very popular feature of the product where you can design reports as an end user without having to go through the development environment as long as you have access to the ForNAV Designer. Continue reading

Posted in Dynamics NAV | 2 Comments

Inside NAV 2017 | Improvement comes with a price


You can’t have everything. Wise men have said this many centuries ago. There is no such thing as absolutely perfect.

NAV2017 is a fantastic release and blogpost after blogpost after blogpost you can read everyone is happy and agrees on this.

Continue reading

Posted in Dynamics NAV | 2 Comments

Prepare for NAVTechDays 2016 | Are we hitting 1000?


The last and definitely one of the coolest NAV events of the year is only a few weeks away. NAV TechDays.

On November 17th the doors will open and boy am I looking forward to the keynotes. The penalty I had to pay for not attending Directions is having to miss any preview of the Visual Studio Code project. Fortunately Arend Jan Kauffmann is only one phone call away and his blog makes you feel you were in the session sitting next to him.

Will we hit 1000?

The million dollar question is if we will hit 1000 attendees this year. As Luc is one of the most transparent guys I know he is not shy of sharing details. On the Attendee page you can see we are getting close to 900.

Pre Conference Classes

For those of you who are attending the preconference classes the event starts one or two days earlier. There are still few seats available on these classes:

  • RDLC Advanced Reporting in NAV (Only Tuesday)
  • An introduction to the psychology of organizational performance (Tuesday)
  • Extending the Data Exchange Framework (Only Tuesday)
  • An introduction to Scrum (Wednesday)

See you there!

I’m looking forward to seeing you there. NAV-Skills is a sponsor and you can find Luc, me and our Dynamics App Alliance colleagues.

NAVTechDaysSponsor

Posted in Dynamics NAV | Leave a comment

Reporting from NAVUG Summit 2016 in Pictures


NAVUG Summit is the highlight of my Navision year and NAVUG is one of the best things that happened to me in my professional life.

I’d like to give you an impression of the event by showing some pictures that hopefully tell the story better than words so you’ll attend next year.

Continue reading

Posted in Dynamics NAV | Leave a comment

European Introduction of Dynamics 365 | ForNAV


Join me on November 9 for the introduction of Dynamics 365 in Europe.

Dynamics 365 for Financials (aka Project Madeira) is going to revolutionise ERP for the SMB market.

The launch will take place November 9th during the Dynamics Experience in Bussum, close to Schiphol Airport.

Continue reading

Posted in Dynamics NAV | Leave a comment

This Extensions Stuff, is it version 0.1, 0.9 or 1.0?


Unless you have been living under a rock it is impossible to have missed the discussions about Extensions, or should I say fights. When I was walking my kids to school this morning my neighbour asked what the argument I had on LinkedIn with Marko was all about.

As MVPs we have to get used to a new reality. Blogging is no longer something that nerds do to share their personal opinion. Blogging is part of a marketeers day job and people get paid for what nerds like me do for free. I like it because writing allows me to clear my mind. Continue reading

Posted in Dynamics NAV | 4 Comments

Performance Issue with Workflow + Solution


When I upgraded with one of my customers to NAV 2016 workflow was one of the new features I was looking forward to working with. You can imagine how disappointed I was when I found out that there was a huge performance issue with conditional workflows.

Here are a few links: Continue reading

Posted in Dynamics NAV | 3 Comments