Upgrade Considerations

Applies to: Microsoft Dynamics NAV 2017. See Microsoft Dynamics NAV 2018 version.

Depending on which version you are upgrading from, and the degree to which your solution differs from the standard version of Dynamics NAV, you may want to prepare your solution for the upgrade. This topic provides tips for things to consider when you prepare to upgrade to Microsoft Dynamics NAV 2017.

Names of Variables

Microsoft Dynamics NAV 2017 introduces new functions and statements. If your solution includes variables where the name is now used by a standard C/AL function or statement such as REGISTERTABLECONNECTION or FOREACH, you must change the variables before you upgrade to Microsoft Dynamics NAV 2017. Alternatively, you can enclose the variable names in quotation marks. If you do not, and you import an object that has this code in text format, you cannot compile the object. For more information, see Changes in C/AL Behavior and Support from Earlier Versions of Microsoft Dynamics NAV.

Deprecated or Redesigned Functionality

If you are upgrading a solution that depends on functionality that is deprecated or changed in the default version of Microsoft Dynamics NAV 2017, you must verify that the upgrade codeunits migrate data correctly.

Upgrade Codeunits

When you introduce changes to the database schema in Microsoft Dynamics NAV 2017, Dynamics NAV will check if these changes are destructive or not. If the database check indicates that the change may lead to data deletion, such as if you are dropping a table column so that the contents of that column will be deleted, this is considered a destructive change. You will be prompted to handle the situation using upgrade codeunits. For more information, see Upgrade Codeunits.

Company Names

If a company name includes a special character, an error may display during the upgrade. In this context, special characters include the following:
[ ~ @ # $ % & * ( ) . ! % - + / = ? ]

If you are going to upgrade a database where one or more company name includes a special character, we recommend that you rename the company before you start the upgrade process. After the upgrade is successfully finished, you can rename the company again.

System Tables with Non-English Names

In the oldest versions of Dynamics NAV, you could translate the columns in system tables to a language other than English. Starting with version 3.0, we advised heavily against this, and versions later than Microsoft Dynamics NAV 2013 R2 require that all columns in all system tables are in English. As a result, if you try to open a database with non-English system tables in Microsoft Dynamics NAV 2013 R2 or later, an error displays, saying that one or more columns do not exist.

Make sure that all objects where compiled in a development environment with the right .ETX and .STX files. You can verify that you are running in the correct environment with English (US) as the base language by opening the ndo$dbproperty table in SQL Server Management Studio. In the Identifiers column, the word Object must be written exactly as shown here.

See Also

Upgrading to Microsoft Dynamics NAV 2017
Upgrading the Application Code
Upgrading the Data
Changes in C/AL Behavior and Support from Earlier Versions of Microsoft Dynamics NAV