Corfu Navision 2016, Information

Changes in C/AL Behaviour C/AL Statements in Nav 2016

The following table lists the summary of new, removed, or changed C/AL statements in Microsoft Dynamics NAV 2016.

Will come with more details in my later posts.

Statement Description
FOREACH New statement.

Iterate through a .NET Framework collection or array.

BREAK New statement.

Terminates the iteration statement in which it used.

Important

If your solution has used FOREACH or BREAK as names of variables in earlier versions of Microsoft Dynamics NAV, you must change the names before you upgrade to Microsoft Dynamics NAV 2016.

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.

Advertisement
Corfu Navision 2016, Information

Changes in C/AL Behaviour C/AL Properties in Nav 2016

The following table lists the summary of new, removed, or changed properties in Microsoft Dynamics NAV 2016.

Will come with more details in my later posts.

Function Description
Event Property New property.

Used for events. Specifies whether a function is a publisher of or subscriber to an event.

EventFunction Property New property.

Used for events. Specifies the event publisher function that an event subscriber function subscribes to.

EventPublisherObject Property New property.

Used for events. Specifies the object that contains the event publisher function that an event subscriber function subscribes to.

EventSubscriberInstance Property New property.

Specifies how event subscriber functions in a codeunit are bound to codeunit instance and events that they subscribe to.

EventType Property New property.

Used for events. Specifies whether an event is a business or integration event.

GlobalVarAccess Property New property.

Used for events. Specifies whether global variables in an event publisher object can be accessed from event subscriber functions.

IncludeSender Property New property.

Used for events. Specifies whether global functions in an event publisher object can be called from event subscriber functions.

Namespaces Property New property.

Specifies one or more namespaces on an XMLport object.

NamespacePrefix Property New property.

Specifies a namespace prefix on an element of an XMLport object.

OnMissingLicense Property New property.

Specifies what happens to the event subscriber function call when the license of the Microsoft Dynamics NAV user account that is running the current session does not include the codeunit that contains the subscriber function.

OnMissingPermission Property New property.

Specifies what happens to the subscriber function call when the Microsoft Dynamics NAV user account that is running the current session does not have permission to the codeunit that contains the subscriber function.

EventPublisherElement Property New property.

Used for events. Specifies the table field that the trigger event pertains to.

Scope Property New property.

Specifies the scope of actions to be either Repeater or Page.

SQL Timestamp Property New property.

Specifies a field to be a timestamp field that contains row version numbers for records.

TableType Property Specifies whether the table is a normal or external (CRM or ExternalSQL) table.
TryFunction Property New property.

Specifies the function to be try function, which can be used to catch and handle errors and exceptions that occur when code is run.

FunctionType Property (Upgrade Codeunits) Changed property.

Instead of the Upgrade option, there are now two options: UpgradePerCustomer and UpgradePerDatabase. The UpgradePerCustomer option behaves like the Upgrade option in the previous Microsoft Dynamics NAV version.

FunctionType Property (Test Codeunits) Changed property.

Includes the FilterPageHandler and HyperlinkHandler options.

Corfu Navision 2016, Information

Changes in C/AL Behaviour C/AL Functions in Nav 2016

The following table lists the summary of new, removed, or changed functions in Microsoft Dynamics NAV 2016.

Will come with more details in my later posts.

Function Description
ADDFIELD Function New function.

Adds a table field to the filter control for a table on filter page.

ADDFIELDNO Function New function.

Adds a table field to the filter control for a table as specified by the field number.

ADDRECORD Function New function.

Adds a filter control for a table to a filter page as specified by a record data type variable.

ADDRECORDREF Function New function.

Adds filter control for a table to a filter page as specified by a RecordRef variable.

ADDTABLE Function New function.

Adds filter control for a table to a filter page.

BINDSUBSCRIPTION Function New function.

Binds event subscribers to the subscriber codeunit instance for handling events.

UNBINDSUBSCRIPTION New function.

Unbinds event subscribers from the subscriber codeunit instance for handling events.

COUNT Function (FilterPageBuilder) New function.

Gets the number of filter controls that are specified in the FilterPageBuilder object instance.

CREATEENCRYPTIONKEY Changed function.

Includes a Boolean return value. The value is true if an encryption key is created successfully; otherwise, it is false.

CURRENTCLIENTTYPE Function New function.

Gets the Microsoft Dynamics NAV client type that is running on the current session.

CURRENTCOMPANY Function (Record) New function.

Gets the current company of a database table record.

CURRENTCOMPANY Function (RecordRef) New function.

Gets the current company of a database table that is referred to by a RecordRef.

DEFAULTCLIENTTYPE Function New function.

Gets the default Microsoft Dynamics NAV client type that is configured for the Microsoft Dynamics NAV Server instance that is used for the current session.

GETASCENDING Function (Record) Gets the sort order for the records returned, such as in data from an ODATA web service.
GETURL Function Changed function. Includes the following changes:

  • Accepts CURRENTCLIENTTYPE and DEFAULTCLIENTTYPE as ClientType parameter.
  • Supports RecordRef variable data type as a parameter to specify the record to open.
  • Includes a Boolean parameter to include filters that are setup on the object in URL.
GETVIEW function (FilterPageBuilder) New function.

Gets the filter view (which defines the sort order, key, and filters) for the record in the specified filter control of a filter page.

IMPORTENCRYPTIONKEY Changed function.

Includes a Boolean return value. The value is true if an encryption key is imported successfully; otherwise, it is false.

ISFILTERPAGEBUILDER Function (Variant) New function.

Indicates whether a C/AL variant contains a FilterPageBuilder variable.

ISTEMPORARY Function (Record) New function.

Determines whether a record refers to a temporary table.

NAME Function (FilterPageBuilder) New function.

Gets the name of a table filter control that is included on a filter page based on an index number that is assigned to the filter control.

RECORDID (Record) New function.

Gets the RecordID of the record that is currently selected in the table.

RUNMODAL Function (FilterPageBuilder) New function.

Builds and runs the filter page.

SETASCENDING Function (Record) Sets the sort order for the records returned, such as in data from a ODATA web service.
SETVIEW Function New function.

Sets the current filter view, which defines the sort order, key, and filters, for a record in a filter control on a filter page.

GETDEFAULTTABLECONNECTION Function (Database), HASTABLECONNECTION Function (Database), REGISTERTABLECONNECTION Function (Database), SETDEFAULTTABLECONNECTION Function (Database), and UNREGISTERTABLECONNECTION Function (Database) New functions. Registers, sets, gets, and unregister table connections to external tables.
Corfu Navision 2016, What's New

What’s New: Developer Changes for Microsoft Dynamics NAV 2016

NAV2016
Below are the details of 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.

Will come up with detail later in my future posts.

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.

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 behaviour 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.

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.

  • 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.
  • 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.

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.

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

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.

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.

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.

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

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.

Column Layout on Role Centers

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.

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.

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.

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.

Tooltips on Microsoft Dynamics NAV Web client

The ToolTip Property and the ToolTipML Property have been added on ActivityButtons and ActionContainers of the subtype HomeItems to support displaying descriptions in the navigation pane.

Microsoft Dynamics CRM Integration

Microsoft Dynamics NAV 2016 introduces a new and improved integration with Microsoft Dynamics CRM.

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.

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.

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.

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.

Automatic Deployment of Add-ins From the Database

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.

Running NAS Services with Administrator Rights

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.

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.

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.

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.

Automatic Company Initialization during Data Upgrade

When upgrading data to Microsoft Dynamics NAV 2016, this task is automatically performed for you by the upgrade process.

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.

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.

Corfu Navision 2016, What's New

What’s New: Application Changes for Microsoft Dynamics NAV 2016

NAV2016
Below are the 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.

Will come up with detail later in my future posts.

The following features and functionality for application users have been introduced since Microsoft Dynamics NAV 2015.

Workflow

You can set up and use workflows that connect business-process tasks performed by different users. System tasks, such as automatic posting, can be included as steps in workflows, preceded or followed by user tasks. Requesting and granting approval to create new records are typical workflow steps.

Imp Note

The Document Approvals feature that existed in the previous version of Microsoft Dynamics NAV is removed. The standard approvals scenarios that were supported in the previous version are now supported as workflows for sales approvals and purchase approvals respectively.

The upgrade tool will recreate document approval data in previous versions as workflow data in Microsoft Dynamics NAV 2016.

Electronic Documents

As an alternative to e-mailing as file attachments, you can send and receive business documents electronically.

From PDF or image files representing incoming documents, you can have an external OCR service (Optical Character Recognition) create electronic documents that you can then convert to document records in Microsoft Dynamics NAV, like for electronic PEPPOL documents.

For example, when you receive an invoice in PDF format from your vendor, you can send it to the OCR service from the Incoming Documents window. After a few seconds, you receive the file back as an electronic invoice that can be converted to a purchase invoice for the vendor.

If you send the file to the OCR service by e-mail, then a new incoming document record is automatically created when you receive the electronic document back.

Incoming Documents

In the Incoming Documents window, you use different functions to review information, manage OCR tasks, and convert incoming documents to the relevant purchase and sales documents or journal lines in Microsoft Dynamics NAV.

The external files can be attached to their related document in Microsoft Dynamics NAV at any process stage, including to posted documents and to the resulting vendor, customer, or general ledger entries.

Document Sending Profiles

You can set each customer up with a preferred method of sending sales documents, so that you do not have to select a sending option every time that you choose the Post and Send button.

In the Document Sending Profile window for a sending profile, you can select the Default check box to specify that the document sending profile is the default profile for all customers, except for customers where the Document Sending Profile field is filled with another sending profile.

Posting Preview

On every document and journal that can be posted, you can choose the Preview Posting button to review the different types of entries that will be created when you post the document or journal.

Deferrals

Revenues for services or goods delivered over multiple accounting periods are not necessarily recognized in the accounting period in which the sales document is posted and payment is received. To distribute revenues on the involved accounting periods, you can set up a deferral template for the resource, item, or G/L account that the revenues will be posted for. When you post the related sales document, the revenues are deferred to the involved accounting periods, according to a deferral schedule that is governed by settings in the deferral template and the posting date.

Microsoft Dynamics CRM Integration

Microsoft Dynamics NAV 2016 introduces a new and improved integration with Microsoft Dynamics CRM.

Hiding/Showing Columns on Microsoft Dynamics NAV Web client and Microsoft Dynamics NAV Tablet client

With Microsoft Dynamics NAV it is possible to hide and show columns on the Microsoft Dynamics NAV Web client and Microsoft Dynamics NAV Tablet client, in the same way as on the Microsoft Dynamics NAV Windows client.

Freeze Pane

Microsoft Dynamics NAV now supports freeze panes on the Microsoft Dynamics NAV Web client and the Microsoft Dynamics NAV Tablet client.

Improvements on Lookups in the Microsoft Dynamics NAV Web client

With this release the Microsoft Dynamics NAV Web client offers an inline lookup experience on fields as well as the ability to do cross column search as you type in the lookup and selecting data in the lookup using the keyboard.

Microsoft Social Engagement

Microsoft Dynamics NAV integrates with Microsoft Social Engagement and can be made available on customers, vendors, and items.

Cross Column Search on the Microsoft Dynamics NAV Web client

In Microsoft Dynamics NAV Web client it is now possible to search across columns in a list. This search is activated by choosing the Search icon, and entering the search criteria. The search offers filter-as-you-type functionality, and will look for records that contain the search criteria. Symbols can also be used in the search criteria, and the search criteria are then interpreted exactly as you entered it.

Navigation Pane and Cues

Previously the navigation pane contained list places that were auto generated based on the available cues in the Role Center. These list places no longer get auto generated by default. Only if there is a relevant entity in the navigation pane, a list place will be created.

Entering Dates in the Microsoft Dynamics NAV Web client

In Microsoft Dynamics NAV Web client and Microsoft Dynamics NAV Tablet client you can now use the date lookup functionality on lists instead of typing dates in manually.

Control Add-ins on Microsoft Dynamics NAV Phone client

On Microsoft Dynamics NAV Phone client you tap on control add-ins to zoom

Selecting Company, Language, Region, Time Zone and Work Date in Mobile Clients

With the new My Settings page, it is now possible to dynamically switch the UI language, region, time zone, company, and work date of the Microsoft Dynamics NAV Web client, Microsoft Dynamics NAV Tablet client, and Microsoft Dynamics NAV Phone client.

Multiple Selection of Lines in Microsoft Dynamics NAV Web client

You select multiple lines in the Microsoft Dynamics NAV Web client by activating the context menu on a line, and then choosing Select More. When you choose Select More, a checkbox for selecting all rows is placed right above all the rows.

Updating and Testing Multiple Custom Report Layouts

Instead of updating custom report layouts to dataset changes one layout at a time, you can now perform an update of all custom layouts at once.

You also have the option to test updates without applying the required changes to the custom report layouts. This enables you to see what changes will be applied to the report layout and identify possible issues in the process.