Document processing concepts
The core functionality in Link is to receive and send documents (data) between different partners/systems. Link supports many different data transport methods (i.e. FTP, SMTP, File transfer, API etc.) and you can use any digital format (i.e. EDIFACT, PEPPOL, cXML, flat files, etc.) in both directions.
![](../__attachments/2478805305/image-20230203-104843.png?inst-v=a204603b-72d2-4d67-b324-401abe447902)
This diagram above illustrates a document exchange using different formats between two business partners.
In Link, one document exchange (or document flow) between two partners is called a distribution - in the diagram, two distributions are shown - one for Orders and one for Invoices.
Link is built to support an integration pattern called Canonical Data Model. This will also be referred to as Common Data Model or in short, CDM.
Canonical Data Model
This integration pattern means that an “in-the-middle” format is introduced for each type of data that is exchanged. A CDM is an XML structure that a developer must create and make available in Link. For each of your document types (i.e. Orders, Invoices, Price catalogues etc.), you need to have one CDM format implemented. The document type will not be visible in Link before this is done.
Learn how to set up new document types in the Link technical guide.
An input document will be mapped to the CDM XML structure and when data has been mapped to the CDM it is used as a basis for mapping to the desired output documents. This is where the user sees the flexibility you get by using the CDM format.
The advantage of the CDM format is in loose coupling and flexibility. An input document format is never mapped directly to an output document format. This results in tremendous robustness - meaning if the input or output formats change, all the other code will still remain intact.
Having an “in-the-middle” format, however, means that the developer must code two mappings: a mapping that maps the input document to the CDM XML structure, and a different mapping that maps the CDM XML to the desired output(s).
![](../__attachments/2478805305/att_8_for_2422898778.png?inst-v=a204603b-72d2-4d67-b324-401abe447902)
Essential terms in relation to setting up distributions
The terms explained in the following are the most essential to understand in relation to setting up new distributions in Link.
Note that all the terms mentioned below (except distributions) should be made ready by developers or other advanced users. Learn more about how to set them up in
the Link technical guide.
Document type
A document type is used to define a business document entity. Some B2B integrations examples are Purchase Invoice, Sales Invoice, Sales Order, Sales Order Response, Transport Instruction - but any type of data entity can be reflected as a Document type in Link.
A developer should create a CDM schema for each document type and then make them available for other users.
Format, variant and version
Later, when setting up a distribution in Link, you must choose the format, variant and version of the outgoing document.
A format is a specific data format for one specific document type.
Note that it is a good idea to name your formats in a way that reflects both the digital standard used and the document type.
E.g. for an Invoice document type, common example formats could be named:
EDIFACT D96A Invoice
PEPPOL Invoice
cXML Invoice
CSV Invoice
Custom XML Invoice
The variant is by default, set to “Standard” ,but new ones can be created - e.g. supporting deviating mappings when business partners have special requirements. In this case, a variant could be created and then named after the specific business partner - e.g. “Contoso”.
The version is by default set to “1.0” and any need to create more is rare. The main use-case for creating a new version is if your team is in a transition period between an integration and moving away from version 1.0 to version 2.0.
Like with the document type, format/variant/versions should be made available to you by your developers/ advanced users. The developer can create a mapping between the CDM and each combination of the three. This will be selectable when creating distributions for the relevant document type.
Document Configuration and itinerary steps
When you have your document types and their associated formats/variant/versions ready, you are almost ready to use them to make distributions.
However, one last thing needs to be in place before you can do this - you must create document configurations.
Remember that a full document flow (a distribution) consists of two mappings:
1) One from the inbound file format to CDM
2) One from CDM to the outbound format
The Document configuration is the entity that associates your document type and format/variant/version with the direction (inbound or outbound). When you create distributions, you must select both an inbound and outbound document configuration. This way, you can flexibly configure mappings to and from CDM on your distributions.
Note that this is not all a document configuration does. On a document configuration, an advanced topic called itinerary steps can also be configured. This is where several other functionalities (including custom functionalities) like validation, disassembling, assembling, batching etc. can be configured.
Setting up document configurations is for advanced users or developers and will not be covered in the User Guide. Read more about how to do this in the Link technical guide.
As a regular user, you should note that the setup of a document configuration can result in more options (fields, drop-downs, check-boxes) for you to make use of when selecting the document configurations for your distributions.
Distribution
The distribution is the actual setup of a document flow of one document type moving from one partner to another.
Hopefully, this chapter has given you an understanding of the basic underlying data entities necessary to have in place before setting up distributions.
Most Link users find that making document configurations reusable is an important goal in their Link-setup. Doing so makes it easy for regular users to set up distributions themselves for similar or near-similar integrations. Read more about this in the Make your integrations reusable chapter.