Tuesday, September 8, 2020
Reading time: 8 minutes
Dynamics 365 Business Central continuously evolves and with each major release comes the long-awaited features. Customizing Business Central through Extensions, eliminates the need to modify the Dynamics 365 Business Central standard code to implement additional functionality and enables the transition to cloud-ready solution. However, the rapid Business Central evolution also brings side effects that Dynamics Partners should be aware of and plan for accordingly. Taking this into account, I’ve created this blog to provide details on the impact of common changes from a technical perspective:
- A Brief Overview of Dynamics 365 Business Central SaaS Benefits
- The Evolution of Dynamics 365 Business Central
- Types of Changes Brought by Dynamics 365 Business Central
- The Frequency and Impact of Dynamics 365 Business Central Changes
- How is your Solution Exposed to the Changes brought by Dynamics 365 Business Central?
One of the main Dynamics 365 Business Central SaaS advantages is accessibility from any device connected to the internet. This increases availability, mobility and synchrony between physical and digital worlds. There is also no need to maintain hardware. Customers can start using the software straight away without making any changes to the infrastructure and without the need to have any contingency plan in place as everything is taken care of by Microsoft.
In addition, users can benefit from seamless integration with the help of Power Platform tools such as Power Automate and Power BI. Besides, there is no need to spend time creating things that are already created and field tested by other customers. Customer implementations can be instantly extendible with one of the 750 AppSource Apps.
The biggest advantage of all is that the customer is always up to date. Dynamics Partner teams don’t have to be knowledgeable in all three generations of the product in order to be able to fully support the customer. It is enough to know just the last few versions of Dynamics 365 Business Central. The customer benefits greatly from more efficient day to day operations as Dynamics 365 Business Central is always up to date with latest functionality.
The benefits of Dynamics 365 Business Central SaaS go hand in hand with the unprecedented speed of product evolution. Looking back at the last two years, we can see the following product changes:
- Web Client has caught up and exceeded the Role Tailored Client (RTC). The setup features of the Web Client rapidly caught up with RTC and eventually exceeded the RTC, which was retired.
- AL language has matured over the last few years to support even the most complex implementation needs.
Even though the evolution of Dynamics 365 Business Central has resulted in numerous benefits, it also happened at the cost of Breaking Changes. Many Dynamics Partners may have heard that if the solution is moved to an Extension, it is safe from changes brought by the new releases of Dynamics 365 Business Central. However, this is only partially true. The exposure to changes is drastically reduced by developing your solution as an Extension. There are quite a few examples of changes that have affected solutions whether they were implemented as an Extension or not.
Picture 1: An overview of Dynamics 365 Business Central major changes per version.
For example, in Dynamics 365 Business Central version 14, we witnessed the elimination of Codeunit 1, the methods of which were spread among multiple other Codeunits. It was not a big change as it resulted in only a few hours of adjustment work in order to adapt to the change. But overall, it required the additional attention and effort of most Dynamics Partners.
The bigger change in Dynamics 365 Business Central version 14 was the field expansion. At the beginning, it didn’t seem significant as most of the description fields had already been expanded. But as customers started to enter the longer names it became apparent that their solutions were dependent on standard applications which were not adjusted to support the new field length. This change didn’t break the solutions but resulted in Run Time Errors for most of the Customers.
Further on, in Dynamics 365 Business Central version 15, the C/AL and RTC Client were discontinued. This was a significant change. On top of that, the System App was introduced. And altogether there was a lot of restructuring and refactoring happening in the core functions of Business Central, such as the total reimplementation of BLOB handling.
There were fewer changes in Dynamics 365 Business Central version 16. One of them was the Proxy App. Initially, the Proxy App was introduced in one of the minor releases of Business Central version 15 but required the dependent Apps to be changed and recompiled. In addition, in Business Central version 16, most of the standard Option fields were changed to Enums. Even though this was not a Breaking Change, in the Compiler we now get a warning that assigning an Option value to Enum data type will be discontinued in a future Business Central release. This gives us some time to adapt and encourages everyone to get ready for a change that’s coming in the future.
The upcoming Dynamics 365 Business Central version 17 update will be rolled out from October 2020 to March 2021. It is predicted to include “With” statement discontinuation and the change of pricing functionality that Partners will have to reimplement with Interfaces. Therefore, even though the old methods will be supported for a while, eventually the changes will make the current implementations obsolete compelling all Dynamics Partners to adapt.
In future Dynamics 365 Business Central releases, plans are being made to implement localizations as Extensions. It might take some time as it requires the collection of all the redundant functionality implemented by different localizations, then moving it to the Base App and then making the Base App extensible enough to support the requirements of localizations. Given this, I anticipate a lot of restructuring in the future. Additionally, there is a plan to split the Base App into multiple modules as Apps so that the separate modules can be replaced by the Dynamics Partner solutions. This also requires a lot of refactoring and may require a lot of restructuring changes in the future.
As we look back on the Dynamics 365 Business Central evolution over the recent years, it becomes obvious that Business Central SaaS upgrades are required. The good news is that they will be simpler and lighter. The bad news is that they will be more frequent and mandatory.
The Dynamics 365 Business Central changes that affect solution customizations, whether they are Extensions or not, can be summarized into the following categories:
- Platform Changes: For example, the transition from C/AL to AL, from RTC to Web Client. The platform changes are significant and are not likely to happen any time in the very near future. Instead, we can expect smaller platform changes, such as changes from an Option to Enum, and the retiring of the With statement. With the evolution of the product, the smaller platform changes are expected to happen from time to time.
- Restructuring of the Business Central Application: This occurs when the resource you are referring to is moved from one place to another. For example, the latest restructuring change in Dynamics 365 Business Central version 16 is moving assisted Status Setup from the assisted Setup Table to Assisted Code Management Unit. These are small changes and are easily reimplemented but require additional development effort with each major Business Central release. As per Business Central upgrade plans, the restructuring will continue to happen for a while.
- The Change of Signatures: This refers to changes in parameter names, types or the number of parameters. If your solution uses or refers to these methods and the variables change - it won’t compile. The Signatures of standard methods are not likely to change in the very near future, but Event Publishers are also implemented as methods. Event Publishers are the only means to impact the behavior of the Business Central standard application. Therefore, Microsoft has substantial number of new Event Publisher or adding additional parameters to the existing Event Publishers which automatically changes the Signature of Event Publishers. This change will instantly cause the application to break therefore additional effort will be needed to fix it.
- Obsolete Property: This occurs when Microsoft needs to do destructive changes to evolve the functionality of Dynamics 365 Business Central. It would be difficult for the Dynamics Partners to adapt if Microsoft removed certain functionality and required Dynamics Partners to adjust ASAP through the upcoming release. Therefore, to provide advanced notification, Microsoft added the additional two properties to all Object types that are called Obsolete State and Obsolete Description. Destructive changes are introduced in two stages which are reflected by the Obsolete state property. The first state is Pending. The Pending Obsolete state gives developers a warning that the resource still works but will be discontinued in the later Business Central release. Developers are notified by the warning message in the Compiler. Obsolete State is now available for various Object types, such as Pages, Codeunits, Reports and even individual methods of the Codeunits. It is a good way to deal with Breaking Data Schema changes and warn dependent solutions about the Breaking Changes that are coming.
- Data Schema Changes: For example, removing Fields or changing Field type, removing the Table or Key, adding an additional field in the primary Key. Some of Data schema changes are not noticed by the Compiler but end up causing Run Time Errors.
As Dynamics 365 Business Central evolves, Microsoft may introduce new Breaking Changes, such as a transition from C/AL to AL, which are significant and impossible not to notice. In addition, you may expect a lot of Silent Changes along the way, such as the previously mentioned Field Expansion. These changes also affect the dependent solutions but are sneakier and more difficult to notice as they result only in Runtime errors.
A solution’s exposure to changes is proportionate to the number of dependencies on other Extensions. The solution may depend upon multiple types of Extensions, such as Dynamics 365 Business Central Platform, System App, Base App and Third-party App. Hereinafter we review the changes in each of them.
Picture 2: Dynamics 365 Business Central solution dependencies.
All solutions run on the Dynamics 365 Business Central platform. Therefore, the changes in the platform are inevitable. The good thing is that platform changes are not frequent, and Microsoft announces them well in advance.
The System App encapsulates the core functionality and is used by most of the solutions. In the System App, Microsoft has already restructured the code in the core functionality, therefore, we shouldn’t expect a lot of Breaking Changes coming from this layer in the very near future.
On the contrary, the Base Application is going to be granularized, adapted for better extensibility, and localizations will become Extensions in the future. Therefore, we should expect a lot of Obsolete, restructuring changes of Signatures. These changes will affect all the solutions that reference the standard functionality of Business Central.
Those customer implementations which depend on Third-party Applications, such as AppSource Apps, face an additional risk regarding changes. Microsoft has a policy to introduce Breaking Changes within one year’s notice. In addition, there is a policy of introducing changes in Table structures or Signatures only in major releases, and never in minor releases. However, there is no guarantee that Third-party Applications is going to follow these policies even though it is highly recommended. Due to this, all solutions that depend on Third-party Apps, can get a Breaking Change with any upcoming update of a Third-party App.
Even though most Dynamics 365 Business Central changes are inevitable, there are effective ways to cope with them. To find out more, stay tuned for our next blog post, where I reveal the second part of the coin from the business perspective, or listen to the webinar on this topic here. You can also visit our website and find out how we can help Dynamics Partners to maintain solutions in Dynamics 365 Business Central SaaS.
Learn more about Extension Maintenance