Obsoleting Microsoft Dynamics 365 Business Central Events

If you are working on the extension development, then I’m sure that you already have published and subscribed to many events. There are some rules that you should strictly follow around events if your extension is eventually be used by another partner to build their solution on top of yours. 

Business Central has two types of events it’s vital to decide which type of event you want to create. 

Business Events: A business event is a custom event that is raised by the AL code. It defines a formal contract that carries an implicit promise not to change in future releases. It is the expectation that business events are published by solution ISVs, including Microsoft.

Integration Event: An integration event is also a custom event that is raised by AL code, like a business event, except that it does not carry the same promise of not changing, nor does it have the restriction not to expose implementation details. The main purpose of integration events is to enable the integration of other solutions with Dynamics 365 Business Central without having to perform traditional code modifications.

In simple words, a Business Event is a promise made to the outer world that it will not be changed. 

If you have defined below two events in an earlier release of your extension and after a few releases you realize you must change the definition of the event or completely want to remove the event. 

Even though you have made a promise to the outer world, still you have to change the defined business event. 

If you just went ahead and change the event signature or remove the event and deploy the extensions, it will definitely break the other dependent extensions that have subscriber implementation to the event you just changed. 

See the example below, Subscriber in the extension B cannot find the “MyBusinessEvent” event in the extension A anymore. This will break extension B and force partner to rework on their extension B. 

This will definitely question your extension credibility and other partners might look for another more credible extension to use. 

Then don’t you have an option to change this event? The simple answer is NO. 
You should never change the current event signature or remove the published events from your extension. 

BUT if you really want to change it then you should select a path that will not cause issues immediately to the other dependant extensions. Microsoft has introduced a way to handle these type of changes. 

You can obsolete your current business event and create a new business event with a new signature (MyBusinessEvent01)

Extension B will get a warning like below and this gives enough time for the developer of the Extension B to switch the subscriber to new implementation. 

You can give enough time for the other partners and also update your release documents with the breaking changes before you permanently remove the initial implementation of the event. 

Please provide your feedback with a comment. 
Thank you and Regards,
Tharanga Chandrasekara

Click on a star to rate it!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?