Skip to main content
Skip table of contents

Use case: Receive EDIFACT message, and resolve distribution based on UNB segment

Description

In this case we are trying to receive an EDIFACT ORDERS message and have it be processed as a “Sales Order” document by a Distribution (todo: add link to definition of Distribution) we have configured:

Snippet of the EDIFACT payload

CODE
UNA:+.? 'UNB+UNOC:3+TEST-PARTNER-1:ZZ+TEST-PARTNER-2:ZZ+230606:1237+123456+++++EANCOM'UNH+1+ORDERS:D:96A:UN:EAN008'BGM+220:...

How to set up

To achieve this we need to have set up an IdentificationType (todo: insert link to definition of IdentificationType) with a qualifier matching the one used in the payload (in this case ZZ):

The sender & receiver Partner (todo: insert link to definition of Partner) on the Distriburtion (todo: insert link to definition of Distribution) must have an identification value matching the previously mentioned IdentificationType (todo: insert link to definition of IdentificationType) and the value from the payload. In this case TEST-PARTNER-1 and TEST-PARTNER-2. Example:

In order for Link to recognize our payload as a “Sales Order” document, we must configure a DocumentTypeClassifier (todo: insert link to definition of DocumentTypeClassifier). Here we specify the Edifact DocumentTypeClassifierResolver (todo: insert link to definition of DocumentTypeClassifierResolver), and specify that if the message type in the UNH segment matches “ORDERS” the payload is of DocumentType (todo: insert link to definition of DocumentType) “Sales Order“.

The DocumentTypeClassifierResolver (todo: insert link to defintion of DocumentTypeClassifierResolver) specified above should be associated with the ContentTypeGroup (todo: insert link to definition of ContentTypeGroup) “EDIFACT”. This configuration should already be in place in a new installed Link environment.

The FormatType (todo: insert link to definition of FormatType) associated with the ingoing DocumentConfg (todo: insert link to definition of DocumentConfig) of the Distribution (todo: insert link to definition of Distribution) must have the Content-Type “application/EDIFACT“ specified. Also a Disassembler (todo: insert link to definition of Disassembler) must be specified.

When this is configured we can publish a message to Link with an InitConfiguration (todo: insert link to definition of InitConfiguration) with FormatType (todo: insert link to definition of FormatType) set to “Edifact”

This should result in a “Sales Order” Document (todo: insert link to definition of Document):

How this works

Here is a conceptual overview of what happens during this initialization process:

  1. Link updates the content-type of the message, and sets it to “application/EDIFACT” based on the configuration on the ingoing FormatType (todo: insert link to definition of FormatType) (Edifact).

  2. Link resolves the DocumentType (todo: insert link to definition of DocumentType) as “Sales Order” by…

    1. Identifying the DocumentTypeClassifierResolver (todo: insert link to definition of DocumentTypeClassifierResolver) as Edifact based on the message having the content-type “application/EDIFACT”.

    2. Running the configured DocumentTypeClassifiers (todo: insert link to definition of DocumentTypeClassifier) configured with the DocumentTypeClassifierResolver (todo: insert link to definition of DocumentTypeClassifierResolver) Edifact, and finding a match on the configuration made above that is linked to DocumentType (todo: insert link to definition of DocumentType) “Sales Order”.

  3. Link executes the Disassembler (todo: insert link to definition of Disassembler), which translates the message to XML and enriches the messages ContextProperties (todo: insert link to definition of ContextProperties) with ID and qualifier for sender and receiver among other meta-data.

  4. Link resolves the sender Partner (todo: insert link to definition of Partner) as “Test partner #1” based on the meta-data published by the Disassmbler (todo: insert link to definition of Disassembler).

  5. Link resolves the receiver Partner (todo: insert link to definition of Partner) as “Test partner #2” based on the meta-data published by the Disassmbler (todo: insert link to definition of Disassembler).

  6. Link resolves the correct Distribution (todo: insert link to definition of Distribution) based on DocumentType (todo: insert link to definition of DocumentType) “Sales Order”, sender Partner (todo: insert link to definition of Partner) “Test partner #1” and receiver Partner (todo: insert link to definition of Partner) “Test partner #2”.

When the Distribution (todo: insert link to definition of Distribution) have been resolved, the Initialize component can finish by tracking the Document (todo: insert link to definition of Document), setting it’s status to “Processing”, and publishing it for further processing in the Link Itinerary Framework (todo: insert link to definition of Link Itinerary Framework).

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.