NAV Development Preview – October Update

Welcome to another update for the Developer Preview, the October update. As usual, we’ve fixed a lot of issues reported by you, for more information view the list of fixed issues, In addition to that we’re announcing the following changes.

To get an updated image jump directly to the Azure Gallery signup at http://aka.ms/navdeveloperpreview.

Web client add-ins
It is now possible to develop JavaScript control add-ins in AL. The new AL type controladdin serves both as a replacement for the old XML manifest as well as an interface for bidirectional JavaScript-to-AL communication. The following sample implements a control add-in in 42 lines of code:

Dictionary and List

This update also adds two new, highly requested AL types: List and Dictionary. For the first time in AL, you will be able to work with strongly typed lists and dictionaries.
At the moment, these types can only be used with simple types i.e. you can have a List of [Integer], but not a ‘List of [Blob]’. The list of supported types is fairly long, but the main point is that if you can use it as the return type of a procedure, you can use it in a list.

ForEach is back

We’ve added support for iterating over expressions of enumerable types in AL using the foreach statement. At the moment, you can use the foreach statement to iterate over expressions of type List, XmlNodeList, XmlAttributeCollection and JsonArray.

New translation syntax

We’ve added support for the new Label syntax which will prepare you for using the new translation process which decouples translation from development. You will be able to specify a default translation in code with some attributes and then in the next update, we’ll provide you with generating a standard format translation file which is widely supported for translating. When the translation file comes back translated,  you package it with the extension and you have a multilanguage extension!
We encourage you to start transitioning to this new syntax so that when we update the compiler to have the generation you’re ready. You cannot use Caption and CaptionML at the same time (the same goes for the rest of the cases). The syntax is as follows:

Installation and Upgrade

When you want to convert from Extensions V1 to Extensions V2, you must first convert the source code using the Txt2Al tool. Then you must complete any development to adhere to the AL syntax. When your code is ready, then you need to write upgrade code to restore and modify the data from Extension V1 tables and then build your Extension V2. The next step is to uninstall the Extension V1. Finally, you must publish the Extension V2 and run the upgrade. For more information, see the documentation here: Converting Extensions V1 to Extensions V2, Upgrading Extensions V2, and How to: Publish and Install an Extension V2.

Designer

The Designer is now only available on on-prem or developer sandboxes with the Dynamics 365 Extension Mgt (Role ID: D365 EXTENSION MGT) permission enabled. If the permission is not enabled, you will not be able to use the Designer.

News on the Azure VM

  • After Azure deployment says succeeded, open the landing page in a browser and wait for the installation to complete (press view installation status to monitor).
  • When connecting to the Remote Desktop, you will find a shortcut to the navcontainerhelper, which contains a number of cmdlets which makes working with Nav Containers easier (documentation pending).
  • If you need to sign extensions you need to run Get-NavSipCryptoProvider and install VS2017 Community edition (c:\demo\install-VS2017Community) before you can use signtool inside the Azure VM.
  • You can create C/SIDE Development Containers using NavContainerHelper and use Convert-ModifiedObjectsToAl to convert modified objects in a container to AL.

As usual we encourage you to let us know how you like working with these additions and keep submitting suggestions and bugs. You can see all the filed bugs on our GitHub issues list (https://github.com/Microsoft/AL/issues). To get an updated image jump directly to the Azure Gallery signup at http://aka.ms/navdeveloperpreview.

For a list of our previous blog posts, see the links at the end of this post.

/NAV

Our earlier blog posts:

NAV Development Tools Preview – September Update

NAV Development Tools Preview – August Update

NAV Development Tools Preview – July Update

NAV Development Tools Preview – June Update

NAV Development Tools Preview – April Update

NAV Development Tools Preview – March Update

NAV Development Tools Preview – February Update

NAV Development Tools Preview – January Update

Announcing the Preview of Modern Development Tools for Dynamics NAV