Release notes

Release notes Indicium (2022.1.10)

Related products: Indicium Service Tier
Release notes Indicium (2022.1.10)

Hello everyone,

In this sprint, we have added a /refresh_model API endpoint. Furthermore, PDF and HTML files now open in a new browser tab. Finally, we added a temporary solution that allows you to write files to file storage configurations using the Write File connector process action.

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

We will keep you updated regularly about Indicium's progress.

 

Table of contents

 

Indicium Universal

New refresh_model endpoint

The Refresh model functionality that can be accessed from the Developer ribbon in the Software Factory is now also available as an API endpoint in the Indicium Universal application tier.

To reload (refresh) the model, send a POST request to one of these URLs:

<web_app_root_url>/sf/<appl>/refresh_model 

<web_app_root_url>/iam/<appl>/refresh_model

Print previews from a report open in a new browser tab

When opening a print preview from a report, this preview now opens in a new browser tab instead of being presented as a download, unless the browser cannot open this file type.

Extended file storage support using Write file

In this release, we added a temporary solution that allows you to write files to file storage configurations using the Write File connector process action. This particular solution is temporary because we want to provide an easier and richer solution in a future version of the Thinkwise Platform, after which we will automatically upgrade this temporary solution to the new solution.

To take advantage of this new temporary solution, perform the following steps:

  1. Create a process variable and let the process variable ID end with a double underscore __ followed by the ID of the intended file storage location. Note that this does not work for database storage locations, only for File System, FTP, Azure and AWS storage locations.

     
    Example of a file storage process flow

  2. In the Write File connector process action, use this process variable for the File path input parameter.

  3. The value of the process variable must be the name of the file, as it will be written to the storage location. It can also be a relative path that ends with a file name. In that case, the relative path is created with the storage location as the base path, and the file is written there.

Valid examples are:

my_file.txt
my_sub_folder\another_sub_folder\my_file.txt

The rest of the Write File connector process action works as usual. The data provided in the File data input parameter is written to the storage location.

Minor fixes and tasks

  • In the Indicium OData API, when you use the \$apply standard computation (e.g. $apply=compute(year(date_of_birth) as year)) within a chained transformation, all other columns from the corresponding entity were no longer selected. This has been fixed.
  • Lookup columns were sometimes exported to Excel/CSV with a column header that used the translation of the lookup display column instead of the lookup column itself. For example, a project_id lookup column could have the column heading 'Name' instead of 'Project'. This has been fixed.

New refresh_model endpoint

The Refresh model functionality that can be accessed from the Developer ribbon in the Software Factory is now also available as an API endpoint in the Indicium Universal application tier.

To reload (refresh) the model, send a POST request to one of these URLs:

<web_app_root_url>/sf/<appl>/refresh_model 

<web_app_root_url>/iam/<appl>/refresh_model

@Sjors Niesten This sounds very promising! I assume that implementing this using a Refresh task + HTTP connector in the Universal GUI would eliminate the need for Developers to Logout > Login in order to retrieve changes made in the SF, right? How about the Clear Cache action, is that basically also done with the Refresh model POST request?

And to take it a step further: in order to do Synchronization to IAM without downtime, it would be a great addition if the message [application_model_expired] would include a Refresh button that users can click in order to Refresh the model without having to logout and log back in. Any plans to implement this in the short term, or would it need an Idea?


Hi Arie,

Thanks for your extensive feedback and questions. I will check with a colleague and a response will follow shortly.

Regards,


Hi @Arie V ,

The model refresh API result in a "Application model is expired” message while working with the Universal GUI. It is not necessary to go back to the login page and to clear the cache of the application. Only a simple browser refresh should be enough in this case. This closes up the opened documents and clears the cache from any loaded application definition.

Correct me if I am wrong ;)

To be able to continue working without downtime is a whole other question I suppose.

Kind regards, Erik


@Erik Brink You're right, I'm looking at it from the wrong perspective. Then I guess I fail to understand the use case for this refresh_model endpoint. Could you give examples of when it would be of added value to use this endpoint?


Hello Arie,

The use case for this feature is streamlining the development process, most notably when loading the application model from the Software Factory instead of IAM. As you stated, a call to this endpoint removes the need to log out and log back in again.

Calling the refresh_model endpoint by means of a client other than the Universal GUI will result in an “Application model is expired” message. However, the Universal GUI will get its own button that calls this endpoint for you, while also refreshing its own UI model. So when working with the Universal GUI, the idea is that you don't make this call yourself. Now with that said, as you know, the ability for Indicium to push messages to specific/all connected clients is a requested feature that we are looking into. It is conceivable that in the future we will implement it such that a call to the refresh_model endpoint pushes a refresh instruction to all clients. Something like this would approach the synchronization without downtime that you envision. This feature does not fully realize it, but it is a step in that direction and one that has standalone value as well.

So one use case for this feature is to allow the Universal GUI to implement the refresh model button, similar to the one that the Windows GUI has. Another use case is to make manual, headless testing of APIs through HTTP clients such as Postman or Insomnia easier during development. Let's say you're adding columns or task parameters while continuously testing your changes. Having a refresh_model request that you can send before each test removes the need to clear your cookies first.

I hope this helps.

Kind regards,

Vincent


@Vincent Doppenberg Thanks for the more elaborate explanation! Will await the follow up features then (and take note of the use case with API-based developing/testing).