Skip to main content

April 9, 2021

  • Changed beta release to full version: 2021.1.15.
  • Fixed a minor issue that arose on logging out of beta version 2021.1.15.b1.

Hello everyone,

in this sprint, we've added support for Open ID, task execution when a grid row is double-clicked, and the Delete row process action. For your application's users, it is now possible to change their password. And on top of that, we've changed the way that look-up translations and values are handled, which has led to a major performance improvement for subjects with many (look-up) columns.

As always, we've made a demo for you: try it here. Before trying it out, press 'Clear Cache' on the login screen. You can read the GUI user manual to get familiar with Universal.

We'll keep you updated regularly about Universal's progress.

 

Universal version 2021.1.15

Don't forget the documentation and be sure to keep the following in mind:

  • A modern browser is required to access the Universal GUI, eg a recent version of Chrome, Firefox, Edge, or Safari mobile. Using the Universal GUI with IE is not supported.
  • The Universal GUI must be deployed on the same server as Indicium or it should be an allowed origin in appsettings.json.
  • The Universal GUI only works with version 2019.1 and up of the Thinkwise Platform.
  • Furthermore, make sure you run all hotfixes on the IAM and SF that you plan to use for the Universal GUI.
  • Make sure you are on the latest version of Indicium Universal.

Download Universal GUI version 2021.1.15 here.

 

New

 

Change password within the end-application

It is now possible for users in your end-application to change their password when allowed. This link is available under User - User Preferences. Before changing the password, Universal GUI will validate whether all data changes have been saved. After changing the password, the user is redirected to the login page.

Validation on saved changes
Continue changing your password?

 

Support for OpenID

When Indicium is configured to support signing in using an OpenID identity provider, Universal will now let Indicium handle the login.

  • If the login options are disabled or hidden (by setting loginOptionsDisabled or loginOptionsHidden to true in config.json), the Universal GUI will redirect immediately to the Indicium login page.
  • If the login options are enabled and visible, the user is allowed to change the login options before continuing to the Indicium login screen.

This is what the login screen looks like with the login options visible and an Indicium with OpenID enabled:

Login options for OpenID visible

After clicking Continue, the user is redirected to the Indicium login screen:

Login with OpenID

After signing in, the user is redirected back to the Universal GUI and logged in automatically.

 

Support for "Delete row" process action

Universal GUI now supports the Delete row process action, which deletes the currently selected record. To delete a specific row, it can be combined with the Go to row process action.

 

Grid double-click task execution

The Universal GUI now supports task execution when a grid row is double-clicked. Our upcoming 2021.2 platform release will add the configuration for this in the Software Factory. Multiple subject tasks can be marked for this, the Universal GUI will pick up the first enabled one.

Grid double click task execution

 

Changed

 

Reset password link on login screen in the same tab

The redirect to Indicium's reset password procedure now opens in the same browser tab as where the GUI was opened in. This used to be a new tab.

 

Open an existing document or not in a process flow

In an Open document process action, the Universal GUI now listens to the open_doc_existing_yes/no input parameter variable. Without this variable, if a document is already open, the same document is selected. By using this variable, you can indicate to open always a new version of the document. If the current document is in add or edit mode, a new document will always be opened.

Warning: when the open documents are not displayed above the menu (extended property: HideOpenDocuments), they may be open forever if the system doesn't close them.

 

Performance improvements

 

Greatly improved (lookup) performance

We've greatly improved the performance of subjects with many (look-up) columns, by changing the way look-up translations and values are handled:

  • To fetch the look-up translations on the available data, the subject's query with its entire filter was used. This slowed down performance since filters can be extensive and even contain, for example, Description fields. Now, by filtering the look-up translation by primary key only, the performance is improved. The load on the database is reduced and results are returned much faster.
  • Look-up values got cleared at every refresh, which gave the impression nothing was happening. Refreshes occur a lot in the Universal GUI, for example, when executing a task, when saving a record, when navigating between records if they have a detail subject, when pressing the refresh button, etc. Now, by no longer clearing the lookup translations, the records in the grid will stay filled with the old translation until a new translation is fetched. In most instances, these translations will be the same. This reduces flickering and makes the Universal GUI feel much faster.

After making these changes, we measured the results in TCP > Issues (with 23 similar lookup requests). Notice in the 'before' and 'after' screenshots below that the gap after the first request is gone. Also, notice that each subsequent look-up request is up to 10 times faster. Refreshing the data appears up to 50% faster now the look-up translation is no longer cleared. Just try it out yourself!

Before:

Performance before improvements

After:

Performance after improvements

Other performance improvements

  • The Search response has been improved by giving immediate results when pressing Enter.
  • We've made switching rows in the grid more responsive.

 

Minor fixes and tasks

  • For the process action Execute task (without table), the Universal GUI didn't give a signal that completed the process flow. Due to this, the process flow didn't work the second time if it ended with said process action. This has been fixed.
  • The Activate detail process action now also works with details of details.
  • Now, an error will be shown when an entered value is outside the boundary of a 'min/max' domain, and the value will revert to the earlier valid value. Before, no error was shown.
  • The Export functionality will now only select the visible columns for the Excel file.
  • A grid with conditional layouts could crash if it was filtered empty. This has been fixed.
  • In the resource scheduler, an activity's tooltip is positioned better. It is now shown at the mouse cursor position, so it will remain within the screen.
  • When logging out from Universal GUI 2021.1.15b1 an internal server error was shortly displayed. This has been fixed.

 

What we'll be working on next sprint

The next sprint we'll be working on:

  • Basic import of Excel and CSV files using default values.
  • Basic filter form.
  • Apply conditional layouts to form fields.
  • Add the ability to select multiple rows on touch devices.
  • Auto-refresh a subject using the specified interval.
  • As usual, we'll also solve some issues.
  • Work in progress:
    • Offline data.
    • Maps.
 

@Tim de Lang Can you explain what is changed on the Grid responsiveness? We cannot respond to our Issue 81200 any longer, so asking here.

  • We've made switching rows in the grid more responsive.

Hi @Arie V ,

I think you had the checkmark for ‘request answer’ checked when posting your answer. You can respond if you leave that off, we do get a notification for that.

Before this release, when you switched a row once, we would wait for 300 milliseconds before it would have an effect.

Now, when switching a row once, it instantly has an effect.

Also, when switching rows very fast before this release, it would only have effect when you would stop switching for 300 milliseconds long.

Now, it has an effect every 300 milliseconds.

This 300ms threshold is based on https://lawsofux.com/doherty-threshold/

Kind regards,

Tim de Lang


Hi @Tim de Lang 

Regarding the Switch row: I do see the change of the every 300 milliseconds when switching rows, but for the instant effect when switching rows in the Grid I don’t see a noticeable change in response time in our environment. I do now see however that layout() is now triggered twice on every change in the Grid. Will raise a ticket in TCP for this and ask for further research and clarification.

By the way: when navigating through Cardlists (f.e. in your Insights > Customers application): that’s what I would call instant, a completely different experience than the Grid performance! Howcome the Grid doesn’t work that smooth either?

 

FYI regarding TCP: not being able to respond in TCP has to do with the fact that we have moved to the new TCP ticket system and all old Issues are now put to Read Only. And since this one was marked as ‘Resolved in next version’ it was not migrated.


Hi @Arie V ,

Ah the move to TMS would explain it too indeed.

I see Jasper's response on the new ticket, for people who might come across this post, I'll explain a bit more.

The change we did means that the grid now sends a row change as it happens, and then waits for 300ms before the action is performed again. So the grid and cardlist both pick up a row change immediately, however, due to the grid being a much more complex component than the cardlist, it can take a bit longer to see the effect there. That speed also depends on the way the grid is modeled. We also do have more optimizations for the grid on the backlog.

The double execution of layouts is a known issue, it's on our backlog!

Kind regards,

Tim de Lang