Tip of the Week #135 – Error When Trying to Personalize Pages in the NAV 2018 Web Client

Tip of the Week #135 – Error When Trying to Personalize Pages in the NAV 2018 Web Client

Developer Peter Tijsma brings us this week’s helpful tip.

Personalization in the NAV 2018 Web Client is like hitting the “Customize this page” in the NAV Windows Client. The benefit of the Web Client in this case is that you can simply use Drag & Drop to move fields around the page, add new fields or remove fields.

(More info here: https://docs.microsoft.com/en-us/dynamics-nav-app/ui-personalization-user)

Sometimes you’ll hit this error when you want to personalize a page in the NAV 2018 Web Client:

We’ve encountered that this is caused by the fact that objects have been changed through the Development Environment, but are not transformed to ‘Symbols’ (yet).

Symbols are a different kind of object used by the new Modern Development Environment of NAV – which runs in VS Code.

In essence, it’s the metadata of all objects in the database and is describing the object so you can use them in VS Code.

So a good developer already runs the Sync-NAVTenant command as he has learned. However, this doesn’t solve that particular issue.

To do it correctly, one needs to start the Development Environment with a certain switch that tells the system to start building the ‘symbols’ immediately when compiling the objects.

The correct way of starting the Development Environment is to run it “Elevated” (Run as Administrator).

Like this:

“C:\Program Files (x86)\Microsoft Dynamics NAV\110\RoleTailored Client\finsql.exe” generatesymbolreference=yes

This will ensure the symbols are generated on the fly every time you compile an object.

But when you already have corrupted symbols, you need another way to regenerate all the symbols (and you also need to do this when deploying the database for the first time).

This can be done with an elevated command prompt:

finsql.exe command=generatesymbolreference, database=<databasename>, serverName=<SQLServerName\SQLInstance>[, navserverinstance=<NAVServerInstance>], [navservermanagementport=<NAVServerManagementPort>]

It appears that this process finishes immediately; But in fact it will continue to run in the background.

Just open the Windows Task Manager and wait until the background process “finsql.exe” is finished (and has disappeared).

As a rule of thumb, it takes as long as a normal full compile of the database will take.

More information:  https://docs.microsoft.com/en-us/dynamics-nav/developer/devenv-running-cside-and-al-side-by-side

Thank you Peter!

Call Now Button