Version 1.31.0
In this release, we added the ability to divide personal and shared filters in the Condition Builder for repeated use when working with lists. We also provided support for the compact mode of the recordList Simple tag. You have the option to ignore global interface display settings by using an additional attribute.
We expanded the functionality and configuration options of the dependency map to improve the readability of relationship graphs. This helps you better assess the impact when building service-resource models for services, service-financial models for assets, and in other scenarios where a clear visualization of dependencies is required.
To improve system performance, we optimized the logic of the SimpleSystem class methods. To enhance the system's manageability, we implemented the capacity to autonomously define the recalculation interval.
We added the ability to test connections for RabbitMQ message queues from both the producer and consumer forms.
This version also includes some other improvements and fixes.
New features
Filters in the Condition Builder
You can now save configured filters in the Condition Builder and reuse them later. This significantly reduces the time required to find records using the same criteria on a regular basis.
Filter availability is defined when the filter is created. Only users with the admin role can create and edit filters available to all users. Other users can create and edit only personal filters.
The list of available filters is displayed in the upper-right corner of the Condition Builder widget. The Save and Add buttons are also located there.
You can edit both the conditions and the names of saved filters.
Read more in the Condition Builder article.
Working with WYSIWYG fields in scripts and REST API
To facilitate work with the text data in WYSIWYG fields, we introduced the following system properties:
- wysiwyg.columns.scripts_text_mode contains the IDs of the WYSIWYG columns that are treated as Text in scripts.
- wysiwyg.columns.rest_api_json_mode contains the IDs of the WYSIWYG columns available for integrations as JSON objects.
The following SimpleRecord Server-Side API methods can return either WYSIWYG or Text, depending on whether the column is listed in the wysiwyg.columns.scripts_text_mode system property:
- getValue()
- getAttributes()
- dot-walking field access
Improvements
Dependency map enhancements
We improved the dependency map visualization and added the following capabilities for users and developers:
- Drag-and-drop positioning of elements on the map (layout resets after page reload)
- Highlighting connections on hover for better visibility
- New attributes for configuring the dependency map via the external script getCustomDependencyMapData
Read more in the Dependency Map article.
Script error logging
A new Exception line field was added to the Log Script (sys_log_script) form. It shows the line number where the error occurred.
Script error logging is now always enabled. If the simple.logs.enable_script_logging system property is set to false, logging is disabled only for successfully executed scripts.
Read more in System Logs.
SimpleSystem methods optimization
We updated access control rule verifications for the methods of the SimpleSystem class to improve the platform performance:
Access control rules are applied
- ss.getUser()
- ss.getApplicationId()
- ss.getProperty()
- ss.generateUrlAction()
- ss.eventQueue()
- ss.eventQueueScheduled()
Access control rules are not applied
- ss.getUserID()
- ss.info()
- ss.debug()
- ss.warning()
- ss.error()
Read more in the SimpleSystem article.
SLA recalculation scheduling
You can now control system load caused by periodic SLA recalculation by configuring system properties that define recalculation periods. A new property, slm.calculation.period.in_pause, defines the recalculation interval for paused indications.
System properties and their default values:
| Property | Default value in seconds |
|---|---|
| slm.calculation.period.after_breach | 7200 |
| slm.calculation.period.before_breach_greater_than_1_day | 7200 |
| slm.calculation.period.before_breach_1_day | 3600 |
| slm.calculation.period.before_breach_6_hour | 1800 |
| slm.calculation.period.before_breach_2_hour | 600 |
| slm.calculation.period.before_breach_30_minutes | 60 |
| slm.calculation.period.in_pause | '' |
Read more in the Service level management properties.
Compact mode for the SimpleTag recordList
You can now enable compact mode independently of the user preferences using the compactView attribute in the recordList SimpleTag. If the attribute is not set, the user's Compact view preference is used.
Read more in the recordList article.
Condition Builder
The Condition Builder now closes automatically after filtering has been applied, so that users can see the results immediately.
Connection testing
You can now test connections for RabbitMQ Consumer (sys_rabbitmq_consumer) and RabbitMQ Producer (sys_rabbitmq_producer) using the Test connection button on the form. It functions as the similar button on the forms of the LDAP Server (sys_ldap_server) table. Upon completion of the connection test, the result will be displayed as a toast message in the bottom right corner. If there is an error during testing, its description is also provided.
Read more in the following articles: RabbitMQ Consumer and External queues.
Fixes
DEF0022484: Importing records from SOP files failed if fields of type Text, HTML, or Script contained values in double curly braces. For example, {{Hello!}}. The system incorrectly interpreted the braces in JSON and returned an error when such packages were uploaded. Validation logic has been supplemented with syntax validation in the inserted columns, and imports with syntax containing double curly braces now complete successfully.
DEF0019432: Exported XLSX files showed option values instead of display values for Choice fields that was inconvenient for reading data. This issue was caused by a missing override of the getValueForExport() method. The method is now correctly implemented, and the data from the exported XLSX files is displayed correctly.
DEF0018301: Temporary files caused rapid growth of the backend-api container size. Temporary files are now stored in the virtual machine and are automatically deleted after being uploaded to S3, or after 24 hours since they were last updated.
DEF0018256: Exported XLSX files could not be opened if a cell value exceeded Excel limits. The Excelize library has been updated to version 2.9.0, and long values are now truncated to supported limits, so the exported files can be opened.
DEF0017598: The limit on the number of concurrently uploaded files defined in max_files_upload_count was not enforced in the previous version. The system now correctly applies this limit to the number of files uploaded in parallel. This limit does not apply to the total number of files users can upload using other methods.
DEF0017501: Re-uploading a local package after a rollback caused a RestoreVersionException error. The rollback logic has been fixed, and the documentation has been updated with additional guidance on working with SOP files.
DEF0016995: Methods in the SimpleSearch class returned errors due to an incorrect ID generation mechanism. The ID generation logic has been fixed.
DEF0016429: The whenWillExpire() method of the SimpleSchedule class returned incorrect results when multiple exclusion calendar elements were present. The method now accounts for dynamic expansion of workday segments and returns accurate values.
DEF0015288: Search queries containing the % character caused search errors. The search algorithm has been updated to handle special characters correctly.