Unifi 4.1 Release Notes
Release date: 17 November, 2023
Release date: 17 November, 2023
The portal interfaces have been upgraded to include our latest branding and a fresh experience that makes building and managing integrations faster and easier than ever.
We are excited to introduce Integration Templates.
Marking an integration as a template makes it easier to identify the integrations you want to start from or reuse. They also provide the mechanism for us to ship standard templates with the application.
With the version 4.1 release, some basic templates are included and more templates will be added in future.
We've improved the way that Datasets operate and interact with Import Sets and Transactions.
Dataset Request are now fully linked for the end-to-end process which makes it easier for you to see and understand the import/export states.
A Connections can now be marked with a direction: Inbound, Outbound, or Bidirectional. An inbound user is only necessary for Outbound or Bidirectional connections.
In rare cases where the attachment referenced by a Bonded Attachment record is deleted or cannot be found, the AttachmentSender will now mark the Bonded Attachment as Failed with a status of "Attachment cannot be found".
Documentation links have been updated to reflect the latest folder structure used in the docs website.
There should only ever be one active bond for a specific document and integration. Occasionally (usually during development) duplicate bonds can be created. A new integration diagnostic has been added to checks for this and make it easy to find and fix.
The field(s) used for coalesce are now configurable from the embedded Field list when viewing a Dataset Process Message in Designer, rather than only from the Field form.
In normal operation, the bond for a Dataset is created when it becomes active. However, migrating an integration with an active Dataset does not migrate the Bond which can lead to issues with failed imports and exports. A new integration diagnostic has been added to check if a bond exists for each Dataset with an option to quickly fix the issue if necessary.
In the past, it has been possible for Fields to reference built-in Field Maps which ship with the application. This is not recommended. A new integration diagnostic has been added to check for fields which use field maps in the ShareLogic Unifi scope and provide an easy way to copy them into the integration, removing reliance on ShareLogic field maps.
Updated the integration documentation feature so it includes Datasets.
Prior to this release, adding an attachment to a record would only create a Bonded Attachment if the record it belonged to was specified by the process. This behaviour has now been modified so attachments will work properly with multi-table processes such Request/Request Task.
Updated message script generation in the Build process so outbound message scripts are only generated for outbound/bidirectional messages and inbound message scripts are only generated for inbound/bidirectional messages.
Added new "Configure in Unifi" related links to Scheduled Scripts, Datasets and Message Scripts.
Prior to this update, an inbound request would pick a random connection if there was more than one active connection with the same inbound user for the same process. Since this behaviour is not supported, this update prevents the inbound request from being processed and notifies the sender with an error response.
Added a button to the "Create Test" progress worker to "Open in Test Assistant" once the test has finished being generated.
To help prevent the snapshot table from growing excessively large, snapshot records which do not relate to at least one integration message will no longer be inserted.
Added a form link to the Bond record which navigates the user to the integration test list for that integration.
Changed integration test warnings into notices to make them look less like a failure and more informational.
Up until now, ShareLogic and Unifi have been separate entities, company and product. We are now taking the step to simplify things, making our company synonymous with our product. This update introduces brand new ShareLogic theming, a refreshed interface, and sees our product, Unifi, renamed to ShareLogic Unifi.
Dataset processing summaries are now automatically added to the stage "Summary" property when the inbound dataset request is created, or when the outbound send message is sent.
Designer will now detect if Xplore is installed and provide shortcut methods to forms and lists.
A new Retry button has been added to the Connection Test interface to make it easier to re-run the connection test.
Added a new field to integration which tracks the application version the integration was last built with. This field is not currently visible anywhere.
Developers can now get the attachment content in the Stage to Request script to put attachment data directly into the payload to be sent. This is useful when only the content of an attachment needs to be sent rather than the attachment itself.
Updated the Dataset export buttons to be “Export Delta”, “Export Full”, and “Export Test”. The export type is now set on the Dataset in the Type field (Delta, Full, or Test). Test exports will only export a maximum of 20 rows (regardless of the max rows value on the Dataset) which in turn will allow full debug logs in Activity Log.
Added new links to the Dataset form view in Designer to make it easier to get to related records.
Bond will open the Bond record form view for the Dataset.
Requests will open the Dataset Requests list view for requests generated by the Dataset.
Import History will open the Transform Histories list view for imports managed by the Dataset.
Viewing an inbound Dataset Request which is in the Processing state will now automatically check to see if there has been an error on the import and will set the state to Error.
Also, a new button “Find inbound errors” has been added to the Dataset Request list to make it easy to find all requests with inbound processing errors.
Dataset Requests responsible for importing are now immediately updated with the import error when the import fails.
Added a new button “Format Payloads” to the HTTP Request form view which toggles formatting for XML and JSON request and response payloads, making them easier to read when checking for values.
Improved the inbound REST processing:
Low level processing errors now respect the accept header and content type.
Sending a message with content type text/plain will now work instead of being rejected.
Inbound payloads are now stored even if the request fails, making them easier to identify and debug.
Fixed the error shown when an invalid process is chosen in the Scripted REST API.
A new action called “Show bonds” has been added to the main dropdown menu in Designer which will open a new list view for all the bonds belonging to the integration.
Added a new info message to Datasets which shows when the query start time is reset because the query condition changed: "The dataset query has changed so the next export will include all records."
A new Cancelled state has been added to Dataset Request in addition to a Cancel button which is shown on outbound requests when the state is Ready, Queued, or Processing.
Updated Designer so the integration name is shown first in the browser title, making it easier for developers using multiple tabs to see where they are.
An integration can now be marked as a template making it easier to identify the integrations you want to start from or reuse.
Response actions now have access to the “query” and “headers” objects which gives direct access to inbound request query parameters and header values.
Dataset exports will now be skipped if the integration is not found or is not active or if the Dataset is not active.
Updated the integration test runner so integration tests are executed as the original user that generated the transaction. This ensures that the test follows the same process path during testing as it did originally.
Updated the default list size in Designer to be 50 items.
Key fields such as path and property are now shown in the Field list on a Message.
File names and references are now decoded in the attachment REST resource template providing support for encoded character values. Note: this only affects new processes with existing processes requiring a manual update if necessary.
To help prevent upgrade issues, built-in field maps are no longer selectable when configuring a field.
Updated the integration documentation feature so it includes Event Actions.
We've switched the system properties interface back to use the original system_properties_ui.do interface. This better supports temporary app scope switching so users don't need to manually change to the ShareLogic Unifi app scope.
Fixed an issue where messages with the same name but different directions, or where one is inactive, do not always work as expected.
Fixed an issue that prevented an error message from being displayed when viewing a field that is technically inherited but does not actually inherit from a valid field.
Fixed an issue with test data substitution when running an integration test.
Copying a connection in Designer will now keep you in Designer.
Queued transactions are now only processed during integration resume operation when the previous transaction was complete.
Prior to this update, errors occurring in payload to stage processing would not fail the inbound request. A backwards compatible fix has been added which allows integrations developed before version 4.1 to opt into having these errors be recognised and treated as a 500 error. Existing integrations can enable this behaviour by turning on the "Fix inbound errors" flag on the integration list (this field is not available on forms). New integrations created with 4.1 or above will use this behaviour by default.
Fixed an issue where scheduled scripts belonging to integrations would not be captured by the integration packager.
Fixed the Ignore button on Datasets so it is available in the Error state.
Fixed an issue with the initial loading of the Insights dashboard widget.
Fixed a bug that would prevent the integration delete operation from working when initiated from Designer.
Fixed a reference issue preventing this diagnostic from working properly.
Fixed an incorrect info message which directed the user to enable a system property for import logging instead of the "Import logging" flag on the Dataset.
Fixed a bug causing the template field on Message to be displayed with Javascript formatting instead of XML.
Fixed a bug which would reset the template field when saving a Message in Designer.
Updated integration test logic to ignore new fields on the process table (e.g. Incident) which were not present when the test was created.
Fixed an issue with rendering the Message template in Designer.
Fixed guest transaction replay logic by preventing the system from trying to find a guest user to impersonate.
Fixed the REST resource query logic so only the process related resources are shown when viewing the Connections list in Designer.
With the ServiceNow Tokyo release it has been possible for an inbound create to take so long to process (due to customer process and instance load) that another message trying to lookup the bond will not find it and trigger another create message causing two bonds to be inserted. This has been fixed by committing the bond before attempting to commit the target during inbound create operations.
This issue was caused by a self-closing directive tag and was fixed with UN-1270.
Fixed a browser/content-type compatibility issue which caused directives included with a self-closing XHTML tag to not render (e.g. full page scripts in Designer form views).
Fixed the Poller Execute Now button in Designer so Pollers are executed as the specified user (providing global utility is installed).
Updated the diagnostic that checks hotfix version to compare at the patch level. Also improved the diagnostic error comment.
Added a new business rule "[S] Clear errors on complete" on the transaction table to clear the process error when the state changes to Complete.
Fixed the Dataset advanced query evaluator so it points to the correct field.
Fixed Connection Test for SOAP integrations.
Improved the copy worker logic so message count is updated on the dashboard as the integration is being copied.
Fixed a bug which prevented the error messages specified on the integration from being used.
Fixed an issue which under specific circumstances could result in events that use DataSetProcessor to continually generate events even when all records have been processed.
Fixed Test Assistant portal so clicking the target record from a test result will open the record correctly.
Fixed the update set URL so it is compatible with the latest releases of ServiceNow.
Record counting logic has been revamped to be more robust so the progress workers display accurate information.
Added role checks and warning messages for non-admin users who do not have access to records in Designer.
Fixed the test result widget so it exits processing earlier if an invalid test sys_id is provided.
Updated the inbound processing logic so inbound requests that are unable to be processed will still be marked as Inbound where previously the direction was not stored.
Modified integration tests so receipt processing logic is only tested if the receipt is available on the message.
Fixed an issue with Dataset processing not following the directional choice set by the configuration.
Added support for Dataset field maps that refer to the property value on the field instead of the element. By default, the field element value is used unless the field map is using ${field.property}, in which case the property value is used.
The dashboard has been updated to ignore letter case when using search, e.g. searching “acme” will now match “ACME”.
Updated the Message logic to only set the Action method value to POST when it is empty and the integration type is REST.
Fixed an issue which caused tests generated from closed bonds to fail incorrectly.
Updated the Dataset Request cleanup job so it only removes transactions which are Complete or Ignored. This prevents the Dataset Requests from being removed too soon since the requests are cascade deleted from the Transaction.
Updated Activity Log rendering so it works with the new macro display container used in Next Experience.
Updated the integration test runner to prevent an error being generated when multiple integrations are triggered from a process update during testing.
Fixed an issue preventing custom Response Actions from running request retry logic.
Cleanup date is now ignored during integration testing since it is irrelevant to the test.
Fixed an issue where the copy integration service would not move some of the newly copied configuration to the new scope chosen by the user for the new integration.