Request a Demo

How ExDoc connects your supply chain

ExDoc acts as the intelligent bridge between Business Central and your warehouse — every message audited, every step automated.

Architecture

The integration architecture at a glance

All messages travel through a secure, auditable message queue — outbound orders heading to the warehouse, inbound confirmations flowing back to update BC automatically.

Message status lifecycle

New
Processing
Processed
Failed
Superseded

Failed messages can be retried or manually resolved. Superseded messages are replaced by newer versions of the same document.

Outbound Flow

Orders out to your warehouse

Sales Order Export

1

Trigger

A sales order is released in Business Central. The Release event fires immediately — no polling, no delay.

2

Eligibility check

ExDoc checks whether the order's location is 3PL-designated and whether it has already been sent to the queue.

3

Map

The mapping engine selects the correct template (e.g. ILG_SO_V1.0) and transforms BC order data into the required JSON or CSV format.

4

Queue

The payload is written to the Message Queue with status New. A Sent to Queue flag is set on the sales order to prevent re-export.

5

Dispatch

Azure Data Factory polls the REST API endpoint, collects the message, and delivers it to your 3PL warehouse. The queue entry is updated to Processed.

Transfer Order (ASN) Export

1

Trigger

A warehouse shipment is posted against a transfer order in BC. ExDoc listens to the Transfer Shipment posting event.

2

Location filter

Only transfer orders for configured 3PL-receiving locations are exported. Multiple locations can be configured independently.

3

Map to ASN

The mapping engine builds an Advanced Shipping Notice including item details, quantities, lot/batch numbers, and serial tracking.

4

Queue & Dispatch

The ASN is queued and collected by Azure Data Factory, giving the receiving warehouse advance notice of incoming stock.

Inbound Flow

Confirmations back into Business Central

Despatch Confirmation

1

Receive

Your 3PL warehouse sends a despatch confirmation via SOAP web service when a customer order ships. ExDoc receives it on the ABCMessageMgmtSOAP endpoint.

2

Deduplicate

A SHA-256 hash of the inbound message is compared against previously received messages. Duplicates are silently rejected and logged.

3

Extract & Stage

The message is parsed and each line is stored in a staging table with status New, ready for resolution.

4

Resolve

The resolver matches each confirmation line to the correct BC Sales Order and validates quantities against outstanding shipment lines.

5

Post

A Sales Shipment (and optionally a Sales Invoice) is automatically posted in BC. Inventory is reduced and tracking numbers are recorded.

Receipt Confirmation

1

Receive

When transferred inventory arrives at the 3PL warehouse, the warehouse sends a receipt confirmation via SOAP. ExDoc receives and deduplicates it.

2

Extract & Stage

Message lines are parsed and staged. Each line includes item number, quantity, lot number, and expiry date.

3

Resolve & Validate

Each line is matched to the correct BC Transfer Order. Quantity capping prevents over-receiving beyond the original transfer line.

4

Post

A Transfer Receipt is automatically posted. Bin assignment uses a three-tier fallback: Despatch Bin → Item Default → Any Available.

5

Notify on error

Any processing failures trigger an immediate email alert to configured recipients with full order context and per-line error detail.

Mapping Engine

How the mapping engine works

The template-driven mapping engine is what makes ExDoc provider-agnostic. Templates define exactly how BC data maps to your 3PL's format — without writing a single line of AL code.

Template anatomy

Template ID
ILG_SO_V1.0
Output format
JSON or CSV
Location filter

Applied per location code — so you can have different templates for different warehouses.

Field mapping rows

Each row maps a BC field to a 3PL field name, with an optional transform function and max-length validation.

Built-in transforms

DateFormat

Converts BC dates to the format your 3PL requires, e.g. YYYYMMDD or DD/MM/YYYY.

Split

Splits a field value on a delimiter and returns a specified segment — useful for compound field codes.

Default

Returns a fixed literal value when the source field is blank — avoids empty fields in the output payload.

Uppercase

Forces a field value to upper case — common for reference fields in 3PL systems.

Templates can be exported from one BC environment and imported into another — making UAT-to-Production migration a single step.

See it working with your warehouse

Book a demo and we'll demonstrate the full end-to-end flow using your 3PL provider's message formats and your Business Central data.