Unifi 4.1 Release Notes

Release date: 17 November, 2023

Highlights

Interface Update

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.

New Feature: Templates

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.

Dataset Improvements

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.

New Features & Improvements

UN-113 Add flag to Connection so Inbound User doesn't need to be added for Outbound only integrations.

A Connections can now be marked with a direction: Inbound, Outbound, or Bidirectional. An inbound user is only necessary for Outbound or Bidirectional connections.

UN-460 AttachmentSender should check if the attachment exists

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.

UN-1224 Add new diagnostic for multiple active bonds with the same integration on the same record

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.

UN-1225 Allow Coalesce field to be edited from the Field list on a Message in Designer

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.

UN-1231 Add Diagnostic to check for Dataset bond

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.

UN-1235 Add Diagnostic to check if Fields are using Unifi field maps

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.

UN-1241 Add Datasets to documentation

Updated the integration documentation feature so it includes Datasets.

UN-1247 Add support for multi-table attachments outbound

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.

UN-1271 Building message scripts should use message direction

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.

UN-1283 Improve error handling for connections using the same inbound user for the same process

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.

UN-1309 Use notices instead of warnings in Test Assistant

Changed integration test warnings into notices to make them look less like a failure and more informational.

UN-1310 Rename application from Unifi to ShareLogic Unifi and update theming

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.

UN-1324 Add notification messages to $stage during dataset processing

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.

UN-1331 Add support to Designer for opening records in Xplore

Designer will now detect if Xplore is installed and provide shortcut methods to forms and lists.

UN-1332 Add Retry option to Connection Test

A new Retry button has been added to the Connection Test interface to make it easier to re-run the connection test.

UN-1336 Add Build version to Integration

Added a new field to integration which tracks the application version the integration was last built with. This field is not currently visible anywhere.

UN-1341 Add support for sending attachment content as the payload

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.

var sender = new x_snd_eb.AttachmentSender(transaction, bond);
if (!sender.next()) {
    throw "Cannot send attachment; no attachment found.";
}
payload = sender.getAttachmentContent();
sender.setSent();

UN-1343 Add button to perform test export on a Dataset

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.

UN-1346 Update inbound dataset requests to show an error when the import set fails

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.

UN-1348 Roll up Import Set errors to the Dataset Request

Dataset Requests responsible for importing are now immediately updated with the import error when the import fails.

UN-1349 Add button to format payloads on HTTP Requests so they are easier to read

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.

UN-1350 Inbound REST processing improvements

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.

UN-1355 Add button to Designer to open bonds that belong to the current integration

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.

UN-1357 Tell the user when the dataset query start time has been reset because the dataset query has changed

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."

UN-1358 Add the ability to cancel a Dataset export

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.

UN-1361 Update portal browser title so the integration name is always first

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.

UN-1367 Integration Templates

An integration can now be marked as a template making it easier to identify the integrations you want to start from or reuse.

UN-1370 Add request parameters object to response action scripts

Response actions now have access to the “query” and “headers” objects which gives direct access to inbound request query parameters and header values.

UN-1372 Cancel dataset exports when the integration or dataset is inactive

Dataset exports will now be skipped if the integration is not found or is not active or if the Dataset is not active.

UN-1378 Make Integration Tests run as the transaction created by user

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.

UN-1382 Increase list rows in Designer to 50 items

Updated the default list size in Designer to be 50 items.

UN-1383 Show more list columns for Fields on a Message in Designer

Key fields such as path and property are now shown in the Field list on a Message.

UN-1386 Add decodeURIComponent to the Attachment REST API Template

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.

UN-1400 Showing field maps for other integrations in fields

To help prevent upgrade issues, built-in field maps are no longer selectable when configuring a field.

UN-1402 Add Event Actions to Documentation

Updated the integration documentation feature so it includes Event Actions.

UN-1407 Revert Properties module to use old system properties interface

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.

Fixes

UN-758 Messages with the same name do not work

Fixed an issue where messages with the same name but different directions, or where one is inactive, do not always work as expected.

UN-1042 Invalid field inheritance is not clear

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.

UN-1097 Test Assistant is showing stage and snapshot test warnings

Fixed an issue with test data substitution when running an integration test.

UN-1115 Copying a connection variable in the Portal will navigate you back to platform

Copying a connection in Designer will now keep you in Designer.

UN-1134 Resuming an integration will process a queued transaction even if the previous transaction was errored

Queued transactions are now only processed during integration resume operation when the previous transaction was complete.

UN-1166 Payload to stage errors do not fail an HTTP Request without a flag

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.

UN-1219 Packaging an integration does not capture scheduled scripts

Fixed an issue where scheduled scripts belonging to integrations would not be captured by the integration packager.

UN-1223 Dataset Requests which are in the error state cannot be ignored

Fixed the Ignore button on Datasets so it is available in the Error state.

UN-1232 Integration Dashboard transaction insights do not load properly for "Today"

Fixed an issue with the initial loading of the Insights dashboard widget.

UN-1237 Cannot delete integration from Designer portal

Fixed a bug that would prevent the integration delete operation from working when initiated from Designer.

UN-1240 Diagnostic for "All message scripts belong to a message" fails with error

Fixed a reference issue preventing this diagnostic from working properly.

UN-1244 Dataset import row logging not working

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.

UN-1249 Message template shows lint errors with HTML/XML

Fixed a bug causing the template field on Message to be displayed with Javascript formatting instead of XML.

UN-1250 Editing a template in the script viewer closes the script upon save

Fixed a bug which would reset the template field when saving a Message in Designer.

UN-1251 Integration tests are failing after new fields are added

Updated integration test logic to ignore new fields on the process table (e.g. Incident) which were not present when the test was created.

UN-1252 Template field does not show on Messages

Fixed an issue with rendering the Message template in Designer.

UN-1257 Replaying transactions when they've been created by the "guest" user fails

Fixed guest transaction replay logic by preventing the system from trying to find a guest user to impersonate.

UN-1265 Inbound endpoints are still picking up non-Unifi endpoints

Fixed the REST resource query logic so only the process related resources are shown when viewing the Connections list in Designer.

UN-1266 Duplicate bonds being created on inbound creates

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.

UN-1269 Full page scripts do not render for Poll Processors or Event Actions etc, shown in Designer

This issue was caused by a self-closing directive tag and was fixed with UN-1270.

UN-1270 ServicePortal directives included with self-closing tags are not always rendered in Tokyo

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).

UN-1272 Pollers not using Run As user when executed from the Unifi portal

Fixed the Poller Execute Now button in Designer so Pollers are executed as the specified user (providing global utility is installed).

UN-1275 Diagnostic hotfix check should be specific to patch release

Updated the diagnostic that checks hotfix version to compare at the patch level. Also improved the diagnostic error comment.

UN-1277 Replaying a transaction should clear its error message fields

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.

UN-1280 Dataset Advanced query script does not work

Fixed the Dataset advanced query evaluator so it points to the correct field.

UN-1290 Error when connection testing a SOAP integration

Fixed Connection Test for SOAP integrations.

UN-1297 When copying an integration in Designer, the message count is not updated and sits at 0

Improved the copy worker logic so message count is updated on the dashboard as the integration is being copied.

UN-1298 Error messages defined on the Integration are not retrieved properly

Fixed a bug which prevented the error messages specified on the integration from being used.

UN-1299 DataSetProcessor events can auto-queue even when there is no additional data to process

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.

UN-1302 Update sets do not automatically download when packaging an integration in the Portal

Fixed the update set URL so it is compatible with the latest releases of ServiceNow.

UN-1304 The copy and package integration workers can show the wrong number of records

Record counting logic has been revamped to be more robust so the progress workers display accurate information.

UN-1305 Users with the x_snd_eb.admin role can access menu items they cannot see records for

Added role checks and warning messages for non-admin users who do not have access to records in Designer.

UN-1308 Test Assistant shows an error when an invalid test sys_id is used

Fixed the test result widget so it exits processing earlier if an invalid test sys_id is provided.

UN-1333 Inbound HTTP Requests that fail early do not have a direction value

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.

UN-1337 Tests failing with partial async messages

Modified integration tests so receipt processing logic is only tested if the receipt is available on the message.

UN-1340 Datasets with Fields marked only Inbound or Outbound do not generate data

Fixed an issue with Dataset processing not following the directional choice set by the configuration.

UN-1354 Dataset exports are missing field values when source to stage script uses field.property instead of field.element

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.

UN-1359 Designer dashboard search does not work with capital letters

The dashboard has been updated to ignore letter case when using search, e.g. searching “acme” will now match “ACME”.

UN-1362 Action Method resets to POST after updating a Message

Updated the Message logic to only set the Action method value to POST when it is empty and the integration type is REST.

UN-1371 Tests which use a closed bond fail when comparing bond cleanup date

Fixed an issue which caused tests generated from closed bonds to fail incorrectly.

UN-1374 Dataset cleanup job should only delete completed dataset requests

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.

UN-1376 Activity Log does not allow horizontal scrolling in Next Experience

Updated Activity Log rendering so it works with the new macro display container used in Next Experience.

UN-1379 Outbound integration tests will fail when an update triggers a different number of integrations

Updated the integration test runner to prevent an error being generated when multiple integrations are triggered from a process update during testing.

UN-1393 ResponseAction retry fails with "integration not defined"

Fixed an issue preventing custom Response Actions from running request retry logic.

UN-1395 Inbound_sync test script failed on cleanup_date check

Cleanup date is now ignored during integration testing since it is irrelevant to the test.

UN-1408 Copying an integration will leave some new configuration in the old scope

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.

Last updated