Skip to main content
Skip table of contents

Release Notes for Link 2.4

New Feature

TransmissionId for incoming messages

A new type of Duplicate Check

Transmission Id is a new ID which is unique for an interchange (Interchange In and Interchange Out).
It means that for a document going through Link, there will be a Transmission Id for the Ingoing Interchange and a Transmission Id for the Outgoing Interchange.

Transmission Id comes out of a need from AS4.
In the AS4 SOAP Header, there is a Message ID, that is used for duplicate detection for incoming documents. The AS4 Message ID is mapped to Transmission ID for Interchange In.
The Duplicate Detection is implemented in Link. That means that Link will reject an incoming document with a Transmission ID same as a previous incoming document with the same Transmission ID.

Transmission ID versus Interchange ID

Transmission ID and Interchange ID is similar to each other, because they both are related to Interchange. Interchange ID is an Id that is created by Link for each Interchange, one for the Interchange In and one for the Interchange Out. When a document is Resend in Link, it gets new Interchanges Id's, and that is the difference to Transmission ID. When a document is Resend in Link, Transmission ID stays the same.


By pressing the 'Resend' button, you will get different opportunity when resending the message.
About Disasssembling
The step from Interchange In to Message In is called disassembling.
The Interchange Infile is the file that arrived to Link.
If the Interchange In file is a batch file, it will be de-batched in the disassemble step.

Plain resend

If you don't mark any of the options, the Message In will be resend. (Look at the first screen dump to see where Message In is in the flow)

Resend by interchange

If you mark Resend by interchange, and resending the document(s) the flow will start at from the beginning with the disassembling step. If the incoming file is a batch of documents, the batch will be disassembled and all the document will go through Link again. 

Resend bypass doublet check

If you mark Resend bypass doublet check, the duplicate check will not be executed on this message. That means that although there is a duplicate message to the resend message, you will not get a duplicate error.

Resend bypass test marking

If you mark Resend bypass test marking the document will be processed even though it is test marked. E.g. has Edifact a test mark property.

Resend by document log

The name should have been Resend with document log.
If you mark Resend by document log, an extended logging will be done. This log is called Document Log. This feature is mainly for the developer, who is debugging.

Resend generate new transmission Id

If you mark Resend generate new transmission Id, a new Transmission Id will be generated on the outgoing interchange, which might prevent the receiver from detecting duplicates.

Resend related new permissions

  • Tracking_Action_ResendUseDocumentLog
  • Tracking_Action_ResendByPassTestMarking
  • Tracking_Action_ResendByPassDoubletCheck
  • Tracking_Action_ResendGenerateNewTransmissionId
  • Tracking_Action_ResendByInterchange

To see the permissions, go to Settings->Roles, click Edit on a random role and click in the Permissions field:

Link monitor item to a pre-defined time schedule

Being able to differentiate between the severity of errors. (Scenario: Should a given error be handled during work hours or should it be handled immediately).

The problem

Today, the possibility is to either use threshold values or service windows status.
Threshold is not a valid solution, since it is applied all the time.
Service window is not a valid solution because
(A) if the last status from the item is failed, it will stay failed.
(B) Sometimes you might want the monitor item to be executed to notify the stakeholder or execute the action on errors.
Solution would be to on Item Level be able to register whether this is something to react on in normal working hours or 24/7. (Static SLA is good for now, but considerations of possibility to create different SLA like, 24/7, 24/5 etc. should be considered).

Solution Comment:

Reuse Scheduling functionality from Alerts to make it possible to create schedules for SLAs.
Make it possible to choose a SLA schedule for a monitor Item (and not for the group).
When a monitor item is linked to a Schedule (e.g. Normal Working Hours) it should be possible to choose if the Stakeholder notification on the group should still be triggered
The Monitor Xml should include info about if the item is within a time schedule or not (Boolean)
SMS Service should be extended to only send SMS if with a time schedule.

Option of enabling auto refresh on "Chart" page

If you want to use the Link graph page for TV screen, it is nice to have the option of auto refresh.

JSON - New format types

Ingoing JSON file

The EdiPortalReceive Component can now identify a JSON file.
An incoming JSON will be disassembled by the standard Biztalk JSON disassembler.

Outgoing JSON file

An outgoing JSON file will be assembled by the standard Biztalk JSON assembler.

New EHF validation must be implemented

There is a new Schematron validation from EHF.
Our validator is now updated with the new EHF validation.
The changes include combining of 'NOGOV-UBL-xxx.sch' and 'NONAT-UBL-xxx.sch' into 'EHF-UBL-xxx.sch'.
Some new "basic" validation rules have also been added, these rules are identified as 'EHF-TXX-BXXXXX'.
These new validation rules are expected to be updated to trigger error in next release.
A zip file containing the new schematron files can be found here:
Note that the Schematron files are made for XSLT 2.0.

We have improved two Links.
The two links are Ingoing Partner and Outgoing Partner on Tracking Search Details page.
For the two links improved links we are now using our own component<ep-link>, instead of standard <a>.
The improvement, that <ep-link> adds, is that when you are opening a new window by right click on the link, the link has the DataOwnerGuid in the URL, which is needed for a successful new window.

Stream handling of large files

When Link is receiving large files, our implementation can get into trouble.
The problem is when we are loading the whole file into memory and the file is too big for that.
(Loading into memory when you e.g. are using Byte Array(byte[]) and XmlDocument)
A solution is to handle the file in a stream instead of loading the file into memory.
We have therefore listed all the places in our implementation, where we load files into memory to get an overview of where can get into trouble.
We have refactored four important steps/functionalities, where we have replaced the 'in memory'-way of handling files, with 'stream'-way of handling files.
The four steps/functionalities, where we now are using a stream, is

  • Backup Files
  • Read xpath at TrackCdm-itinerary
  • Read xpath macro functionality
  • Check for empty length files

Show additional information in userinterface

Because there is additional information, that wasn't in use, we have added as tooltips different places, like

  • Error-description on Error Handling page
  • Document Type description on Document Type tab, Tracking Search Result page
  • Document Group description on Document Group, Tracking Search Result page
  • Format description on From and To Format, Distribution pages
  • ID Qualifier description on Identification page, Partner page


A new tool, that can analyze different issues, that can be a problem for the Installer.

Bring the BizTalk installation PDF document up-to-date (#280208753)

There is an installation guide in the folder that Octopus creates. These Installation Guide is now updated.

TransmissionId for incoming messages

TransmissionId is a new ID.
There can be TransmissionId for Ingoing Interchange and Outgoing Interchange, but it is optional.
When a Messages comes via AS4, the Message Id from the AS4 SOAP Header, will be the Ingoing Interchange Transmission Id.
There will always be generated a TransmissionId for Outgoing Interchange.
And here comes a thing that makes TransmissionId different from the other IDs. TransmissionId will be the same, when are you resending the messages. Unless you mark the Resend generate new transmission Id -option, when you are resending.
You will see TransmissionId

  • As a search field on Tracking Search (under Advanced Search)
  • On Tracking Search Detail
  • On Resend popup dialog
  • New permission: Tracking_Action_ResendGenerateNewTransmissionId

All adapters will be installed when you do a clean install (A Installer-feature)

The Installer will now install all adapters, so you don't have to install adapters manually.
Adapters that is present:

  • EdiPortal
  • EdiPortalAS2
  • EdiPortalAS4
  • EdiPortalLocalFTP
  • EdiPortalSFtp
  • Passthrough

AS4 - Error Codes

There is now a AS4 specific error-codes for the errors that can occur in AS4.

  • 18000AS4CompressionException A error has occurred while compressing or decompressing
  • 18001AS4EncryptionExceptionThe encryption data has some some missing data. See error text for more detail.
  • 18002AS4MissingCertificateExceptionNo certificate is found
  • 18003AS4SerializeExceptionNo serializer found for response content-type
  • 18004AS4SigningExceptionAS4 Signing Exception
  • 18005AS4PayloadRetrieverExceptionNo interchange out is found
  • 18006AS4PModeExceptionNo PMode found
  • 18007Unknown AS4 unknown transport error
  • 18100Unexpected error receivingUnexpected error has occurred while receiving AS4 message
  • 18101AS4Handler ExceptionAS4Handler Unknown Exception
  • 18102ParsingError An error has occurred while parsing the incoming message
  • 18103ProfileValidationErrorIncoming message failed profile-validation
  • 18104SignalMessageErrorA error occurred in the primary signal message
  • 18105PartnerORDataOwnerMissingNo valid partner or dataowner found for receiver
  • 18106NoAttachment No attachments found for usermessage

Authentication in the Monitor service against the EDI Portal webservice

It has until now, been possible to call the Monitor Service with Anonymous authentication. That is a security problem, that we now have changed.
Anonymous authentication is disabled.
Monitor service now needs to authenticate with a Link user.
There is a permission which is applied both for AD and Link user authentication.
JSON file for monitor install is enhanced, to include Link User and password in case you are not using AD authentication.
On both clean install and upgrade creates a MonitorService Role and a MonitorServiceGroup with that role and a MonitorServiceUser if it is not AD authentication.


Enhancement of the logging framework 2 (#293060192)

The stored procedure Logging.pCleanUpLog is enhanced to do clean up of the three tables tDotNetEntries, tDatabaseEntries and tHeaders.
New ConfigurationKeys:

  • DaysToKeep_LoggingRows_SeverityLevel1_Error
  • DaysToKeep_LoggingRows_SeverityLevel2_Info
  • DaysToKeep_LoggingRows_SeverityLevel4_Audit
  • DaysToKeep_LoggingRows_SeverityLevel8_Debug

If no configuration is set, there is a default behavior.
The default behavior is
SeverityLevel = 8 days, and DaysToKeep = 7 days.

Documentation of Additional Files (#226248078)

We have documented additional files in the Link User Guide and in the Link Developer Guide:


  • BUG - Tracking.pDocuments_GetNextQueuedDocuments: Applock not working as intended
  • BUG - AS4 - Missing payload properties
  • BUG - BiztalkCommonPropertSchemas assembly Order issue in 2.4 beta release
  • BUG - Can't find sender ID
  • BUG - Certificate Start using date should be between valid from and valid to
  • BUG - CSV Partner import fails
  • BUG - Deployment Tool fails when executing CreateNewDocumentType script without specified CDM schema
  • BUG - DocumentTypes dropdown not sorted
  • BUG - Edifact Assemble med custom pipeline with a parameter don't work
  • BUG - EdiPortal.Faildocuments
  • BUG - Edit Errorhandling in Internet Explorer don't show the last 2 Document types correct
  • BUG - Email validation field does not accept capital letters when creating new users in Link
  • BUG - Error when dobbelcliking on MonitorGroup (should do nothing)
  • BUG - Error when trying deleting a Usergroup
  • BUG - fileGuid error when opening InterchangeIn file in Tracking Search Details
  • BUG - Hyphen (minus) not allowed in Email
  • BUG - InControl messages gives error-code 0
  • BUG - Installer- problems - Bulk-Install.log
  • BUG - Issue with monitor framework update
  • BUG - Monitor Item "EdiPortal Documents" should return distribution object across data owners
  • BUG - Monitor Item Status issue
  • BUG - Monitor Status Overview - Initial date formatting
  • BUG - Peppol - Nullpointer exception if no endpoint is found
  • BUG - Performance issue opening a Partner
  • BUG - Please enter valid email address
  • BUG - Possibility to create ID on partner that already exist
  • BUG - Problemer med at oprette/ændre partner på LINK TEST
  • BUG - Setting new identification type = default causes error
  • BUG - Spelling error at Distribution tooltip
  • BUG - SqlJob MonitorPlugin ignores the disable flag on the schedule and job
  • BUG - Stakeholder for Category Default can be set to None (null)
  • BUG - TempTable growing very big because procedure pUpdateLogChanges read too much at a time
  • BUG - Text is not wrapped so it shows on top of labels
  • BUG - The ADCheck utility crashes
  • BUG - The job EdiPortal_CheckForIssues fails
  • BUG - Tracking Search Details, the Created Date is not the same as on Tracking Results?
  • BUG - Validation error of ingoing document should return errorcode 10001 but returns 10003 for error validating outgoing document
  • BUG - When saving Location with multiple environments, validation on none visible tabs is not working
  • BUG - When upgraded, the current user becomes owner of Ediportal SQL jobs
  • BUG - Wrong errorcode from PEPPOL validation (returns 0 instead of actual errorcode)
  • BUG - XML Schema Validation does not work in some cases

JavaScript errors detected

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

If this problem persists, please contact our support.