Code of coding 3: Die, hard(coding)!

  • Reading time:4 mins read

Development is an important phase of implementation of a highly-customizable ERP system, such as Microsoft Dynamics NAV, and that’s why I put a lot of emphasis on development, specifically on coding part of it. I’ve tried to cover a few do’s and don’ts of coding, but so far I’ve left one of my favorite clay pigeons out: hardcoding.

If you want me to define hardcoding, I’d probably put it something like this: hardcoding is the ugliest possible form of laziness, incompetence, ignorance, indifference, carelessness, or any combination of the five, which in short-term makes my toenails curl up, and long-term leads to poor and unmaintainable systems and unhappy customers.

Continue ReadingCode of coding 3: Die, hard(coding)!

Version management

  • Reading time:9 mins read

When I posted my last relevant post on this blog, I’ve got a comment from infonote (a visitor) how bad it was that Microsoft Dynamics NAV can’t use a versioning system. Well, as the matter of fact, it can.

One of the nice things in NAV is that at any given moment, the development environment is just a Shift+F12 away. When you are a single developer on your team or on a project, this keypress is your best friend. But if there are other people on your team pressing it with an agenda, then this keypress might as well be a combination made in hell.

Continue ReadingVersion management

Code of coding 2: Documenting changes

  • Reading time:9 mins read

Few days ago, when I wrote about coding, I didn’t have a slightest idea that at the same time, at the completely opposite part of the globe, Dave was blogging almost about the same thing. It is interesting to know that I am not the only one out there actually worying about code, and how it looks like.

The most common thing I used to hear when I asked bad coders about their code was: “It works, why shoud I care.”

Continue ReadingCode of coding 2: Documenting changes

Code of coding

  • Reading time:5 mins read

Code is boring. It is geeky. And it’s ugly, too. In C/AL it is especially ugly. While contemporary development tools come with all sort of gizmos which make coding easier, such as color-coding, auto-completion, refactoring, etc., C/AL editor seems like having awaken from a thousand-year sleep. Take a look at the color coding: there is none. Or there is, but palette is limited to that of Charlie Chaplin’s. There is some functionality which looks like auto-completion but it is not, and the text editing capabilities make you dream about Notepad at night. But you can look at it from a different angle. C/AL editor is the way it is for a reason: to keep programmers away. It’s the defence mechanism developed over twenty or so years of evolution of the system, to protect the system from rookie knowitall programmers ripping away that stupid Gen. Jnl.-Post Line codeunit and rewrite it the way it should be. With this, we come to Rule No. 1: Know what you are doing.

Continue ReadingCode of coding

Why doesn’t my filter work?

  • Reading time:2 mins read

Today I got a comment from another soul out there, spending their time blogging about Microsoft Dynamics NAV. I’ve immediately put the link to my blogroll, and it really deserves it, because it is the best blog on the topic I’ve seen so far.

Few days back, on that blog, there was a post about setting filters, which didn’t work as expected, and you had to write a wordy workaround for a thing that should work as expected, but surprisingly it doesn’t.

Continue ReadingWhy doesn’t my filter work?

Silent Abort

  • Reading time:4 mins read

There is only one way to abort a user action in Microsoft Dynamics NAV: by using the ERROR function. This function essentially stops the execution of all code, and prevents completion of the user action, whatever such action might be.

One of typical situations where ERROR is used to prevent user action is during validation of a new value in a field. A typical concrete example of this behavior is entering the Customer No. value in the Sell-to Customer No. field on the sales order form. When users enters a value, the system goes through a series of checks, called validation, which in the end may result in the system rejecting this value. Obviously, the only way for the system to reject a value entered by the user is, yes you’ve got it, by calling the ERROR function, which returns the system to the last committed state before the error.

Continue ReadingSilent Abort

Blank by default

  • Reading time:4 mins read

I love unsolvable problems. I simply do. I had one a few days ago in the office, and I solved it.

So, the problem went like this. A discussion has been raised among developers about whether it would be possible to display a blank form over a populated table, where user would be able to immediately enter the data of a new record, without having to press F3 (or inserting a new record manually). The problem is, this doesn’t work that way in Dynamics NAV.

Continue ReadingBlank by default

Techno stuff

  • Reading time:10 mins read

Tons of documents exist about Microsoft Dynamics NAV, but most of them start with marketing lingo, and don’t wander away too much from it altogether. While it is nice to know that it is a system which will give you freedom to focus on your business, it is also nice to know what is it made of, and how it works inside. Inspired by a total lack of resources which would give a clear picture of all the system components and their relationships, I wrote this post in hope someone might find it helpful.

Continue ReadingTechno stuff