Transactions
Dime.Scheduler keeps a trail of all the interactions it initiates with the connected backoffice systems like Business Central, Exchange, and webhook connections. The audit trail is available inside Dime.Scheduler itself.
When Dime.Scheduler successfully posts the data into the connected system, it marks that transaction as successful. What that means exactly will be different for each backoffice system. In the connector for Business Central, a successful transaction means that an item has been posted to the Dime.Scheduler Appointments table, which is then picked up by internal workflows inside Business Central. This is a robust pattern that maximize the resilience of the solution. For other backoffice systems, this proxy may not exist and the processing is done immediately during the request.
When a decoupled solution is deployed (like the staging table approach in BC), a different type of complexity arises. Even though the backoffice acknowledges that the appointment has been received correctly, this doesn't necessarily mean that the connected system has successfully processed the appointment internally. There are many reasons why that might be. For example, in the image below, the assigned resource is missing a 'Unit of Measure' in Business Central:
As a result, the status of this appointment in BC is Error. So even when Dime.Scheduler considers the item to be sent successfully to Business Central, the appointment may not have processed exactly right in the backoffice system.
Luckily, Dime.Scheduler makes it easy to create notifications for appointments so planners are aware of this event:
To summarize, here is how the transaction system is designed in Dime.Scheduler in tandem with Business Central: