Release notes

Release notes Indicium 2024.1.14

Related products: Indicium Service Tier
Release notes Indicium 2024.1.14

Hello everyone,

In this sprint, we have added the new Live Error Log, improved the performance of query generation, solved an issue with double logging, and we have changed Indicium's behavior regarding default logic to match the behavior of the Windows GUI.

You can read more about Indicium's features in the Indicium user manual .

About Indicium

Two types of the Thinkwise Indicium Application Tier are available:

  • Indicium Basic: for use with the Windows GUI and Mobile GUI. This basic version does not support features such as system flows and OpenID.

  • Indicium: for use with the Universal GUI and via APIs. This version uses the full range of Indicium functionality.
    Download Indicium release 2024.1.14 here .

Contents

 

New and changed

 

Added Live Error Log

new

We have introduced a new feature called the Live Error Log. The purpose of this feature is to improve the experience for developers when trying to troubleshoot issues.

All users who have access to downloading Indicium's error log will also have access to the new Live Error Log page, which can be found at the same location as the regular error log - on Indicium's landing page. In the future, the Universal GUI will also add a link to the Live Error Log to the menu.

 

Indicium landing page menu

The screenshot below shows what the Live Error Log looks like. When opening the page, it shows the last 100 (configurable) log entries that you would also see in the error log file.

  • If web sockets are enabled on the web server, the Live Error Log will maintain an open connection with Indicium and new log entries will be added automatically as they occur.
  • If web sockets are not enabled, the page can simply be refreshed to see the latest log entries.

The Live Error Log allows for text-based filtering, and you can indicate a minimum error level (for example, errors only), which makes it much more useful than the error log file. Finally, when Indicium is horizontally scaled, and Redis is configured for state management, the Live Error Log will show the log entries of all Indiciums simultaneously, rather than just the Indicium you're connected to.

 

Live error log

Another addition to the Live Error Log compared to the regular error log is that, when applicable, log entries will include the request URL that caused the error, as shown in the image below.

 

Expanded entry in the live error log

If you want to change the number of log entries that Indicium will keep track of for the Live Error Log, you can do so by adding the configuration settings shown below inside of the Logging:ErrorLog section of the appsettings.json.

"LiveErrorLog": {
"MaxTailLength": 100
}

The purpose of these changes is to make the error log much more digestible.

The next version of Indicium will most likely contain similar improvements for the Database Event Log and the Process Flow Monitor. In the near future, we will also look into the possibility of deep linking from error messages in the Universal GUI to entries in the Database Event Log and/or the Live Error Log, so we look forward to those changes!

 

Query performance improvements

change

We have improved the performance of the queries generated by Indicium in two specific situations:

  • All platforms When using a CHAR, NCHAR or GRAPHIC datatype for a key column of a lookup subject.
    Because these data types can have trailing spaces, Indicium applies an RTRIM to them to remove these trailing spaces from the result. However, Indicium did this in a subquery on the JOIN clause, causing the index to be unusable for the join. This has been changed, greatly improving the performance of joins on these lookups to resolve display values.
  • Oracle and DB2 only When sorting on any alphanumeric column that is indexed.
    Indicium would apply an UPPER function to the column in order to ensure consistent results on case sensitive platforms. The usage of this UPPER function can decrease the performance of the sorting operation when that column is indexed, as the index cannot be utilized effectively. When the domain is configured as "Upper case", the UPPER function will no longer be applied as the data is assumed to be in uppercase already. If you have columns with uppercase data, it will be beneficial to mark the domain as "Upper case".

 

Minor fixes and tasks

 

Fixed double logging of first process action in process flow monitor

We have fixed an issue that caused the first process action of a process flow to be logged twice in the Process Flow Monitor in some cases.

Fixed small incompatibility regarding default logic compared to the Windows GUI

We have fixed a small incompatibility regarding the default input and default output settings compared to the Windows GUI (menu Models > Model content > tab Columns > tab Form > tab Performance).

When the settings were applied as illustrated below:

 

Default input/output settings

Indicium would interpret this as the property neither triggering the default logic nor supplying the value for that property when another property triggered the default logic. Since no value was supplied for the parameter but Default output was turned on, this would cause the property to be nulled when not explicitly set within the default logic.

The Windows GUI still supplies the value for the property if another column triggers the default logic as long as Default output is also turned on, causing properties to retain their value when not explicitly set within the default logic.

Since this behavior was a breaking change compared to the longstanding behavior of the Windows GUI, we have decided to change it. Indicium will now also supply the value to the default logic if Default input is turned off but Default output is turned on. In the future, a more clear distinction between 'trigger' and 'value input' will be made for the checkbox Default input in the Software Factory.

 

Questions or suggestions?

Questions or suggestions about the release notes? Let us know in the Thinkwise Community!