Simplanova team wants to thank all attendees of our webinar: What are Extensions and How to Start Upgrading NAV Add-on to Extensions?
We have shared our experience on migrating Dynamics NAV solutions to extensions.
The following questions have been explored during the online session:
- Preparation- what is needed to begin moving your solution to extension.
- Environment: installing and linking.
- Symbols: what are symbols, generating symbols.
- Syntax: AL & VSC method of programming. Some examples.
- Move modifications to events.
Regarding organization of your solution, we suggest moving each type of object, to separate folder. For the object and file naming, you can follow Microsoft guidelines here.
You don’t need a license to create an extension.
We recommend to start from the training of your team. Simplanova offers Dynamics NAV Extension Workshop adjusted according to individual partner requirements, professional experience and skills. You can find more information here.
In order to see new or modified objects, you can download symbols again from the VSCODE. Unless your C/SIDE is not configured to generate symbols when there are changes, then you will not be able to see it.
To download symbols of extensions that are installed in the server, you have to create dependency in your extension, to depend on already installed one. For example, if I want to get symbols of already installed PayPal Payments Standard extension, I will go to “Extension Management” page, and I will view the desired extension.
In your extension you need to create a dependency, by providing the following information:
There are no recommendations for documentation during development. We would suggest to add a comment before modification, which will explain what it does.
If you are creating new objects in visual studio code, or modifying base objects, you will see the modifications only within range of your extension, or if you set a dependency if it was modified in another extension.
You can only add .NET libraries to AL project if you are developing for a non-cloud version. And in order to do that, you can define dotnet object, in AL language, and specify all assemblies with their names in this object.
In order to upgrade an extension, which was published before, you will need to have it’s source code. If it is an extension, that you were building previously, then there is no problem, you can do modifications and publish it again. Your older version of extension will be overridden. If it is an extension, that you do not own, you will have to ask for the source code of that extension.
The main reasons of having problems when downloading symbols are:
- Incorrect configuration of launch.json file.
- No License/incorrect license was uploaded on the server.
- User does not have enough permissions. You can try running VSCODE as an administrator.
- Symbol generation and Developer service endpoint are not enabled in the Dynamics NAV Administration App.
- Service was not restarted after service tier modifications.
- NetFx40_LegacySecurityPolicy needs to be set to false.
No, at the moment this is not possible.
This is set by your AL language extension in VSCODE. In most cases you will have to change this setting.
Microsoft is likely to add event, if the interest of that event is beyond the scope of your app. Microsoft is unlikely to add an event, if this functionality is very particular to you.
The layout is created or modified with the same tools as you used to create before (report builder/Visual studio). Except, when modifying the logical part of the report in AL language, it does not create links for controls, in RDLC layout, so you will have to add it manually.
When developing in VSCODE, intellisense should provide you with the properties that are possible to modify. In order to use intellisense press Ctrl + Space.
Yes. You can not declare records of type File, if you have set your target as “Extensions” (Cloud).
You can not extend existing code units, but you can change the properties if it is a new code unit. The only extendable types are: pages and tables.
If we are defining variables inside of an trigger, procedure or an actions, it is going to be a local variable.