Here you will find details of what's changed in this release, including new features & improvements, depracated features and general fixes.
Welcome to the release notes for Unifi - Version 2.2. Please have a read through to see new features and fixes that have been added.
Please note that, as with every release, there may be some changes that are not entirely compatible with your existing integrations. While we do everything we can to make sure you won’t have to fix your integrations when upgrading, we strongly encourage all our customers to perform full end-to-end tests of their integrations before upgrading Unifi in Production.
We also highly recommend aligning your Unifi upgrade with your ServiceNow upgrade. This means you only need to test your integrations one time rather than once for the ServiceNow upgrade and once for the Unifi upgrade.
We really appreciate feedback on what we’re doing - whether it’s right or wrong! We take feedback very seriously, so if you feel you’d give us anything less than a 5 star rating, we’d love to hear from you so we can find out what we need to do to improve!
If you would rate us 5 stars, and haven’t left a review on the ServiceNow Store yet, we’d be grateful if you would head over there to leave us your feedback. It only takes a few minutes and really does help us a lot. Go on, you know you want to leave a 5-star review on the Store!
We’ve tested and verified that Unifi continues to work as expected on the latest Paris release of ServiceNow.
We’ve introduced a brand new feature that makes exporting and migrating integrations seriously easy, 1-click easy in fact. You can now click the “Package” button on an integration in the Portal and the system will gather all the related files that make that integration work and put them in a brand new update set and download it to your desktop. This feature does require the latest version of the Unifi Global Utility.
An API name is automatically generated when creating a new Process. [UN-192]
Integration Diagnostic now checks for global utility installation and version. [UN-369]
Millisecond time fields have been added to transactional records. [UN-541]
Integration Diagnostic now checks for hotfix version. [UN-682]
Activity Log will show “No logs.” if no logs are generated. [UN-768]
Errors are no longer duplicated in Activity Log to make it easier to debug. [UN-769]
Improved documentation interface in UID. [UN-772]
The display value for Connections now includes the Integration. [UN-347]
Bond reference method is no longer available for Response and Receipt type Messages. [UN-603]
Integration no longer controls number of attachments per message as this is done by the message itself. [UN-651]
Added the connection variable page to Portal. [UN-656]
Copying a Connection Variable now works. [UN-657]
Fixed icon alignment on Messages list in UID. [UN-755]
Fixed typo with Event Action. [UN-659]
Message Scripts now only throw their own errors (e.g. with Fields). [UN-749]
Improved spacing with UID Dashboard grid items. [UN-770]
Here you will find details of what's changed in this release, including new features & improvements, depracated features and general fixes.
Welcome to the release notes for Unifi - Version 2.1. Please have a read through to see new features and fixes that have been added.
Please note that, as with every release, there may be some changes that are not entirely compatible with your existing integrations. While we do everything we can to make sure you won't have to fix your integrations when upgrading, we strongly encourage all our customers to perform full end-to-end tests of their integrations before upgrading Unifi in Production.
We also highly recommend aligning your Unifi upgrade with your ServiceNow upgrade. This means you only need to test your integrations one time rather than once for the ServiceNow upgrade and once for the Unifi upgrade.
We really appreciate feedback on what we're doing - whether it's right or wrong! We take feedback very seriously, so if you feel you'd give us anything less than a 5 star rating, we'd love to hear from you so we can find out what we need to do to improve!
If you would rate us 5 stars, and haven't left a review on the ServiceNow Store yet, we'd be grateful if you would head over there to leave us your feedback. It only takes a few minutes and really does help us a lot. Go on, you know you want to leave a 5-star review on the Store!
The biggest change in this release is the update to the Portal interface, now known as Unifi Integration Designer.
The old operations dashboard has now been moved to the new Unifi Operations Portal, ready for lots of exciting updates around operations in the near future. It's been replaced with a brand new configuration dashboard, allowing you to view, create, copy and manage your processes and integrations with ease.
There are lots of improvements across the board when configuring an integration, too, not least of all including support for all the components you need to build any Ticket Exchange integration together in an intuitive way.
We've introduced a brand new capability to pause an integration. This allows you to temporarily prevent outbound messages from being sent, instead allowing them queue ready for sending in future. This is different to deactivating the integration, which would prevent message processing altogether. You might want to do this if you are having a lot of errors with the external system, or perhaps if it's gone down for maintenance. Once you know the system is back up and online, you can resume the integration with the click of a button and it will automatically start processing the queued messages.
The introduction of Event Actions is part of our ongoing strategy to improve operations management of integrations. By creating an Event Action, you can easily triage events such as transaction errors and perform actions to handle or report on those actions. For example, you might want to create an Incident record if you receive more than 5 transaction errors in 15 minutes.
With the introduction of Activity Logs you no longer need to attach logs to requests/transactions. Activity Logs are present in related lists on all relevant Transaction stack records.
The attached logs were previously controlled by the Attach logs
and Attach payloads
checkboxes on Integration, but they are now overridden off by a new Integration Enable Attachments
system property. This property acts as the master switch and effectively disables the checkboxes on the Integration. Note: the checkboxes have been removed from the Integration form but can still be edited from the list view.
Admins can now force close a bond. [UN-106]
Description field added to Data Stores. [UN-123]
New option on Integration to send attachments with Create messages. [UN-184]
Activity Log now references the Target (e.g. Incident). [UN-288]
Added a cleaner job, controlled by system properties, to remove orphaned Transactions. [UN-544]
New Poll Request states (Retrieving, Processing) are set while a Poller is processing . [UN-293]
Field style added to Active field on Poller. [UN-298]
Activity Log is now able to show the table that called it. [UN-305]
Field style added to Poll Request state. [UN-313]
Queued Transactions are now ignored when the bond is closed. [UN-370]
Fields can now be copied. [UN-389]
The Integration field is now auto-populated when creating a Field from a Message. [UN-395]
The Table field is now auto-populated when creating a Field. [UN-396]
Added Domain field to Transaction stack forms (Bond, Transaction, Stage, and HTTP Request). [UN-401]
Copy Message now copies all its Fields. [UN-420]
Copying an Integration now copies all the Fields. [UN-421]
Copy Integration is now available in the Portal. [UN-422]
Connection is now shown on Transaction. [UN-426]
Integration Status (Up, Down, Awaiting) is now tracked on the Integration. [UN-427]
Integration State (Active, Paused, Off) is now tracked on the Integration. [UN-428]
Added option to Run Event Actions on an Integration. [UN-431]
Bond now references the Connection it was created for. [UN-438]
Dynamic Stage ($stage) now has a getValue()
method. [UN-441]
Fields and Field Maps can now be configured in the Portal. [UN-443]
Message level Fields can inherit from Integration level Fields. [UN-449]
Pollers are now listed on Integration. [UN-456]
Bonded Attachment records now track direction (Inbound or Outbound). [UN-461]
Added console
object to all scripts for ease of logging. [UN-477]
Updated Activity Logs on the bond so it shows all Activity Logs for the Document record. [UN-513]
Improved Activity Log titles. [UN-514]
Admins can now force re-open a closed Bond. [UN-517]
Improved Execute Now button for Pollers. [UN-521]
Added Activity Logs to Poll Requests. [UN-522]
Added Integration field to Poll Request. [UN-523]
Improved naming for Portal based Activity Logs. [UN-529]
HTTP Request and Transaction now shows the Response Action that was used. [UN-533]
Cascade delete now applies to Field Maps belonging to an Integration. [UN-545]
Cascade delete now applies to Fields belonging to an Integration. [UN-546]
Cascade delete now applies to Pollers belonging to an Integration. [UN-547]
Cascade delete now applies to Pollers belonging to an Poll Processor. [UN-547]
Added Description field to Connection. [UN-565]
Added Description field to Scheduled Scripts. [UN-570]
Added Hints to Field Map fields. [UN-571]
Added execution URL to Activity Log. [UN-574]
Modified security on Activity Logs so they are visible to Unifi Managers. [UN-586]
New Unifi REST service and integration role added to simplify REST API configuration. [UN-633]
Changed Integration Format and Message Service defaults to be REST/JSON. [UN-634]
Bond closed
field has been removed from Message. [UN-332]
The XML Template on Message no longer has a default value. [UN-398]
Changing the Integration on a Field now clears the Message. [UN-399]
Poll Processors are now copied when the Integration is copied. [UN-468]
Improved the Field "Depends on" logic. [UN-476]
Data Stores now inherit the domain from the parent document. [UN-481]
Message.processOutbound()
will not send anything if the action on the current record has been aborted using setAbortAction(true)
. [UN-490]
Replay Request is now available to the Unifi manager role. [UN-494]
Most system properties are now Private and not transferrable by Update Set. [UN-652]
HTTP Request URL length limit increased to 2048 characters. [UN-118]
Transaction count on bond has been deprecated. [UN-141]
Number field has been removed from Messages and Message Scripts. [UN-208]
Modified Bond Reference Method field visibility on Message. [UN-292]
Ignore Transaction button now redirects to the Transaction being ignored. [UN-338]
Deprecated ECC Queue attachment support for attaching logs. [UN-405]
Deactivated the fix script x_snd_eb eBonding Upgrade. [UN-406]
Response is no longer mandatory on Message. [UN-439]
Integration properties which are numbers are now mandatory. [UN-440]
Endpoint URL is now visible on inbound requests. [UN-511]
Deprecated log attachments. [UN-540]
Bonded Attachment fields are now locked down. [UN-577]
Only Unifi Admins or Managers can replay HTTP Requests. [UN-581]
Inbound Create messages are now rejected when a Bond with the same reference exists. [UN-136]
Inbound Bonded Attachments now reference the Transaction they came in on. [UN-151]
Fixed issue with connection name generation. [UN-159]
Replaying a Transaction with attachments will now replay the attachments as well. [UN-226]
The Bond state will now always reflect the overall status of its transactions. [UN-230]
Bond status is now updated correctly when processing numerous queued messages. [UN-273]
A new field Deferred count
has been added to Bonded Attachment which tracks how many times the attachment was not sent and allows us to properly calculate attachment metrics on the Bond. [UN-287]
Bond numbers are no longer used unnecessarily. [UN-315]
Fixed issues with assigning headers in Stage to Request Message Scripts. [UN-333]
Fixed an issue where calling a Unifi endpoint with GET would throw an error. [UN-380]
UTF-8 encoded XML is now checked before processing to prevent parsing issues. [UN-382]
The Name value on Field is now set even when a not mapping to a real field. [UN-397]
Fixed an issue where the Field form would always show the alert for losing changes. [UN-451]
Fixed duplicate attachment messages when using ServiceNow Antivirus scanning. [UN-465]
Inbound transactions that are replayed are now executed as the integration instead of the current user. [UN-473]
Fixed an issue with Field Choice generation not having the table set. [UN-475]
Replaying an HTTP Request now increments the number correctly. [UN-478]
Errors thrown in Field Map scripts will now show up in the Transaction. [UN-479]
Fixed an issue with replaying Transactions created by system
. [UN-482]
Fixed Bond History state logging. [UN-485]
Fixed an issue with false-positive updates from Transactions. [UN-505]
The "Generate field choices" action on Field now checks for existing Field Choice entries. [UN-516]
Reference fields in Messages are now correctly updated when copying an Integration. [UN-530]
Fixed an issue where full Activity Logs would be sent to system log. [UN-534]
Logging verbosity is now allowed at error
level. [UN-535]
Fixed an issue where queued Transactions would not be processed. [UN-543]
Connection is now updated when the Integration name is changed. [UN-552]
API names are now allowed to use a zero (0). [UN-553]
Clicking the "Generate field choices" action on Field will save the record first to ensure choices are generated correctly. [UN-556]
Response Action user notifications now work. [UN-562]
Fixed undefined error with Ignore Transaction button [UN-592]
Fixed issue in generating messages without a Connection URL [UN-638]
Transactions are now ordered by date created in the live feed. [UN-452]
Side menu options are now highlighted when selected. [UN-453]
Reference links now navigate to the Portal pages instead of native ServiceNow. [UN-454]
Changed the style on inactive Boolean fields to differentiate them from read-only Boolean fields. [UN-564]
Embedded fonts/icons to improve page loading times. [UN-572]
Added Enable/Disable button to form headers for easy access. [UN-641]
Fixed read error when attempting to view a record in Portal as a non-admin. [UN-403]
Fixed Portal font size for instances running Madrid onwards. [UN-404]
Fixed an issue with the operations dashboard truncating the live transaction feed when there are less than 20 transactions. [UN-407]
Attachment sending can now be controlled from the portal. [UN-415]
Condition widgets now work in Portal. [UN-434]
Fixed an issue with variables payload
and headers
not being assignable in Message Scripts. (Closures have been replaced with instructive comments.) [UN-463]
Outbound Attachment properties are no longer visible for inbound only messages. [UN-472]
Bond scripted condition type only shows once instead of twice. [UN-558]
Long text fields in Portal lists are now truncated to improve usability. [UN-569]
Fixed render issue with reference fields that have no value in portal [UN-578]
References in lists now show "(empty)" if there is no display value [UN-640]
Fixed issue with form appearing read-only in Portal view when directly navigation to the URL [UN-642]
Fixed issue with Portal form loads from an external link [UN-643]
Added support for day-of-week type fields. [UN-566]
Added support for time fields. [UN-567]
Added support for interval fields. [UN-568]
Lists and pages now update the title in Portal. [UN-637]
Here you will find details of what's changed in this release, including new features & improvements, depracated features and general fixes.
Welcome to the release notes for Unifi - Version 2.0. Please have a read through to see new features and fixes that have been added.
Upgrade Notice
Please note that this is a major release which may not be entirely compatible with your existing integrations. While we do everything to make sure you won't have to fix your integrations when upgrading, we strongly encourage all our customers to perform full end-to-end tests of their integrations before upgrading Unifi in Production.
Feedback and Reviews
We really appreciate feedback on what we're doing - whether it's right or wrong! We take feedback very seriously, so if you feel you'd give us anything less than a 5 star rating, we'd love to hear from you so we can find out what we need to do to improve!
If you would rate us 5 stars, and haven't left a review on the ServiceNow Store yet, we'd really appreciate you heading over there to leave us your feedback. It only takes a few minutes and really does help us a lot. Go on, you know you want to leave a 5-star review on the Store!
The following items are the major talking points for this release.
Now that Unifi has a solid and proven foundation for building and running integrations, we have built a new Service Portal interface to make it simpler and easier than ever to build an integration. This new interface has been developed from the ground up to be scalable, intuitive and capable of supporting advanced features.
Unifi version 2.0 marks the first release of the portal, with the ability to build Processes, Integrations and Messages, but we will be adding to it in future releases.
Also of importance is the new Dashboard which gives a clear overview of what is happening in your instance right now. A live view of the last 20 transactions to be processed and the bonds that have been worked on today really helps you to see what's going on.
Unifi is tested to be compatible with all current ServiceNow releases: Kingston, London and Madrid.
A lot of effort has been put into upgrading the queue management options that are available. Things like replaying Transactions and Requests now use brand new technology which allows them to be much more robust and as close to a clone of the original as possible. It's also now possible to repair all the outstanding Transactions directly from the Integration with the click of a button.
This release introduces the concept of Field Maps. These allow you to configure your messages with Fields and reusable Field Maps which then automatically generate all your scripts, so you don't need to write any code.
Field Maps have no negative performance impact - in fact, they might be slightly faster - because all the logic to be executed is copied into the Message Scripts when the integration is built. Any existing code in your Message Scripts is retained so you always have the option of doing things manually.
Anyone that's used Unifi knows that a major benefit of building integrations in Unifi is the logging and profiling capability. We've now expanded this capability to make it more easily and widely accessible, so even background processes have complex logs available to see.
With the introduction of the Activity Log table, this becomes your first port of call when trying to looking for issues.
[UN-124] - Add description to connection variables to allow explanation of their use
It is now possible to add a description to the Connection Variable (up to 4000 characters) so notes or explanations can be stored.
[UN-127] - Replay All errored transactions
The Integration record now features a 'Repair' button which will automatically batch process all errored transactions. A background process is executed and with status being displayed through a progress bar.
[UN-152] - Sending attachments
This is a breaking change
Some improvements have been made to the attachment sending.
Two new fields are now available on Message:
Send attachments [true/false]
Send attachments max [Integer - default 1]
In addition to these new fields, the method AttachmentHandler#getAttachmentsToSend(message, transaction)
now takes two arguments where previously it took one. It is this method modification that may break some existing installations that manually call this method (e.g. in a UI Macro or Script Include). Please check usage of this before upgrading.
[UN-170] - Add reprocess/resend to HTTP requests
Replaying an HTTP Request now works properly for both inbound and outbound requests. Previously, complexities with the process prevented this from being fully implemented.
[UN-178] - Activity Log
Unifi has a very smart profiling and logging tool called console which allows detailed logs to be attached to contextually relevant records. While this has been incredibly useful it fell short in two areas. The first is that it would add lots of attachments to the database over time, and the second is that it wasn't easily possible to log non-record generating processes, such as background clean-up jobs.
This update addresses both of these issues through the addition of a new table called Activity Log. The table means that attachments are no longer needed because all transactions are automatically logged. It also means that background processes can be tracked because they do not need a record to belong to. The logs are stored in the table and rendered without needing to download or open an attachment.
Activity Logs will also track (where possible) the integration they belong to and the contextual record it is about. Related lists have been added in places like Bond, Transaction and Request so that Activity Logs can be easily referenced.
By default, Activity Logs are stored for 7 days.
[UN-210] - Dynamic Stage object so we don’t need to extend
Traditionally, local staging tables have been required for each process to capture data at a point in time. This data would then be available to process accurately, but it was also providing a log for future reference. The problem was a new Stage table would need to be created before the Process could be created. Then, any time a data point was needed, a new field would have to be added to the custom stage table.
Dynamic Stage does away with the need for custom stages per process and removes the need to create fields by storing data dynamically as you use it. New Processes only need to reference the Unifi Stage table, and Dynamic Stage will take care of everything else.
This change is fully backwards compatible with the traditional one stage table per process.
Start using Dynamic Stage in your Message Scripts by assigning to and from the $stage
object instead of stage
. It is possible to add not only strings to $stage
, but also complex objects and arrays. Just make sure that things like field objects are coerced to strings (or use getValue()
) otherwise you'll see something like [object Object]
instead of the string value you expect.
Custom stage tables will work with Dynamic Stage, but you will need to add the Stage Data Render
formatter to the form layout.
[UN-266] - Clone cleanup should disable all non-instance specific connections
By default, the Integrations Enabled system property (x_snd_eb.active
) is disabled when an instance is cloned. This update also disables all Connections to prevent accidental connection to the wrong endpoint.
[UN-268] - Add automatic domain setting for Bond and Transaction stack
The domain field is now automatically set for transactional records using the following logic:
Bond domain comes from Target domain (e.g. Incident).
Transaction domain comes from Bond domain.
Stage domain comes from Transaction domain.
HTTP Request domain comes from Transaction domain.
Bonded Attachment domain comes from Bond domain.
[UN-269] - Modify response action override message
The response action error message has been modified to be more descriptive.
e.g. Socket timeout handled by response action "Default 0 Script Errors"
[UN-272] - Add indexes
All tables have been indexed according to the data and queries being used. This should improve performance, especially when loading/searching lists.
[UN-276] - Allow multiple ignore and ignore from right click (Transaction)
Transactions can now be ignored from the list context menu and by a list button.
[UN-299] - Add description fields to configuration records
Add description field to all configuration type records.
Process
Integration
Message
Response Action
Poller
Poll Processor
[UN-304] - Break out GlideRecord#operation() to Model method
It is now possible to check the record operation from the Unifi Model class.
[UN-307] - Add link to app log
The System Log module has been updated to point to the scoped log rather than the system log.
[UN-309] - Update sync overdue transaction job BR on integration
The business rule that generates the overdue transaction jobs for each integration is now wrapped so it appears in the Activity Log.
[UN-317] - Refine Message.processOutbound
The Message.processOutbound()
method has been improved to be more efficient and provide better visibility of processing.
[UN-318] - Add method to console for executing a function
A new method ws_console.execute()
wraps an inline function in console logic and prevents errors from leaking (as errors are captured by the Activity Log and automatically put in gs.error()
).
It should be used in all business rules and scheduled jobs, and anywhere else a script runs in Unifi.
[UN-320] - Add cleanup job for pollers
A scheduled job has been added run every hour and uses a new cleanup
field on the Poller record to determine how many days to keep Poll Requests for.
[UN-326] - Poll Requests module should filter by created on today
Viewing Poll Requests from the application navigator will now filter to show only those created today.
[UN-340] - Sync responses do not have automatic access to internal reference
When an inbound sync request was made, the internal stage did not get auto populated with the internal_reference
field for use by the response message (e.g. to give the Incident number that was created). Unifi now checks if it has a value and if not, auto-populates it.
[UN-352] - Copy message
A Copy action is now available on the Message form which copies the Message and its Scripts.
[UN-353] - Copy connection
A Copy action is now available on the Connection form which copies the Connection and its Variables.
[UN-354] - Add support for streaming an attachment over REST
Unifi now supports sending a whole attachment as the request instead of having it sent as part of the body. This method streams the attachment rather than embedding it which means attachments larger than the string limit (5MB) can now be sent.
To use this feature, simply set the payload of the request to be sys_attachment:<sys_id>
and Unifi will automatically sent the specified attachment.
[UN-355] - Improve environment objects for identify_message script
The Identify message script on the Integration is now provided with integration
and connection
GlideRecord objects. The objects now available are payload
, headers
, integration
, connection
and variables
.
[UN-361] - Add link parsing to console
Console logs now replace text in the format table.sys_id
with a link to the record in HTML format. If the record is found then the table label and record display value are also shown. This allows users to easily open records used during the process.
[UN-363] - Add link to broken transactions on integration
A View broken transactions
related link is now available on the integration to easily view all transactions that are errored or timed out.
[UN-366] - Process stage table should be default to x_snd_eb_stage.
With the introduction of Dynamic Stage, new Process records default to use the Unifi Stage table.
UN-367] - Allow request error to show in Transaction instead of 'Final retry failed.'
The "Final retry failed" error shown in transactions was not helpful and has now been replaced with the error generated by the latest request that failed.
[UN-368] - If transaction is ignored, prevent in flight request from sending
Ignoring a transaction midway through a request being processed would not prevent the request from being sent. Requests now check if the transaction is cancelled just before sending and will automatically cancel themselves if the transaction is cancelled.
[UN-374] - Remove irrelevant debug statements
Irrelevant debug statements have been tidied up so they either do not show or only show when trace logging is enabled.
[UN-376] - Replace snd_console with ws_console
When Unifi was first created, snd_console
was also created to be used for profiling and debugging. With the company transitioning from the old name SN Developer to Whitespace Studios, we have replaced snd_console
with ws_console
. You might even see ws_console
become available for your own apps in future!
This change is backwards compatible. snd_console
still exists in Unifi so any code in your instance that uses this method will still work.
[UN-377] - Message path should allow ${} variable format
The Path on Message would only allow inline scripts using the {}
format, but this is inconsistent with the rest of ServiceNow so it now accepts ${}
or {}
to define inline scripts. e.g.
/upload?id={variables.uid}
or
/upload?id=${variables.uid}
[UN-150] - Replay request/transaction needs to run as the original creator.
When replaying requests or transactions, the replay would run as the logged in user instead of the original user. It now runs as the original user to allow functionality that relies on the identity of the user to run correctly.
[UN-228] - Overhaul pending transactions counter
It is possible for Pending transactions counter on the Bond record to get out of sync. Pending transactions are now calculated differently to try to prevent this from happening.
[UN-257] - Message processOutbound is processing messages for inactive integrations
Integrations that were inactive were still being processed for messages to send when an insert/update was made to a record. This fix prevents inactive integrations from having their messages processed.
[UN-260] - Payload object is not automatically converted to JSON for Stage to Request
Integrations using JSON payloads had to manually stringify the payload object in the Stage to Request script. You can now just set the global variable payload
to your payload object and it will automatically convert it to JSON.
[UN-274] - Poller doesn't check for integration off property
Pollers would still run even if the integration was disabled. This fix means Pollers will not run if the integration is disabled.
[UN-275] - RestHelper wraps with 'result'
This is a breaking change
When using a scripted REST API with the Unifi RestHelper, ServiceNow automatically wrap any non-streamed response in a result
object which makes it difficult to integrate with other systems that have specific response requirements. This fix uses the streaming method to send the response payload which means the message controls the whole response and no result wrapper is added.
[UN-283] - ITIL users cannot see the message names when viewing bond/transactions.
Security rules have been created to allow ITIL users to see the names of the messages that have been used when viewing from transactional data such as bonds and transactions.
[UN-285] - Attachment added can only be true on one message
Previously, only one message per integration could be configured with the 'Attachment added' trigger condition. This update allows one message per table per integration instead.
[UN-289] - Attachment business rule does not run on update
Some processes will update attachment records and these updates were not captured by Unifi. This fix addresses that so updates to attachments will check integrations.
[UN-290] - REST XML does not work
This fix allows XML to work properly with scripted REST API's using the Unifi RestHelper.
[UN-303] - When getting the bond need to order by created at ascending
This fix addresses issues finding the correct bond for integrations that can create more than one bond per ticket and see transactions spread between different (incorrect) bonds.
[UN-306] - ITIL users cannot see the integration names when viewing bond/transactions.
Security rules have been created to allow ITIL users to see the names of the integrations that have been used when viewing from transactional data such as bonds and transactions.
[UN-308] - Data Store checkOrphans method causing errors for empty table name
The scheduled orphan record checker for Data Stores would cause errors when the record that owner the data store was deleted. This would cause the getRefRecord()
method to fail.
[UN-314] - Receiving errors in processing poll requests due to string being too big
Pollers that return strings that are outside the string size limit (usually > 5MB for scoped applications) will generate an exception. A try/catch has been added to help avoid the exception and allow the script to keep running and gracefully exit.
[UN-319] - Repeating an inbound create request causes multiple bonds
When replaying an inbound create request, it would run as the user who replayed the request. Unifi saw this as a new create as it wasn't created by the Integration User. This has been fixed by replaying using a scheduled job that runs as the user that created the original request.
[UN-328] - Outbound attachment sending loop
Sending an outbound attachment that is rejected could result in the attachment being picked up with the next transaction which could also fail, thus causing an infinite loop. Bonded attachments are now only picked up in the Ready state where previously it was Ready or Rejected.
[UN-334] - Sync integration doesn't update bond external reference from stage, but async does.
The External reference on the Bond had to be written to manually for a synchronous message, where it happened automatically for an asynchronous message. It now works automatically for both types of message.
[UN-343] - Multi-table attachment processing
If an integration belonged to a process which pointed to a different table to the attachment sending message, the attachment listener on sys_attachment would not find the message. This is fixed with an option being passable to Message.processOutbound
so the table hierarchy will be searched.
[UN-348] - Affected CI logic updating incident is causing double updates
A caching issue meant it was possible for a work note to be added to the Incident whenever a CI was added/removed from the form. This has been fixed with a more intelligent mechanism of referencing the target record.
[UN-350] - Unifi message name header needs to be case insensitive
Message identification can be done by the request passing a specific header that Unifi recognises rather than adding the message name to the payload. However, headers in ServiceNow Scripted REST are always converted to lowercase which meant the Unifi header name, which used uppercase characters, did not work. This has been fixed by using case-insensitive matching on the Unifi message name header.
[UN-351] - Inbound user should not be mandatory
The Inbound user field on Connection is no longer mandatory. This is important for outbound-only integrations which do not require or permit any inbound requests.
[UN-356] - Add condition to the sys_attachment Unifi trigger
There were scenarios where Unifi log attachments could be sent by Unifi via the integration. Additional conditions on the sys_attachment business rule now prevent this from happening.
[UN-375] - Request URL's have duplicate host
If an integration required two endpoints (such as a ServiceNow Table API integration which also uses the Attachment API), the secondary host defined in a connection variable would not replace the host defined on the connection. The resulting URL had the connection endpoint followed by the variable endpoint.
e.g. Connection URL: https://test.service-now.com/api/now/table
Connection Variable value (attachment_api): https://test.service-now.com/api/now/attachment
Message path: {variables.attachment_api}
Resulting URL: https://test.service-now.com/api/now/tablehttps://test.service-now.com/api/now/attachment
The workaround was to put both hosts in variables, but it has now been fixed so that the message path is pre-processed first and then the connection path is prepended if the resulting URL does not contain a schema (i.e. ://
).
[UN-379] - Inbound attachment does not trigger outbound attachments for other bonds
In the multi-bond scenario where one ticket is bonded to many integrations, an inbound attachment will automatically create Bonded Attachment records for all the other Bonds. The problem was it didn't trigger the outbound message processing so those attachments didn't get sent automatically. This is now fixed so the outbound messages are processed when the bonded attachments are created.