What's New: Developer and IT Pro Changes for Microsoft Dynamics NAV
Microsoft Dynamics NAV is a complete enterprise resource planning (ERP) software solution for mid-sized organizations that is fast to implement, easy to configure, and simple to use. Right from the start, simplicity has guided—and continues to guide—innovations in product design, development, implementation, and usability.
This document details new features and functionality that are available in Microsoft Dynamics NAV 2016 and have been added to the product since Microsoft Dynamics NAV 2015. It also describes features that have been deprecated since Microsoft Dynamics NAV 2015. For information about Microsoft Dynamics NAV 2015, see What's New: Developer and IT Pro Changes for Microsoft Dynamics NAV 2015 in the MSDN Library.
What's New for Developers, Administrators, and IT Pros in Microsoft Dynamics NAV 2016
Microsoft Dynamics NAV 2016 introduces changes to the upgrade, development, deployment, and administration experiences compared to Microsoft Dynamics NAV 2015.
Redesigned C/AL Editor
The C/AL Editor in the Microsoft Dynamics NAV Development Environment has been redesigned to give you more coding capabilities. Coding in the new C/AL editor is like before except you benefit from new features such as IntelliSense, name completion, change tracking, improved syntax highlighting and colorization. The new design has a look-and-feel that resembles the Debugger regarding breakpoints.
You can use the old version of the C/AL Editor by running the Microsoft Dynamics NAV Development Environment from a command prompt and setting the
Record Permissions and Apply Permissions Sets to User Groups
Administrators can record new permission sets in Microsoft Dynamics NAV 2016. Recording permissions is based on the code coverage functionality. You can access the various windows and activities in the Microsoft Dynamics NAV Windows client or the Microsoft Dynamics NAV Web client that you want users with this permission set to access. You must carry out the tasks that you want to record permissions for. Then, you can apply the new permission set to a group of users.
Events in C/AL
By implementing events in C/AL code, you can design applications to react to specific actions or behavior that occur. Events enable you to separate customized functionality from the application business logic. By using events in the application where customizations are typically made, you can lower the cost of code modifications and upgrades to the original application.
For more information, see Events in Microsoft Dynamics NAV.
Event Channels on Microsoft Dynamics NAV Server Events
Microsoft Dynamics NAV 2016 introduces event channels on events that occur on Microsoft Dynamics NAV Server instances. Event channels provide a way to collect and view event data from a specific provider, which in this case in Microsoft Dynamics NAV Server, and for a specific type of event, such as admin, operational, or debug. The implementation of event channels offers the following enhancements to event logging and viewing:
In addition to the Windows Application log, Microsoft Dynamics NAV Server events are recorded in specific Microsoft Dynamics NAV Server logs in the Applications and Services Logs of Windows.
This provides an advantage over the Windows Application log which contains events from several providers, not just the Microsoft Dynamics NAV Server. You also have the option to disable logging to the Windows Application log.
You can use Event Viewer to view trace events.
You can use FilterXpath parameter of the Get-WinEvent Windows PowerShell cmdlet to filter events for a specific Microsoft Dynamics NAV Server instance.
For more information, see Monitoring Microsoft Dynamics NAV Server Events.
Multiple Namespaces on XMLports
You can define multiple namespaces on XMLports that import or export data as XML. This improves the ability to create XMLports that are compatible with the XML schemas that are used by the systems that consume or provide the Microsoft Dynamics NAV data.
You define namespaces in the new Namespaces Property of the XMLport object. Each namespace is defined by a prefix and the namespace, which is typically a URI (uniform Resource Identifier). You then apply the prefix to specific elements of the XMLport by setting the new NamespacePrefix Property.
For more information, see Using Namespaces with XMLports.
Updating Custom Report Layouts by Using Upgrade Codeunits
You can update custom report layouts by creating upgrade codeunits to handle changes in report datasets that affect the report layouts. Upgrade codeunits enable you to programmatically update multiple custom report layouts in the database to changes in report datasets that cannot be resolved by users from the Microsoft Dynamics NAV client. For more information, see Updating Custom Report Layouts by Using Upgrade Codeunits.
Filter Pages for Filtering Tables
Microsoft Dynamics NAV 2016 includes the new C/AL data type FILTERPAGEBUILDER. You can use the FILTERPAGEBUILDER data type and its functions to create a filter page that enables users to set filters on one or more tables. A filter page contains one or more filter controls, where each filter control can be used to set filters on a specific table. Similar to report request pages in the Microsoft Dynamics NAV client, filter pages are generated at runtime and run in a modal dialog box.
C/AL Try Functions for Handling Errors
Try functions enable you to catch and handle errors that occur when running the application. You can use try functions to catch errors and exceptions that are thrown by Microsoft Dynamics NAV or .NET Framework interoperability operations.
For more information, see Handling Errors by Using Try Functions.
HyperlinkHandler Function Type in Test Codeunits
You can write HyperlinkHandler functions in test codeunits to test hyperlink URLs that are passed to the HYPERLINK function. This is similar to other handler function types for handling UI interactions in application testing.
For more information, see How to: Create Handler Functions.
Object Metadata Virtual Tables
Microsoft Dynamics NAV 2016 includes the following virtual tables that contain metadata about Microsoft Dynamics NAV objects.
Codeunit Metadata virtual table
Page Metadata virtual table
Report Metadata virtual table
Table Metadata virtual table
For more information, see Virtual Tables
New CLIENTTYPE Options Added
With Microsoft Dynamics NAV the
CLIENTTYPE function has been expanded to support Microsoft Dynamics NAV Tablet client, Microsoft Dynamics NAV Phone client and running the app in Microsoft Dynamics NAV Web client, which is Desktop mode. This allows showing, for example, pages differently depending on the display target. For more information, see CURRENTCLIENTTYPE Function and DEFAULTCLIENTTYPE Function.
Column Layout on Role Centers
The mechanism behind the column layout on the Role Center specifically for the Microsoft Dynamics NAV Web client has been changed. It is still possible to define groups as previously, and thereby keep the design of existing Role Centers. But when these Role Centers are displayed on larger screens, there is an automatic switch to a 4 column layout. When developing new Role Centers, it is now possible to not define any groups and let the dynamic layout handle the switch from 1 to 2 to 3 column layout, depending on the screen size.
When building Role Centers it is recommended to avoid using the Group type to group the parts that make up the Role Center, and instead create all parts directly underneath the Container type. This will optimize the layout to be more dynamic and thereby fit more display targets.
Camera and Location
With Microsoft Dynamics NAV an API for integrating to a camera and getting GPS coordinates is available. The camera option is implemented in the application as functionality available when using Incoming Documents on, which you can see on, for example, the Accounting Manager profile. For a code example of how to integrate with the camera option, see How to: Implement the Camera in C/AL. For a code example of how to get GPS coordinates, see How to: Implement Location in C/AL.
Sizing Settings for Control Add-ins
To control that the sizing of the control add-ins is always optimal on all display targets a number of new settings are available to you when writing the manifest code. For more information, see Manifest Overview.
Structure for Resource Files in Manifest
Microsoft Dynamics NAV supports resource files to be described in the manifest file with or without a relative path allowing you to organize and maintain resource files the way you prefer. For more information, see Manifest Overview.
Tooltips on Microsoft Dynamics NAV Web client
Microsoft Dynamics CRM Integration
Microsoft Dynamics NAV 2016 introduces a new and improved integration with Microsoft Dynamics CRM. The new Microsoft Dynamics CRM integration provides an optimal and seamless experience for integrating Microsoft Dynamics CRM entities, such as accounts, and corresponding Microsoft Dynamics NAV business data tables, such as customers. Microsoft Dynamics CRM integration enables users to view Microsoft Dynamics CRM data in Microsoft Dynamics NAV and Microsoft Dynamics NAV data in Microsoft Dynamics CRM. It also enables you to synchronize the data between the solutions so that it is the same in both places.
Microsoft Dynamics NAV 2016 includes a default integration setup that is supported by several objects, including tables, pages, and codeunits. You can customize these objects to extend the integration to other Microsoft Dynamics CRM entities and change processes like synchronization.
For more information, see Integrating with Microsoft Dynamics CRM . and Customizing Dynamics CRM and Dynamics NAV Integration.
Additional Numeric Data Types Supported in Aggregations by Queries, FlowFields, and SIFT
In earlier versions of Microsoft Dynamics NAV, data aggregations (such as sum and average) on tables by Query objects, FlowFields, and SumIndexField Technology could only be done on Decimal data type fields. With Microsoft Dynamics NAV 2016 you can use Decimal, Integer, BigInteger, and Duration data types in aggregations.
Timestamp Field Available in Tables
Each table in Microsoft Dynamics NAV includes a hidden timestamp field. The timestamp field contains row version numbers for records as maintained in SQL Server. In earlier versions of Microsoft Dynamics NAV, the timestamp field could not be used in tables. In Microsoft Dynamics NAV 2016, you can expose the timestamp field in tables, write code against it, add filters, and so on, similar to any other field in a table.
For more information, see How to: Use a Timestamp Field.
SQL Server Authentication
Microsoft Dynamics NAV 2016 supports SQL Server authentication between the Microsoft Dynamics NAV Server instance and the Microsoft Dynamics NAV database in SQL Server. Previously only Windows authentication was supported.
For more information, see How to: Configure SQL Server Authentication in Microsoft Dynamics NAV.
Microsoft Azure SQL Database Support
You can deploy a Microsoft Dynamics NAV database to Azure SQL Database. Azure SQL Database is a cloud service for data storage that is a part of the Azure Services Platform.
For more information, see How to: Deploy a Microsoft Dynamics NAV Database to Azure SQL Database.
Automatic Deployment of Add-ins From the Database
Microsoft Dynamics NAV 2015 introduced the automatic deployment of Microsoft .NET Framework Interoperability and control add-in assemblies from the Microsoft Dynamics NAV Server to the Microsoft Dynamics NAV clients. Microsoft Dynamics NAV 2016 now makes it possible to automatically deploy add-in assemblies (including client control add-ins, .NET Framework interoperability, and language resources) directly from Microsoft Dynamics NAV database to the Microsoft Dynamics NAV Server instance or client as required. To accomplish this, you import the add-in files as a compressed (.zip) file into the database. You perform this by using page 9820 Control Add-ins or using the New-NAVAddin cmdlet, Set-NAVAddin cmdlet, Get-NAVAddin, or Remove-NAVAddin cmdlets from the Microsoft Dynamics NAV 2016 Administration Shell. The add-ins are then stored in system table 2000000069 Add-ins.
For more information, see How to: Install a Windows Client Control Add-in Assembly and How to: Set .NET Framework Types to Run on the Microsoft Dynamics NAV Windows Client or Microsoft Dynamics NAV Server Computers.
Running NAS Services with Administrator Rights
In earlier Microsoft Dynamics NAV versions, to run NAS services, the Microsoft Dynamics NAV Server service account had to be added as a user in Microsoft Dynamics NAV and assigned the required permissions to perform the operations. In Microsoft Dynamics NAV 2016, you can set up NAS services to run with administrator rights, which grants the NAS service the same permissions as the SUPER permission set without having to add the Microsoft Dynamics NAV Server service account as a user in Microsoft Dynamics NAV. This feature is supported for NAS services in a single tenant (non-multitenant) and multitenant Microsoft Dynamics NAV Server deployment.
For more information, see Configuring NAS Services.
Tenant Configurations Stored in Application Database
In a multitenant Microsoft Dynamics NAV Server deployment, the configuration information about the tenants that are mounted on a Microsoft Dynamics NAV Server instance is now stored in the application database (table dbo.$ndo$tenants) instead of a tenant.config file for the Microsoft Dynamics NAV Server instance.
This change is especially useful in application deployments where multiple Microsoft Dynamics NAV Server instances serve the same tenants. It is now easier to add Microsoft Dynamics NAV Server instances to load-balance or scale an application deployment. Instead of having to mount tenants manually, new server instances will automatically inherit the tenant configurations from the application database and mount tenants automatically. Also, when you want to mount or dismount a tenant, you only have to mount or dismount the tenant on one of the server instances for an application database because other server instances will automatically detect and apply the changes.
For more information, see Multitenant Deployment Architecture.
Loading Application Assemblies When Microsoft Dynamics NAV Server Instances Start
You can configure a Microsoft Dynamics NAV Server instance to compile all the business application assemblies and load them to cache memory when the server instance is started. The assemblies are then retrieved from memory when requested by a Microsoft Dynamics NAV client. This improves the response time after restarting a Microsoft Dynamics NAV Server instance.
For more information, see the Compile and Load Business Application setting in Configuring Microsoft Dynamics NAV Server.
Automatic Company Initialization During Data Upgrade
Previously, when upgrading data from an older version of Microsoft Dynamics NAV to the latest version, you had to manually run codeunit 2 Company Initialization on each company in the database. When upgrading data to Microsoft Dynamics NAV 2016, this task is automatically performed for you by the upgrade process.
For more information, see the Upgrading Data.
Microsoft Dynamics NAV Windows Client Available in 64-Bit Version
On a 64-bit Windows operating system, the Microsoft Dynamics NAV Windows client is available in 64-bit version and 32-bit version. By default, when you install the Microsoft Dynamics NAV Windows client, the 64-bit version is used. The 64-bit version is better when you have to run several large reports. However, there are some components, such as COM, which are not supported on 64-bit applications. Therefore, you can also run the 32-bit version of the Microsoft Dynamics NAV Windows client if it is required. For more information, see Running 32-Bit Microsoft Dynamics Windows Client on 64-Bit Windows.
Multilanguage Captions Compile as Unicode
When you compile application objects, Microsoft Dynamics NAV stores the objects in Unicode encoding. If the application objects contain multilanguage captions, Microsoft Dynamics NAV uses the code pages that are relevant for the languages that you have specified. For more information, see Developing Multilanguage-Enabled Applications.
Changes to C/AL Functions, Data Types, Properties, and Triggers in Microsoft Dynamics NAV 2016
For a list of changes to C/AL functions, data types, properties, and triggers, see Changes in C/AL Behavior and Support from Earlier Versions of Microsoft Dynamics NAV.
Changes to Microsoft Dynamics NAV 2016 Administration Shell and Microsoft Dynamics NAV 2016 Development Shell cmdlets
For a list of new, changed, or removed Windows PowerShell cmdlets, see Changes to Microsoft Dynamics NAV Cmdlets From Previous Release.