Developing extensions blindfolded in Dynamics NAV

Developing extensions in Dynamics NAV, it is possible to add two extensions that are adding the same field numbers to a solution. No warnings are given, and it is not possible to get an overview of which object numbers or field numbers the other extensions are adding. 

Let’s try an example:

 

Now I publish and install the extension together with a page extension:

In the Extension Management, it looks like this:

Nothing new about that.

Now, let’s try to install another extension with the same field number used:

Now I publish and install the extension together with another page extension:

It is possible to publish the extension and even install it in the tenant but starting the Windows client, I get the following error:

It is not possible to start the windows client again until I have uninstalled the extension through PowerShell:

In all the workshops I have conducted until now, I have been given the question:

”How do I see which object numbers and field numbers that are already used in the solution?”

I haven’t found any standard solution to this, so I made one myself:

Install two objects:

  • Table 50149 Extension Detail Information
  • Page 50149 Extension Detail Information

(And No, it is not possible to create as extension due to the tables I access.)

Run the page and it will generate detailed information on all apps that are published (installed or not):

Now you can filter for the desired table:

The object can be downloaded here:

http://ba-consult.dk/downloads/ExtensionDetails.zip

Have fun [H]

Anonymous
  • Yep, this is a problem.

    As far as I know the R2 release in spring will eliminate the numbering requirement, and it will only be based on the name. So adding a prexfix os suffix should be enough to never have conflicts with other extensions.

    I see you are already working with extensions, and I would love to know your thoughts on this:

    Imagine you have to develop an extension that is going to be used in 10,000 different Dynamics NAV customers. What characteristics would that extension have?

    A blog post about this would be perfect .-)

    I have also opened a discussion at mibuso:

    forum.mibuso.com/.../nav-2018-characteristics-of-a-scalable-extension

    Thanks a lot!

    Laura Nicolàs

  • Yep, thats what I’m saying.

  • So what you are saying is that you can crash a running solution with multiple users with an extension upgrade with conflicting field numbers without getting a clue about why, what and where? No sanity check what so ever? So you could end up in a "needle in a haystack" scenario finding the conflicts and un-publishing the extension coursing the error is not an option?!

  • Really useful Peik and totally needed, one point, you can make it an extension, just add "target": "Internal", to the app.json file and provided you don't want to publish to Dynamics365 but just a local NAV instance you can access these tables.

Related