Block by default in Dynamics NAV

Dynamics NAV is a great system but it’s only as good as the data it’s given. Too often I see a multitude of issues caused by master data that’s partially setup and never completed. Your people are in a rush to get to something done and for instance partially setup a customer, or worse an item and because they don’t know all the information or even what that information is, they leave the record partially complete and just do enough to get that desperately needed sales order on. Sound familiar?

Well bizarrely Dynamics NAV’s mandatory fields function does not enforce the entry of those fields, only highlights then with a red star next to them and even more perversely it’s needs a developer to decide what’s marked mandatory as it’s a property on the field on the table only accessible through the development environment – sorry but that’s a very poor job Microsoft, next to useless.

So what’s the answer? Well it’s a quick 60 second (honestly I timed it) change to get the blocked field on the major master data records (customer, vendor, item, general ledger, resource, dimension)  to be ‘ticked’ or true when the record it created.


Then it’s a small amount of code to check when the user tries to unblock the record, to make sure the required fields are complete with valid data. That can even be cross table so for instance an item cannot be unblocked unless valid item unit of measure records exist.

The fields required should be configurable so you can change it and even different fields dependent on another’s value. That means for instance if an item record is set to be purchased the vendor no. is completed but if set to be manufactured the BOM and Routing codes are set with certified codes.

Hopefully with the new Workflow that been announced for the next version of NAV (codenamed Corfu due in October 2015) I hope that it won’t even need code adding to the standard solution to do the validation.

And I promise your system will be so much more reliable and trustable because your data is complete. You’ll never get a call from the warehouse at 18:30 to say a sales order that’s been on for months won’t ship ‘because the dimension combination is invalid’ and it holding that nights shipments up for example. Or that your sales analysis total does not match your G/L sales balance for the period because a customer or item was setup without a dimension value, meaning your reporting isn’t trusted.

I could list any number of examples of where, too late, clients have found data was missing after a transaction has been done and it destroys their new systems credibility because the numbers are clearly wrong or at least incomplete.

So get this customisation done and you’ll never have these issues. Your users will call you names because you force them to do things properly at first but even they will appreciate it once they understand that a smooth running system helps everyone.