Introduction
The interface framework provides an layer on top of web requests to allow communication between Dynamics 365 and external software.
This abstraction takes care of
- Sending and receiving data
- Serializing and deserializing the contents of messages
- Error handling
- Logging
- Retrying failed messages
- Various performance options such as parallel processing, batch processing, synchronous/asynchronous processing, ...
The interface framework can be used for both inbound and outbound messages.
Process flow
The interface framework is centered around staging tables. These staging tables represent the datamodel of the interface.
Inbound messages
In the case of inbound messages, the JSON data that has been received will be deserialized and inserted in to the staging tables. Once the data is inside the staging tables, these tables will undergo processing. During this processing, the contents of the message are persisted in the systems business data.
Examples of processing are
- Creating customers
- Posting invoices
- Updating the status of an order
- ...
Outbound messages
In the case of outbound messages, the goal is to send a certain JSON message to a third party software. This JSON message will be constructed from data that is in the staging tables. An outgoing message will always be initialized by inserting data from the business data model in to the staging table data model. Once the data is inside the staging tables, these tables will get serialized to JSON and sent towards external software.
Development scope
Implementing new interface messages in the framework requires development.
The scope of this development is limited to
- Creating staging tables
- Creating the processing classes to either persist these staging tabels (inbound flow), or to create data in these staging tables (outbound flow).
All other handling such as parsing, web requests, error logging, tracing, ... is handled by the framework.