Papers, Please

I’ve said it before. Dynamics NAV lives and dies by numbers. To be more clear: Microsoft Dynamics NAV Developers live and die by numbers. Object numbers, that is.

The Breaks

From the early days even before Microsoft purchased (as they do all good things) Navision from the Danish group who created it, Navision objects were parsed into object ranges.

Today, the object ranges and their uses are shown in the table below.

Range DescriptionMinimumMaximum
Base Application149,999
Customization Range50,00099,999
Localization Range1,000,0009,999,999
Registered Solution Range10,000,00069,999,999
Business Central Apps70,000,00074,999,999
NAV System2,000,000,000… and up

Translation

Base Application

This range is reserved, in object, field number, and variable number range to the native application.

Developers cannot add objects in this range, regardless of license. They cannot add fields on tables in this range, regardless of license. They can, in certain circumstances, add variable numbers in this range, although they should avoid that at all costs.

Customization Range

What we developers call the 50K range is our world, usually. When asked to modify or extend for a single customer, this is where we work.

Dangerous territory

This is very dangerous territory for the NAV developer for the following reason:

Our license gives us rights to create and work in these object ranges, without further permission or approval. However, we may work in object ranges where our clients cannot.

In other words, we may work in object ranges, given our license, that our clients cannot because our license is more prestigious than theirs.

We can use these objects (from 50,000 to 99,999). But our customers may not be as enabled.

Registered Solution Range

In all versions prior to the Azure multi-tenant version that uses extensions and not modifications, Microsoft allotted certain object ranges to solution centers for their registered solutions. Companies like Lanham Assoc. build add-ons for EDI, warehousing, manufacturing, and many others that they sell to other solution centers — not to the customers.

These companies are given specific object ranges. This protects the Registered Solution Provider in two ways:

  1. Nobody can overwrite their objects with others because, like a license plate in a state, there are no two licenses with the same number (object range)
  2. Other solution centers must be given permission by the Registered Solution provider before Microsoft will extend their license for access or modification into this protected range.

Obviously, both of these benefits protects the original inventor’s intellectual property. In many cases, it unfairly locks the customer to one solution provider because the noncompetitive amongst us won’t grant anyone else permission to open or modify those objects. Beware of these providers and their add-ins.

We can use these objects if we have the Microsoft or Solution Provider commission.

Business Central Apps

This is a new range. Since the release of D365 Business Central (Dynamics NAV for Azure and Online), the architecture and design of customization mimics the more familiar OO concept of exention rather than modification.

Microsoft assigns these object ranges to creators who build extensions targeted for sale on Microsoft’s AppSource — another source of income for Microsoft. It’s no wonder they’ll favor those who help them increase their revenue.

We can use these ranges if we have the Microsoft commission.

NAV System Range

The last and highest-number range starts at 2 BILLION and goes up from there. These can be tangible objects, but in some cases may actually only exist in a virtual environment, accessible only within the logic of other objects.

The tangible objects often reflect data required for security or permissions, or other system administration. The virtual objects represent meta-data subsumed from properties of objects, or of the entire system itself.

We can’t use this range. Ever.

What’s the Rule, then?

The rule(s) are these:

  • Your custom work will often be done in the 50K range.
  • In rare cases you will work with a solution partner who has a different range, but that’s rare.
  • When working in the 50K range, find out what objects your customer has license to and either:
    • Stay within their previously-licensed range
    • Find out if they are willing to purchase more objects from Microsoft and then work in those additional object ranges.

Underlying License Rule

Never. Never. Never. Never. Never leave your license on the remote desktop of the client. Never. Never. Never. Never. Never move your license onto the remote desktop of the client just to change licenses. (Use it from the host desktop of the remote. It’s a bother, sure, but never move it to the client’s servers, nonetheless.)

Second Underlying License Rule

Run your modifications on the client test database using their license before you think you’re finished. If it runs without permission problems, good. If not, then it’s you who have problems.