Simplanova team wants to thank all attendees of our webinar: How to Upgrade Custom Objects to Extensions?
We have shared our experience on migrating Dynamics NAV solutions to extensions.
The following questions have been explored during the online session:
- Export objects to new syntax – Microsoft tool.
- txt2al (Microsoft Tool: CAL to AL Converter.).
- Custom objects (Tables, Pages, Codeunits, Reports) upgrade.
- Refactor, create package, publish extension.
- How to distribute an Extension File? (Not App Source).
The conversion of standard object modifications are as follows:
- Export standard objects that will be modified, to new syntax:
finsql.exe Command=ExportToNewSyntax, File=”[Path to export]”, Database=”[Database Name]”, ServerName=[Server Name], Filter=”[Filters]“
- Open modified solution and move code modifications to events. Then export modifed object set, to new syntax. ( running the same command).
- Compare these objects and create deltas: Compare-NAVApplicationObject -OriginalPath “[Path to export]” -ModifiedPath “[Path to export]” -ExportToNewSyntax -DeltaPath “[Path to store deltas]”
- Convert deltas to AL: txt2al –source=”[Source Path]” –target=”[Target Path]” –rename –extensionStartId=[Extension start ID]
You can use AL snippets which will help you with that. Type in teventsub and select the provided suggestion:
This will create a template for the event subscriber, then change the parameters to the ones you want.
You cannot add new areas in the page extensions, because they are already predefined. You can just modify it, even if it does not exist in C/AL.
The only way to see the errors, is to run the report.
If you are seeing some errors, that the symbols are missing in VSCODE, then probably you will need to generate a symbol for that objects in C/Side and then download the symbol in VSCODE.
To have a symbol reference added on object in C/SIDE, you need to start finsql.exe each time with the following argument:
finsql.exe generatesymbolreference=yes. (It ensures that symbols will be generated every time there are changes.)
Then compile the object, and download the symbols in the VSCODE.
And if this does not help to resolve your case, you can try one of the following:
- Upload correct license and restart service.
- Ensure that you have the right permissions. (run as administrator).
- Download the correct version of AL language extension.
At the moment, Microsoft is not planning to add dotnet to the Cloud. But there are workarounds for that – you can use Dotnet wrappers, Azure functions, or AL classes.
You can define codeunits and functions of type “Test”. Later on, open “Test Tool” page, and add wanted codeunits.
Then you can run your test by clicking Run on the actions bar, and selecting tests you want to run.