Sunday, 5 October 2014

How To Solve "There Are No Nav Server On This Database While debugging in Nav 2013"



The above message comes generally if your service is not started or user does not have proper rights etc. I came across with the different kind of situation where user is allowed debugging on the Server, but he is not allowed debugging from client machine where development environment is installed.

This issue is arise due to time on user/client machine is not matching with the time on the server machine.

Scenario 1
Debugging the object on the server - In this scenario user can able to debug the objects.


Run the development environment and run the debug Session


When you run the debug session it opens the screen and create a session ID as below

Now go to the File->Database->Information



You will find the Database Information Screen which gives the details about Server, Database, and Server Instance etc. Click on the server instance and check the Server instance information




Go to the table filter and check the filter given



The filter is on a Server Instance Table for
  • Status - Started
  • Server Port - <>0
  • Server Instance Name <>''
  • Server Computer Name <>''
  • Last Active Time > Server Time which is saved 
 Navision saves the time of a server where your Sql Server (Database) is installed.

After zooming the record following are the details saved by navision





Scenario 2
Debugging of the objects from different Machine/Client where Client Machine Time is ahead of Server Time- In this scenario user will not able to debug the objects.

In this scenario, Please make sure that your client machine time is ahead of Server Time.

Now go to the File->Database->Information in development environment.

If you click on the Server Instance you will not find any details


If you check the Filter 

It shows that current time of client machine should be greater than of Last active time stored. Though client machine's current time is more than the server time still it will not allow you to debug the code.
But if you keep client machine time behind the server time then Navision will allowed debugging the code.

It indicates that Navision select the Sql server Machine's Time as last active time.
In the above screen shot, the time shows is a server time. 

It means

  • If the client machine time (Navision Developer machine) is equal to Server Machine Time, Navision will allowed user to debug the code.
  • If the client machine time (Navision Developer machine) is less than Server Machine Time, Navision will allowed user to debug the code.
  • If the client machine time (Navision Developer machine) is more than Server Machine Time, Navision will Not allowed user to debug the code.