Skip to main content

Introduction

External Integration is a free, open-source X++ framework for building reliable and easy-to-support integrations in Microsoft Dynamics 365 Finance and Operations (D365FO). It provides one repeatable model for designing, processing, testing, and operating inbound and outbound integrations.

The idea behind the framework

The framework is inspired by the standard RunBaseBatch framework. Like RunBaseBatch, External Integration supplies the common infrastructure while the developer implements only the business-specific logic.

It applies no restrictions on what an integration does. The framework supplies the parts every integration needs — connections, message logs, staging, statuses, error handling, and monitoring — so the developer does not have to implement the same functions for every new integration.

Everything runs inside D365FO: no external components, services, or middleware to install or operate.

Code-first and easy to test

Each integration is represented by an X++ class containing its business logic. This makes the implementation visible, testable, and easy to move between environments with the rest of the code.

Any integration can be run in a test mode by uploading a file or entering the message text manually. A developer can therefore reproduce a problem in a development environment without connecting to the external system.

The provided samples are based on real production integrations and follow consistent patterns. Developers and AI coding assistants can use them as templates for new integration classes.

How integrations are structured

Each integration combines four building blocks:

  1. Message type — defines the direction, timing, and business logic. Choose an Inbound, Outbound Event-based, Outbound Periodic, or Service-based template.
  2. Connector — defines how the systems communicate, for example through Azure Service Bus, SFTP, Azure File Share, a REST API, AI (LLM), or manual upload. See Connectors.
  3. File format — defines how the message content is represented, for example as CSV, Excel, XML, JSON, or PDF. See File formats.
  4. Operations and logs — provide manual testing, monitoring, error handling, reprocessing, and performance statistics.

Full traceability

At the centre of the design is a message. Every inbound file, queue item, or API response becomes a record in the Incoming messages table. Outbound documents are tracked in the same way through export logs.

The framework keeps the original content, processing status, staging data, errors, and created D365FO document together. A support engineer can inspect, download, reprocess, or cancel a message directly from the D365FO user interface.

Where to go next

Where to get it

The framework is distributed as the DEVExternalIntegration model (plus DEVExternalIntegrationSamples with ready-to-run examples) in the TrudAX/XppTools GitHub repository.