Blog |

Technical Code Changes in Microsoft Dynamics 365 Business Central 2023 Release Wave 2

Tuesday, November 14, 2023
Reading time: 10 minutes

October 1st was the official release day of Microsoft Dynamics 365 Business Central 2023 Wave 2 (version 23). You can review the list of new and planned functionality and the list of functionality that has been moved, removed, or replaced by Microsoft. Along with newly introduced and changed functionalities, a lot of code changes have been made, which I will review in this blog post. These include:

Developer experience

In the new Business Central release (v.23) a lot of changes have been made to the visibility of details while you are coding. We now have ‘inlay hints’ in the source editor where you can find more information about parameters and return types of functions. That’s something that you need to enable in the settings of your Visual Studio Code as it’s not enabled by default.

As you see in the screenshot below, if you hover over a label in the code, it will now show the text string value. In the past, you could only see the name, but now you can also see the actual text that will be shown.

In the new release, there are some improvements in IntelliSense, and when you type a few letters, the application will know what you are hinting at:

In Business Central Visual Studio Code, there are two settings that control the folders and an extra setting that defines where your app file is placed when you do a build of your project. From now on, you can set an output folder for app files of project build that is not automatically at the root of your projects. In addition, you can set the default folder location for new AL projects and by default, it will go to that folder to create a new app.

If you are using AL in Azure DevOps, you can install an app there for AL syntax highlighting and see better what’s in your code. It will colorize the functions the same as in Visual Studio Code, so you can more easily read the code that is being changed by the developer.

If you’re using AL-Go for GitHub, and build a release there, it will include the build metadata in the JSON file. It’s not used anywhere yet, but if you open your app file and look into the manifest, you will find out on which version of your app this specific app was being built.

For Business Central 2023 Release Wave 2, there are two new tools in preview:

In-client experience

In Business Central 2023 Release Wave 2, there are two ways to open Visual Studio Code from the web client. Sometimes when your user is having an issue, it may be difficult to find the correct place as a developer, however, from now on, you can resolve this by starting Visual Studio Code from the web client.

In the new release, all the media fields in the app support rich text editing. In the earlier Business Central versions, only the email body used rich text editing where you could have bold and italic and other types of text. From now on, it is available for all media fields.

In the previous Business Central versions, the data analysis was available in the preview on all the list pages, which doesn’t make sense for some list pages. From now on, developers can turn it off for specific pages. In addition to this, an administrator can turn it off for a specific user, so you can have users who cannot do data analysis. Also, it will support queries now, but as a developer, you must enable data analysis for your query to be able to use it.

If you are using the performance profiler or the snapshot profiler, there is now a choice of three time intervals at which data is gathered. Therefore, you have more choice in how to find the correct data that you are profiling.

In addition to this, in version 23.1, worksheet pages will become available on mobile phones in the mobile phone app. Until now they were not useable on mobile phones. A lot of Business Central developers have been making changes to their app to not use worksheet pages, so now would be a good time to review this and maybe redesign your app to use worksheet pages again.

AL language

One of the most important changes in the AL language is that you can now have a preview version of the AL.vsix from the Visual Studio Code marketplace and that’s mainly when a new major version is coming out. Then, you can switch to the pre-release version before the new version is actually available in Business Central itself. So as a Business Central developer, you can also use the new commands before they are in production.

The other change is we can add fields to a field group of an existing table. Field groups are used for the dropdown menus. If you select a field, you get a nice little list that shows your data. You can now add fields to that – even if there isn’t one, it will be created automatically. If multiple apps create a field group in the same place, they will be merged. Microsoft AppSource apps will come first, and then per-tenant-extensions (PTEs) will add data.

In Business Central 2023 Release Wave 2, there is a new variable type called SecretText. In many cases where you have a secret, such as a password for a user or a key that you need to access an external function, the only option to keep it secret previously was to make the entire function non-debuggable. This is an issuebecause in many cases you want to debug these kinds of scenarios because that’s where the problems occur.

Microsoft introduced a SecretText variable so that your function can be debuggable while at the same time keeping the secrets secret. The new data type SecretText will work in the app with some changes, but you will not be able to see the actual value that you are debugging, which is a huge improvement.

Also, a new change being introduced is namespaces. In namespaces, you define a ‘space’ where identifiers that you create in your app are added to that namespace. Microsoft already introduced this change for the base app. Now, if you use namespaces and reference something from the base app, you need to specify from which namespace you are accessing your objects. For example, it would enable us to have multiple instances of the customer table. You can have your own version of the customer table and you can have another app with a table called “customer”, and the base app can have a table called “customer”. Based on the namespace, the application will be able to find out which one to use at which moment. Even though I don’t think it’s a good idea to create a new customer table, you can do something like that and not worry about using a name that a different app has also created, if you specify namespaces. Namespaces do not remove the requirement to use Prefixes or Suffixes.

Since the Business Central 2023 Release Wave 2, you can scan barcodes with the Business Central mobile app for iOS and Android. There are 3 ways to set the scanning:

The other change in the new Business Central release is actions in validation error messages.

As you can see in the screenshot above, “reject approval” is an action that you can click on. This feature was available in error messages before, and from now on it is in validation errors as well. As a developer, you can specify which action you want to add to that box, and you can react to that when the user clicks it.

Performance

Performance is always important and one of the things that changed in Business Central 2023 Release Wave 2 is the way that tables are stored in the SQL database on the cloud platform. The number of joins that the SQL Server needs to do to get data from more than one app has decreased. From now on, the fields from several apps will be placed inside the same table in SQL Server, and the SQL Server only needs to join the base table and an extension table, resulting in speed improvement. This requires no changes for you as a developer, it is implemented completely in the back-end.

In addition, specific processes have been redesigned to optimize speed:

If you have any customization in one of these processes, you should check if it’s still working in the new Business Central version, or you can get in touch with Companial and we will help you with extension maintenance.

In the Business Central 2023 Release Wave 2, there’s faster loading of pages in the browser, especially the navigation bar and action bar for all pages.

Also new is that service-to-service apps, and device license users can now schedule tasks. If an interface sends data to your application, it can start an asynchronous processing of the data that it sends. So, it will be able to get a response quickly while the data is slowly being processed by a separate process which is very useful for response times and for performance in general.

Another change in the database level is that the locking behavior has been changed in AL from SerializedRead to ReadCommitted. This means that a different type of data handling is done on the SQL Server. If you rely on how data is processed with multiple users at the same time, then you should test if it still works for you and if you need to change something there.

In the next quarter, the operational limits for web services and scheduled tasks for web requests will change. You will be able to handle a lot more service requests at the same time. For example, if it was 4-5 tasks at the same time, in many cases that will change to five tasks per user which is a huge difference.

Power Platform & Dataverse

In the previous Business Central releases, after 100 changes in the Power Platform and Dataverse records,  synchronization started and decreased performance of Power Platform Power Apps. In the new Business Central 2023 Release Wave 2, that threshold is increased to 2000.

Business events are now available in the Business Central Connector. With extra workflow action, you can get a list of Business Central companies that are available in the environments that you are linked to as a Power App. You can loop through that by creating an action that will be available for all companies or for selected companies.

In Business Central 2023 Release Wave 2, you can enable specific virtual tables from Business Central to be available in Microsoft Power Apps. In addition, you get more control over how Power BI embedded content is viewed. You can now start the embedded view and show full screen or have more control over what the user sees in your view.

In the new Business Central release, the place where you create flows has been consolidated and you can now have better control over what is going on where.

Finally, the Dataverse connection has been improved. Now you can have multiple Business Central companies synchronizing with one Dataverse environment.

Microsoft AppSource

Since the Business Central 2023 Release Wave 2, a transactability option became available on Microsoft AppSource. Due to this change, developers now need to know how to handle entitlements, which is the license that you provide for your users when they buy the app on AppSource.

In addition to this, from November 2023, ISV publishers will be able to preview their AppSource apps with a select number of customers. For example, you can publish your app having two customers who do extensive testing and publish the app to the general public only when the testing is successful.

Migrate to Microsoft Dynamics 365 Business Central 2023 Release Wave 2 with Companial’s free assessment tool

If you’d like to find out more about the technical, functional, and administrative platform enhancements of the latest Dynamics 365 Business Central release, and see the live demo, watch the webinar on this topic here. If you are interested in migrating your solution to Microsoft Dynamics 365 Business Central, register for the Upgrade Analyzer demo and find out how to estimate Microsoft Dynamics NAV/Business Central upgrades and choose the best migration path for your solution.

Jan Veenendaal
Mehr über Business Central