I have now gone through my first upgrade from NAV 2013 to NAV 2013 R2.
- Stopped and uninstalled NAV 2013 Server
- Opened NAV 2013 database with NAV 2013 Developement Environment and upgraded the database
- Compiled all system tables (2000000004-2000000130)
- Installed and started NAV 2013 R2 Server
- Compiled all objects
- Imported Upgrade700701.IS.1.fob from the NAV 2013 R2 DVD – where IS is the localized version
- Started Page 104001 in every company and executed “Transfer Data”
- Started Page 104001 and executed “Delete Objects”
- Imported NAV 2013 R2 fob file with the application
- Restarted NAV 2013 R2 Server
- Imported Upgrade700701.IS.2.fob from the NAV 2013 R2 DVD – where IS is the localized version
- Started Page 104002 in every company and executed “Transfer Data”
- Started Page 104001 and executed “Delete Unused Tables” and “Delete Upgrade Toolkit”
There where a few things I would have liked to go better.
- I needed to upload the developer license to the database to be able to upgrade. In an environment where multiple databases share the same license this could be a problem.
- Codeunit 104004 only deletes the upgrade data for the current company as if the upgrade process is not designed to run for a database with more than one company. Tables 104003 and 104037 are not emptied. There is no way to execute this Codeunit for all companies since it is deleted in the first execution. Therefore I needed to manually empty the upgrade tables and delete them.
- Another problem with Codeunit 104004 is that is does not delete the Queries 104001 – 104004. I needed to manually delete them after the upgrade process.
I sure would like Microsoft to take a look at these issues and find a solution.
Then I wanted to start the NAS Service. In the Server Administration I did not see the NAS Company setting. I looked at the documentation for Configuring NAS Service and found
Setting |
Description |
NAS Company |
Specifies the Microsoft Dynamics NAV company that opens when NAS services start. |
So I asked my MVP’s for the answer and Arend-Jan Kauffmann answered.

The PowerShell parameter changes from NASCompany to ServiceDefaultCompany.
In the documentation it states that
It is recommended that you create a separate Microsoft Dynamics NAV Server instance for each NAS services application. See How to: Create a Microsoft Dynamics NAV Server Instance.
There are multiple reasons for running NAS services sessions in dedicated Microsoft Dynamics NAV Server instances:
- Efficiency and convenience
When you change any Microsoft Dynamics NAV Server setting, you must restart the instance for the change to take effect, which interrupts all services using that instance. So if you are running different types of services in the same instance—for example, RoleTailored client services and NAS services—making a change to the settings for either service type will require a server instance restart that interrupts all other service types running through that instance.
Even for different types of NAS services applications it’s wise to run each application in a separate server instance. For example, if you will be using NAS services for a Microsoft Office Outlook Integration application and also for a Microsoft Dynamics NAV job queue application, create a separate Microsoft Dynamics NAV Server instance for each NAS services application. This way, if you need to modify settings for the Microsoft Office Outlook Integration application you will not affect the Microsoft Dynamics NAV job queue application, and vice-versa.
- Performance
Configuring NAS services applications to use separate server instances makes better use of the server computer’s resources, allowing you to run more applications with less degradation.
- Efficient error tracking
If a NAS services session terminates in an error, and there are no other services running on the Microsoft Dynamics NAV Server instance, the service instance terminates and can be handled like any other Windows service. For example, you could configure the Recovery tab on the Service configuration tool in Control Panel to restart or otherwise manage the service.
The same then applies to OData Services I guess – create a dedicated server instance for OData.
I used the following PowerShell script to create a new NAS Server Instance
[code]$DatabaseServerName = ‘localhost’
$DatabaseName = ‘NAV2013_COMPANY’
$ServiceInstanceName = ‘NAV2013_COMPANY’
$CompanyName = ‘Company Name’
$MgtPort = 7089
$ClientPort = $MgtPort + 1
$SoapPort = $ClientPort + 1
$ODataPort = $SoapPort + 1
Get-Credential | New-NAVServerInstance -ServerInstance $ServiceInstanceName -ServiceAccount User -ClientServicesCredentialType Windows -ClientServicesPort $ClientPort -DatabaseName $DatabaseName -DatabaseServer $DatabaseServerName -ManagementServicesPort $MgtPort -SOAPServicesPort $SoapPort -ODataServicesPort $ODataPort
Set-NAVServerInstance -ServerInstance $ServiceInstanceName -Start
Set-NAVServerConfiguration -ServerInstance $ServiceInstanceName -KeyName ‘NASServicesStartupCodeunit’ -KeyValue ‘450’
Set-NAVServerConfiguration -ServerInstance $ServiceInstanceName -KeyName ‘NASServicesStartupMethod’ -KeyValue ”
Set-NAVServerConfiguration -ServerInstance $ServiceInstanceName -KeyName ‘NASServicesStartupArgument’ -KeyValue ‘JOBQUEUE’
Set-NAVServerConfiguration -ServerInstance $ServiceInstanceName -KeyName ‘ServicesDefaultCompany’ -KeyValue $CompanyName
Set-NAVServerConfiguration -ServerInstance $ServiceInstanceName -KeyName ‘NASServicesEnableDebugging’ -KeyValue $True
Set-NAVServerInstance -ServerInstance $ServiceInstanceName -Restart[/code]
Now I can start to use NAV 2013 R2.