Today we are going to talk about one of the latest and most expected features that Microsoft Dynamics 365 for Finance and Operations has included at the technical level: Business Events.
What are Business Events?
Looking at official Microsoft docs, Business Events provide a mechanism that allow external systems to receive notifications from MSDyn365FO. In this way, the systems can perform business actions in response to the business events.
Business Events appeared in March 2019 as Private Preview within the Platform update 24, and they were released as GA in May 2019 within the Platform update 26, including improvements in the framework like the idempotence property in business events, or the no need of having an specific batch job running to execute them. Now the service has a number of threads dedicated to them, so they are processed in near real time.
Type of Business Events
Currently there are three different type of Business Events: Application business events, Workflow business events and Alerts business events.
- Business events based on alerts allow us to send notifications to external systems based on the out of the box MSDyn365FO alerts.
- Business events based on workflows allow us to interact with the workflow framework and to be able to receive notifications when a workflow item is assigned to us or be able to approve a workflow item.
- Finally we have application business events. Thanks to these events, we are able to perform actions in external applications based on MSDyn365FO business actions, such as reacting to an invoice posting, to a sales order confirmation, among others.
I know that Microsoft is working on, or at least thinking about new triggers to these business events, for example to click in a form button.
Business Events catalog
Microsoft provides us out of the box a list of predefined business events that are ready to be consumed. In order to take a look to these business events we can go to the Business events catalog through System administration > Setup > Business events > Business events catalog
Here we find the list of business events sorted by category, a brief description and the fields that are sent when the event occurs. In this screen we can also manage the business events that are actives or inactives and we can manage the errors thrown during the execution of these business events.
In order to be able to consume business events from external applications, we have to define the destination or endpoints where their information is going to be sent. Currently, #MSDyn365FO supports the creation of the following endpoints out of the box. (The list has increased considerably since the very first preview). Azure Service Bus Queue
- Azure Service Bus Queue
- Azure Service Bus Topic
- Azure Event Grid
- Azure Event Hub
- Azure Blob Storage
Thanks to these endpoints we are able to trigger a flow from Microsoft
Flow Power Automate when a free text invoice is posted, and to write the invoice data in an external application.
As you can imagine, we can conclude that, thanks to business events, we have now a lot of new possibilities to communicate with third-party applications and make some kind of integrations in a really easy way.
Obviously, we have the responsibility to design and decide in a proper way the use we do of them. For example, it’s quite clear that sending notifications of certain actions to external apps would be a good use of business events. However, it wouldn’t be correct to use them as a data export mechanism as we have other tools optimized for these tasks.
In coming posts, we will see other aspects of business events, such how to activate and consume them using different types of endpoints and how to develop our own business events.