Integration Suite

Key features

Endpoints

Endpoints can be defined to exchange data, messages or files. An endpoint can be defined as receive data or sending data.

Azure Key vault

All connection strings, usernames and passwords are all stored as secrets in Azure Key Vault for added security. The Integration Suite uses the standard key vault integration but have made it global.

Integration framework

A framework that will help your organization implement integrations. From simple import jobs that need to be run once a day (currency exchange rates) to complex processes like procurement.

System Integration in general

System integration involves combining different subsystems or components into a single, cohesive system that functions as one. System integration can be tough for organizations and can reduce the benefits of new software solutions. General challenges include:

  • Lack of trust and data sharing
  • Reluctance to outsource operations to 3rd party
  • Poor communication and unclear responsibilities
  • Disagreements on functionality placement
  • High integration costs
  • Difficulty finding skilled talent to maintain the integration
  • Data silos
  • Lack of common API standards

These issues create barriers that slow down integration within and between companies. Clear communication and easy information exchange are crucial for successful long-term integrations that meet business needs.

Microsoft Dynamics 365 for Finance and Supply Chain Management

The Integration Suite was created to utilize structured data contracts and defined services to handle integrations in a robust and scalable way. Integration is achieved through various Endpoints to send or receive data and files.

Key concepts

By understanding the concepts, organizations can effectively manage data flow between D365F&O and other systems, ensuring seamless operations and data consistency. Several different transportation methods for data and file transfer are implemented in the Integration Suite.


Transportation methods

  • Azure Service Bus, Queue or Topic.
  • SFTP/FTP.
  • Azure file share.
  • Azure Data Lake.
  • API (Application Programming Interfaces).

Azure Service Bus

Using a service bus as middleware in integrations offers several advantages, especially in complex systems like D365F&O. Dedicated queues or topics for each service and direction, ensuring efficient data handling and also decoupling the dependencies between systems. This provides a robust solution for real-time data processing and system integration, ensuring that businesses can operate efficiently and respond quickly to changes.

Either an endpoint of type Queue or a Topic is defined for each service and direction. I.e. if the customer service is enabled and set up, we define an endpoint for receiving customer data and one for sending customer data. This can be done for one instance (all companies) or based on a Company group (subset of companies). Meaning several endpoints for the same service and direction could exists for different legal entities (companies) or countries.

Sending messages

When a C(R)UD (Create, Update or Delete) operation is performed on a record in D365F&O, a send event is created for the particular record. A batch job handles all the events and sends a  message from D365F&O to the endpoints (Queues or Topics).

Receiving data

The task of fetching data is performed by a batch job. All messages are received from each of the endpoints and imported to the correct entity in D365F&O. All messages are removed from the Azure Service bus as soon as they are read. Each service executes the standard (and custom) D365F&O business logic, when creating, updating or deleting a record.

Benefits with using Azure Service Bus

Loose coupling

Decouple the systems involved in the integration, meaning that changes in one system do not directly impact the other. This makes it easier to update, maintain, and scale each system independently.

Flexibility

New systems can be added or removed without significant changes to the existing integration architecture.

Reliability

Use message queues to ensure that messages are delivered even if one of the systems is temporarily unavailable. This increases the reliability of the integration.

Scalability

Can handle a large volume of messages, making it easier to scale the integration as the business grows.

Asynchronous

Systems can send messages and continue their operations without waiting for a response. This improves the overall performance and responsiveness of the systems.

Batch Processing

Messages can be processed in batches, which is useful for handling large datasets efficiently.

Event-Driven

Enables event-driven architectures, where systems can react to events in real-time. This is particularly useful for scenarios like real-time data synchronization and notifications.

Event Handling

Events can be published to multiple subscribers, allowing for more flexible and dynamic integrations.

Enhanced security

Provide built-in security features such as encryption and authentication, ensuring that data is securely transmitted between systems.

Fine-grained access control can be implemented to restrict who can send or receive messages. 

Monitoring and Management

Centralized monitoring and management tools, making it easier to track the flow of messages and diagnose issues.

Advanced error handling mechanisms can be implemented to manage failed messages and retries.

Consistent Interfaces and standardizes the way systems communicate, reducing the complexity of the integration.

Various communication protocols (e.g., HTTP, AMQP), making it easier to integrate with different systems.

Cost Efficiency

Developers can leverage existing infrastructure and tools, reducing the time and effort required to build custom integration solutions.

Improved reliability and scalability lead to lower operational costs over time.

In summary, using Azure Service Bus as middleware in integrations provides a robust, scalable, and secure way to manage data exchange between systems, enhancing overall system performance and flexibility.