D365 F&O Integration Best Practices, Patterns and Anti-Patterns

Scenario # 3 - propagate information about order confirmations to multiple outbound systems

Customer has the need to propagate information about order confirmations to multiple systems:

  • Immediately notify a department head (via email)
  • Add confirmed order to a SharePoint list.
  • Record the Id of the confirmed order in an external system (SQL DB).

Patterns

Publish-subscribe messaging

  • Standard or custom Business Event, to a Service Bus Topic, 3 subscriptions

  • Use Logic App/Power Automate flows and built-in connectors
    • For sending e-mail notification
    • Inserting into SharePoint list
    • Inserting record into SQL server
  • Create your own Business Event when the integration requirements are right (small and nimble messages, no bulk data, business process driven context). Custom business events are quite straightforward.

  • Consider out of the box tools in Azure to minimize point-to-point integrations and support pub-sub or multiplexing/demultiplexing. Standard connectors are much easier than writing your own client for an API.

  • For pub-sub, consider the consumer with the shortest required latency (e.g. notifications could be needed closer to real-time than the other end-points)

Anti-Patterns

  • DO NOT Use custom code to call all three consumers directly.

  • Build different triggers for the three consumers.

  • Ignore latency requirements in the scenarios (for example, timely notifications).