3.0.8790.22039
Release notes
Release date: January 31, 2024.
Release version: 3.0.8790.22039
New features
Alerts
It is now possible to contruct alert emails with formatted text (not only plain text).
Document type configuration
It is no longer possible to associate a document type with a xsd schema for CDM. If the message needs to be validated at the CDM stage, the solution is to unclude an itinerary step that does so.
Document retention
It is now possible to specify how long to keep documents and information related to documents. There are configurable default thresholds as well as possibility to deviate from the default thresholds on a document type level.
Monitor
Improved performance when opening a monitor item.
Ingoing control
A new Ingoing Control plugin has been added, that can can be configured to update statuses based on an xml file.
For Ingoing Control plugins that identifies messages based on globally unique identifiers (DocumentGuid, InterchangeGuid, TransmissionId), the requirement that sender and receiver should match sender and receiver of the original message (in the reverse order) is removed.
HTTP Steps (both transport and itinerarys step)
It is now possible to bypass certificate validation (which is not recommended but can be necessary when communicating with sites using self-signed certificates).
Test tool
It is now possible to add documents to a test-case where the expected test output is taken from an additional backup file associated with the interchange/documents. This is a feature that is utilized in migration scenarios where the expected output file is provided when posting the message to Link (Inbox).
Public API
It is now possible to deploy artifacts (both assembly and xml artifacts) throug Links API.
Async tracking
A framwork within Link for tracking message flows, that are not processed in Links runtime engine. This are operations to track documents and related files and statuses in a fire & forget patterne for optimal performance and throughput.
HTTP handlers
When a http handler is registered the actual full endpoint for that handler is given, so that it can be copied and given to whomever should call it.
AS4 outbound
HTTP header user-agent is added when sending AS4 messages. This is added since this results in firewall rejections for various service providers.
Better handling of system shutdowns
Some interfaces for Link plugins where missing a CancellationToken in their primary invokation methods. For these plugin there has come a new version of the interface (the old will be obsolete at some point). So now that all plugins get a Cancellation token we are in a position to make shutdowns go faster, since whatever process i currently in action can get notified when a shutdown is taking place.
Fixed bugs:
SFTP Polling locations
Default timeouts have been added as unresponsible SFTP Server could cause the connection to stall.
Import of Errorcodes showed a wrong display of :undefined
This has now been fixed so it just says new
Import of partner fails with exception when id exsit on another partner
Now give a nice error message
Create Format type/Format/Variant/Variant Version gives excpetion when allready exist
Now gives nice error
Import of XSLT with include/import gives error
It is now possible
Format Type - Grid keep data of deleted record
Will now update and reflect change
Possibility to update artifact with dependecy dll that is placed under wrong category
Fixed so it is checked on update that the new dll still belongs to same interface
Tracking field creation groups not showing
When creating a new tracking field the groups will not show a newly created group unless you click back and edit. This is now fixed so new groups are added right away.
My profile - could be saved with blank in name
Not possible anymore
Data groups of type partners - show a partner multible times
When adding and removing a proxy partner the partner will be shown twice in the list. This is now solved.
Format types - show log - reset removed lines
If you click show log and it shows some lines, and you without filtering log click “reset search” it should show the same lines. This has been fixed.
Changing document type on a Document Config might cause strange issues if that is already in use. It has now been locked so it is no longer possible to change document type after a document configuration has been created.
Event host crashed if it is not possible to send mail to stakeholder
Import compare fails when bandwith to low to get result
Now wait for result
XmlDisassembler puts namespace on all elements
Now it dont change anything
Improvements to the JSON disassembler and assembler
Both the disassembler and the assembler now handle xml attributes in the same way.
The disassembled xml now contains metadata (xml attributes) that reflect non-string data types. The assembler is able to interpret the same attributes when assembling to JSON.
Settings grid behave strangely
When you group white space apear. Has now been fixed
Batched documents failing in send caused exception
Now send can handle batched documents
Changing error handling stakeholder did not clear cache
SFTP Monitor - Invalid cast exception
Resuse of idenfification value on another parter that was deleted did not work
Error while resending interchange in Inbox state
Change encoding fail in case of small xml document with xml declaration
ControlIn handling did not create exception instance but only failed the document
Mail template macroes not resolved is now output as blank. By mistake the name of the macro was written.
Edifact Assembler - overwrite UNB6_1 and UNB6_2 now works no matter how they are set on partner
Saved seach below tracking didn’t work until you refreshed
Document number macro on inbound location did not work
Partner import could result in nullreference exception
Breaking changes:
In this release several old classes/interfaces have been removed or changed - see the list below. We have analyzed existing solutions and have concluded that no Link 3 instances will be affected by the changes.
However, we always recommend testing any custom-built artifacts with new releases prior to performing an upgrade.
JSON disassembler improvements
The Json disassembler has been improved with some features that might break existing schema validations because of the attributes.
Our recommendation is not to validate the direct output of the disassembler, but instead map the output to a new defined format, that reflects the business rules (or map it to the CDM and validate that).
Package: Bizbrains.Link.Base.Implementations
Removed classes/interfaces
Removed class: Bizbrains.Link.Base.Implementations.MessageProperties.PropertyContainers.ItineraryStepsDistributionJsonConfigs
Package: Bizbrains.Link.Repositories
Changed classes/interfaces
Class: Bizbrains.Link.Repositories.Transaction.Tracking.Entities.TrackingSearcher
Removed property: String XmlTrackingFields
Interface: Bizbrains.Link.Repositories.Configuration.User.IRoleRepository
Obsolete: Task<RoleEntity> Save(RoleEntity roleEntity, IEnumerable<Int32> permissionIds) (will be removed in future versions)
Interface: Bizbrains.Link.Repositories.Configuration.User.IUserGroupRepository
Obsolete: Task<UserGroupEntity> Save(UserGroupEntity userGroup, IEnumerable<Int32> roleIds, IEnumerable<Int32> dataGroupIds) (will be removed in future versions)
Package: Bizbrains.Link.Services
Changed classes/interfaces
Class: Bizbrains.Link.Services.Configuration.Transport.Models.TransportAndConfig`1
Removed property: TransportConfigEntityBase TransportConfig
Removed property: TransportTypeEntity TransportType
Interface: Bizbrains.Link.Services.Configuration.Partner.IDataAccessService
Obsolete: Task<IEnumerable<DataAccessRestrictionItem>> GetDocumentTypeIdsUserHasAccessTo() (will be removed in future versions)
Interface: Bizbrains.Link.Services.Configuration.Partner.IPartnerService
Obsolete: Task<Int64> GetNextPartnerSequenceNumber(Int32 partnerId) (will be removed in future versions)
Obsolete: Task<Int64> GetPartnerOutSequenceNumber(ILinkPropertyBag linkPropertyBag) (will be removed in future versions)
Obsolete: Task<Int64> GetPartnerInSequenceNumber(ILinkPropertyBag linkPropertyBag) (will be removed in future versions)
Interface: Bizbrains.Link.Services.Smtp.ISmtpService
Obsolete: Task Send(String from, String recipients, String subject, String body, Boolean isBodyHtml, CancellationToken cancellationToken) (will be removed in future versions)
Obsolete: Task Send(MailMessage message, CancellationToken cancellationToken) (will be removed in future versions)
Interface: Bizbrains.Link.Services.Smtp.IStakeholderMailService
Obsolete: Task Send(Int32 stakeholderId, String templateKey, IDictionary<String, String> macros, Boolean isUrgent) (will be removed in future versions)
Obsolete: Task Send(Int32 stakeholderId, String subject, String body, IDictionary<String, String> macros, Boolean isUrgent) (will be removed in future versions)
Interface: Bizbrains.Link.Services.Smtp.ITemplateSmtpService
Obsolete: Task Send(String templateKey, IDictionary<String, String> macros, String from, IEnumerable<String> to, IEnumerable<String> cc, IEnumerable<String> bcc, MailPriority priority) (will be removed in future versions)
Obsolete: Task Send(String subject, String body, IDictionary<String, String> macros, String from, IEnumerable<String> to, IEnumerable<String> cc, IEnumerable<String> bcc, MailPriority priority) (will be removed in future versions)
Interface: Bizbrains.Link.Services.Tools.TestTool.ITestToolService
Removed method: Task AddDocumentsToTestCase(Int32 testCaseId, IEnumerable<Int64> documentIds, Boolean includeInterchange)
Interface: Bizbrains.Link.Services.Configuration.Transport.ITransportService
Removed method: Task<TransportAndConfig<T>> GenerateTransportImplementation(TransportConfigEntityBase transportConfig)
Removed method: Task<TransportOutConfigurationEntity> GetTransportOutConfiguration(ILinkMessage linkMessage)