Skip to main content

Notifications

Dynamics 365 Community / Forums / Finance forum / FnO Business events; w...
Finance forum
Suggested answer

FnO Business events; what is the correct use?

Posted on by 6
Hi all,
 
I am looking at integration patterns for Finance and Operations. I once saw people use business events to trigger external systems to - for example - execute an API call to extract data and load it in an external system. I was just reading the documentation about these business events, and it states:
 
'If your intent is to transfer data to a recipient and, in effect, realize a data export scenario, you don't have a good use case for business events. In fact, the use of business events for data transfer scenarios is a misuse of the business events framework. Such scenarios must continue to use data export mechanisms that are already available in data management.' (Business events developer documentation - Finance & Operations | Dynamics 365 | Microsoft Learn)
 
This - for me - seems that using business events is not the way to go, but what would be? The way I am looking at right now is creating a (python) script that extracts, transforms and loads the data in an external system; but this script has to be executed sometime, for example when data is changed. This could be achieved with business events, but according to the documentation is not the right use case.
 
What are my possibilities? Is my way of thinking correct or do I have to go and use X++ for example, or 'misuse' the business events, or is this an actual correct use, since I am only sending a message to an external system (that extracts the data form FnO)?
 
Thankyou in advance.
  • Suggested answer
    Layan Jwei Profile Picture
    Layan Jwei 3,159 Super User on at
    FnO Business events; what is the correct use?
    Hi Pinjata,

    So are you saying that you are expecting around 20 business events a day to be triggered out of FO? and 20 calls a day to FO to get more data?
    but if you want to do the same for 5 entities, which now means 100 BEs a day in addition to 100 calls to FO a day?
    if yes, then i think it would be still suitable as you are not killing the system alot. But the question now, how much data is going to be returned by odata in each call? if the volume is high like maybe 100K records, then that's not an option as I mentioned before that odata performance is poor. In this case you need another integration method like Batch Data APIs and DMF. Also if it's not required for the data to reach the other system near real time, then you can also consider not using business events.

    You can check this link for other integration methods
    https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/integration-overview

    Thanks,
    Layan Jweihan
    Please mark this answer as "Verified" if it solved your issue. In order to help others who will face a similar issue in the future
  • Pinjata76 Profile Picture
    Pinjata76 6 on at
    FnO Business events; what is the correct use?
    Hi Layan,
     
    Thank you for your answer, this answers most of my questions. However, some questions still occur:
    - Lets say I need (close to) live data for a limited amount of entities. I'd use the business events in the way you described; for simple messages to another system that then asks more data from FnO. Business events for both create and update are configured. On average, 10-20 calls a day will be made to the external system (and using OData to FnO). Would this be suitable?
     
    - If I need the current existing data in the external system as well. Since there are only a few (about 5) entities I need, would it be suitable to 'misuse' OData for this initial write?
     
    - In case above is not the case; am I correct i'd need to use Data Projects?
     
    Thank you again for your answer!
  • Suggested answer
    Layan Jwei Profile Picture
    Layan Jwei 3,159 Super User on at
    FnO Business events; what is the correct use?
    Hi Pinjata,
     
    Business events are used to send notifications to an external system about an event that happened in FO, so the payload should be small otherwise it will slow the system.
     
    So if u want to return alot of data, then yes business events is not an option, as here you need to export the data so you need to look for sth else.
     
    But you can combine both, i mean u can use business events to notify the external system that the customer got created for example (by sending maybe customer account, party number and dataAreaId in the payload), then the other system can call odata or custom service to retrieve more information about the customer. So it's like you are notifying the system to request more data from F&O
     
    Choosing the correct integration methods depends on alot of factors like if u want the data in real time or not, how frequent it will be called and if volume of data is high..etc
     
    For example odata is not good for high volume.
     
    Thanks,
    Layan Jweihan
    Please mark this answer as "Verified" if it solved your issue. In order to help others who will face a similar issue in the future

Helpful resources

Quick Links

Upcoming TechTalk: Copilot Capabilities…

Review the Copilot features that are currently available in Dynamics 365 Finance…

Demystifying Copilot: Service Edition with Sundar Raghavan

Sundar answers more questions about Copilot for Service...

Dynamics 365 Business Central vs Finance and SCM

Take a look at the key differences between Business Central and…

Leaderboard

#1
Andre Arnaud de Calavon Profile Picture

Andre Arnaud de Cal... 283,405 Super User

#2
Martin Dráb Profile Picture

Martin Dráb 223,370 Super User

#3
nmaenpaa Profile Picture

nmaenpaa 101,140

Featured topics

Product updates

Dynamics 365 release plans