How do I: Demo Microsoft Dynamics NAV

  • Reading time:1 min read

A couple of weeks ago, a new page was created on PartnerSource – the “Demo Microsoft Dynamics NAV” page. You can access it at http://aka.ms/demonav

The page contains (at the time) two scripts and two How Do I videos that help you establish a demo NAV 2015 environment on Azure, in Office 365. The whole process is highly automated and you can get up and running in a matter of minutes. When I say “up an running” I mean this: having a virtual machine running on Azure, with NAV 2015 accessible through Windows, Web, and Tablet client, with single sign-on to Office 365, and a nice demo SharePoint Online portal with several reports from NAV.

If you haven’t yet – give it a try.

Continue ReadingHow do I: Demo Microsoft Dynamics NAV

GETLASTERROROBJECT vs. GETLASTERRORCODE

  • Reading time:4 mins read

Good. At this point we know everything about exception types, what they are, how to obtain them, how to compare them (at least directly). All of these have suddenly become relevant now that we have GETLASTERROROBJECT function in NAV 2015.

But an old friend is still around, the GETLASTERRORCODE function, what about it? Why do we need to bother with GETLASTERROROBJECT when we have a simpler approach, with less peeking into inner exceptions, less reflection, less spooky, obscure .NET internals?

Continue ReadingGETLASTERROROBJECT vs. GETLASTERRORCODE

Getting the exception type from the GETLASTERROROBJECT

  • Reading time:4 mins read

In my last post I have introduced the GETLASTERROROBJECT function that returns you the instance of the System.Exception class, representing the actual exception that has happened.

To properly handle exceptions in an unambiguous way, you must use the exception type, not its name, so it is important to get the actual System.Type representing the exception type.

Sounds easy, but it’s not quite so.

Continue ReadingGetting the exception type from the GETLASTERROROBJECT

Better error handling in NAV 2015

  • Reading time:3 mins read

You may love C/AL as a language, but there is an area in it that you must just hate. It’s the error handling. Plainly put, and being actually quite positive about it, in NAV, error handling just sucks. If an error happens, it happens. You have only one possibility to actually capture the error, and it’s the IF CODEUNIT.RUN construct, and it’s limited because you can do it only once per transaction, and if you want to do it twice, you must COMMIT your transaction first.

But still, capturing an error is one thing; actually handling it is quite a different thing altogether.

Continue ReadingBetter error handling in NAV 2015

Request page automation in NAV 2015

  • Reading time:5 mins read

Most of What’s New information about NAV 2015 will mostly talk about the Word report layouts, as well as the C/AL support for these. However, most of the What’s New documentation doesn’t have a single word about what I find among the most exciting new reporting features in C/AL: the capability to programmatically control the request pages.

Continue ReadingRequest page automation in NAV 2015

Any clue about cue?

  • Reading time:3 mins read

Do you know cues? Those clickable colorless stacks of documents in NAV 2009, that turned into clickable blue stack tiles in NAV 2013 R2, and that worked on top of FlowFields of type Integer?

Well, in NAV 2015, this munch bunch has turned into clickable blue tiles with pictures and colorful indicators that are configurable per user, that work on top of any kind of numeric fields (normal or abnormal), or better yet, on top of any kind of numeric expression (you can bind them to RANDOM(1000) for all NAV cares).

Continue ReadingAny clue about cue?

Upgrade Codeunits in NAV 2015

  • Reading time:7 mins read

Once upon a time, and really not such a long time ago, there was no such thing as a codenit type. In all honesty, there is still no such thing as a codeunit type – there is subtype, though. (Why we have subtypes, without having types, beats me, but let’s let the semantics go.)

Nowadays, we have four codeunit types. NAV 2009 SP1 brought along the Test and Test Runner types, which – in my experience, at least – haven’t seen much runtime (which is a pity, if you ask me). And now NAV 2015 brings along another type: the Upgrade codeunit type. The mere sound of it makes my heart thrill. The Upgrade codeunit. Mmm.

Continue ReadingUpgrade Codeunits in NAV 2015

Synchronizing Database Schema in NAV 2015

  • Reading time:4 mins read

Before NAV 2013 R2 the “database schema synchronization” was an unknown term. Either you could do a database schema change, or you couldn’t. There was no such thing as data loss.  If you wanted to change a field type or delete a field (or delete the whole table for that matter), and there was data in that field in the table, you got an error. Data present – no go.

However, with multi-tenancy, and the possibility to mount tenant databases originating from different applications, suddenly there was an issue – how should NAV handle possible differences in database schema for different tenants? Should we force the change at the cost of data loss? And thus the term “database schema synchronization” entered the vocabulary of regular NAV Joes.

Continue ReadingSynchronizing Database Schema in NAV 2015