Skip to main content
  • 555 Product updates
Release notes Windows GUI and Web GUI (2021.2.13)

Release notes Windows GUI and Web GUI (2021.2.13)

 Hello everyone,in this sprint, we added a new connector process action, as an addition to the OAuth connector that was recently released.You can read the GUI user manual to read about the Windows and Web GUI's features. We'll keep you updated regularly about the Windows and Web GUIs progress.Download Windows GUI 2021.2.13 here. Download Web GUI 2021.2.13 here. NewA new connector process action (Windows GUI)A new connector process action has been added: the OAuth refresh token connector. You can use it to request a new access token for OAuth if the old one is expired.It can be used, for example, to leverage the Microsoft Graph API (Azure, Office 365, Microsoft 365) on behalf of a user instead of a service account. For this process action, input and output parameters are added.This connector process action is an addition to the OAuth connector that was recently released.New connector proces action: OAuth refresh tokenIt needs an OAuth server configuration to work:OAuth serverThis server can be configured in the menu Projects > Project overview > tab Project versions -> tab OAuth servers.OAuth server configurationIt is possible to override these settings for development/testing purposes in the runtime configuration (menu Deployment > Runtime configuration > tab OAuth servers).It is also possible to override the configuration settings in IAM (menu Authorization > Applications > tab OAuth server configurations). Minor fixes and tasksThe input field validation (for example, the input must be bigger than 0) in a default editable multi-page grid was not working as it was supposed to. This has been fixed.

Related products:Windows GUI
Release notes Indicium (2021.2.13)

Release notes Indicium (2021.2.13)

Hello everyone,in this sprint, we've improved the login flow and added immediate redirection after an expired password. Also, we've added a new process action, and support for tasks with logic type 'None'. You can read all about it below!You can read the Indicium user manual to read about Indicium's features.We'll keep you updated regularly about Indicium's progress.June 9, 2021:New Indicium (Universal) has released: 2021.2.13 An issue regarding system flows was found in this release of Indicium Universal. This issue caused some system flows to fail when they should not have. This issue has been hotfixed in version 2021.2.13 of Indicium Universal.  Indicium Universal Breaking Improved Indicium's login flowIn this version of Indicium Universal, we have improved Indicium's login flow. We removed the  DefaultIdentityProvider setting and improved the user experience.When multiple options are available for logging in, e.g., with a local account against IAM, through IIS with integrated Windows authentication, or via external Identity Providers, Indicium will show the following page:Improved login flowThis page has a Remember my choice checkbox that sets a cookie for the user to skip this page the next time. This way, each user can make their own choice.If only one option is available, this page will not be shown at all, and the option will be handled as the default option. To this end, we have added the following configuration setting that allows you to disable the Sign in with local account option if, for instance, you only want to allow users to log in using an external Identity Provider like Azure AD:"LoginOptions": { "AllowLocalAccounts": false} New Platform version visible on Indicum main pageThe platform version is now also visible on Indicium's main page, underneath Indicium's version. This makes it easier to find the Intelligent Application Manager's (IAM) version. Platform version in Indicium's main page New process actionIt is now possible to renew access tokens with the new OAuth refresh connector. When you want to call external APIs from Indicium, it is sometimes necessary to refresh the access tokens. Since access tokens have a short lifetime, it can be useful to obtain a fresh one in the background. To use this new system flow action, select the OAuth refresh connector in a process action.An OAuth Server is required, and the action requires a mandatory input parameter Refresh token. This input parameter can, for example, be obtained by using the process action OAuth login connector. Note that you only need to refresh the access token when it is almost expired. It is not necessary to do this before every API call.The process action has several output parameters:Access token = New access token issued by the OAuth Server that can be used to call an API. Expires in = The lifetime of the new access token in seconds. Granted scopes = The scopes returned by the OAuth Server. Refresh token = Potentially a new refresh token when the provided OAuth Server only allows to refresh a token one time. Token type = The type of token. Most of the time it contains the value "bearer". Redirection after expired passwordIn the 2021.2 Thinkwise Platform release, we added a password expiration policy. To support this feature, Indicium will now automatically redirect a user to the Change password page once their password has expired and force a password change before access to the application is granted. Support for tasks with logic type 'None'In this version of Indicium Universal, we have added support for the Task logic type 'None' in the Software Factory, including support for output parameters. Previously, using this logic type would result in an error upon executing the task.Task logic type ‘None’ represents a dummy task that can be used in a process flow or to display a form. It can be found in the Software Factory, in the menu Processes > Task > tab Settings. Minor fixes and tasksWe have fixed an issue that occurred when using multi-row tasks in the Universal GUI. When the task execution couldn’t be started on of the selected records, for instance, due to a context procedure, the entire set would fail. Indicium will now ignore such errors, just like the Windows and Web GUIs do. We fixed an issue that caused an infinite login loop when a DefaultIdentityProvider was configured in the appsettings.json and logging in failed because the user could not be matched with a valid user in IAM. Tasks with a mandatory MultiSelectParameterId parameter would show an error. This has been fixed. Indicium treated all error messages coming from the database server as fatal errors, causing the Universal GUI to be unable to continue editing a record or entering task parameters and retrying. This included situations that were not fatal and could be resolved by the user, such as tsf_send_message and raiserror calls or constraint violations. As of this version, Indicium will treat all user-defined errors such as raiserror and all constraint violations (PK, FK, CHECK, UNIQUE, and NOT NULL) as non-fatal, allowing the user to correct their input and try again.  

Related products:Indicium Service Tier
Release notes Universal GUI (2021.2.12)

Release notes Universal GUI (2021.2.12)

Release notes Universal GUI 2021.2.12 2021, June 11Changed beta to full release (2021.2.12). Added two fixes: An asterisk was shown inside the grid editor if it was a required field. This was unintended since the asterisk is shown in the grid header already. This has been fixed. The percentage control was misaligned between edit and non-edit, causing it to move when you switched. This has been fixed.  Hello everyone,in this sprint, we've added another process action. Moreover, we extended the refresh and auto-refresh capabilities of the Universal GUI, and we improved the conditional layout in grids.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 the Universal GUI.We'll keep you updated regularly about Universal's progress. Universal GUI version 2021.2.12Like with every blog, we've released a version so you can test the Universal GUI out for yourself. 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.2 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 using the latest version of Indicium Universal.Download the Universal GUI version 2021.2.12 hereThis is a beta release, which can be used to test the new features. This release is not suitable for use in a production environment. The full release will be available this Friday. New Support for 'Change prefilters' process actionIt's now possible to use the Change Prefilters process action in the Universal GUI. With this process action, you can enable or disable prefilters that aren't hidden or locked. When trying to change a locked or hidden prefilter, the process action will follow the red arrow. Support for refresh subjectPreviously, when changing rows after editing a row in an auto-saving default editable grid, the subject wouldn't refresh. This improved the performance of the default editable grids.Now, we've added support for refreshing the subject. This can be configured by setting the option Refresh after update to "Subject" or "Document". It is possible to disable refreshing after updating by setting Refresh after update to "None".This option is available in the menu User interface > Subjects > tab Default > tab Settings > tab Performance. Support for auto-refresh subjectIt's now possible to use auto-refresh in the Universal GUI. When configured, the Universal GUI will refresh the subject according to the chosen interval. Auto-refresh only has an effect when the subject is not in edit mode. When an auto-refresh subject has children, these will be refreshed as well at each auto-refresh cycle.The auto-refresh setting is available in the menu User interface > Subjects > tab Default > tab Settings or tab Variants > tab Settings. Changed Change in conditional layout in gridWe've changed the way conditional layouts are shown in the grid. Now they fill the entire cell, rather than just the value with a 5px padding. This means that empty cells with a conditional layout will also be entirely colored. Besides, the text color set in the conditional layout is applied correctly now. Improved error handling when trying to save or execute a taskPreviously, when editing or executing a task, the Universal GUI assumed an error would always be "a mandatory field is empty". Our Indicium team has improved the error handling, which allowed us to do the same. Rather than a generic validation error, we will now show the TSFMessage. This improvement leads to more specific errors. Minor fixes and tasksWe've fixed a bug where you couldn't activate a numeric or combo control by clicking on the placeholder. In a form, fields were not placed side-by-side when they were supposed to. This has been fixed. We fixed an issue with an optional lookup field in the filter form. The column was filtered with an invalid value, while no filter value was specified yet. The Refresh button was not animated when it was pressed manually. This has been fixed. We fixed some possible crashes after task executions from the menu or hidden task executions triggered by a process flow. The crashes occurred when the user input triggered validation messages. An asterisk was shown inside the grid editor if it was a required field. This was unintended since the asterisk is shown in the grid header already. This has been fixed. The percentage control was misaligned between edit and non-edit, causing it to move when you switched. This has been fixed.  What we'll be working on next sprintIn the next sprint, we'll be working on:Pagination - The ability to paginate through large recordsets. Quick filter - Quickly filter using the currently selected value in the grid. Cortex barcode scanner - Implement the Cortex barcode scanner to support more barcode formats. Additional license required. Process flow action: Restore prefilters - Follow-up action to restore the default prefilters. And of course, we'll solve some issues.Work in progress:Offline data Excel style filter Solving date/time control issues (eg, settings, display, default values) Pivot grid field list

Related products:Universal GUI
Release notes Universal GUI (2021.2.11)

Release notes Universal GUI (2021.2.11)

Hello everyone,here's another release from the Universal GUI team. We've added a first version of the form conditional layout, and a lot more.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 the Universal GUI.We'll keep you updated regularly about Universal's progress.May 21, 2021:Updated beta version is available in TCP:  2021.2.11-b2May 26, 2021:Changed beta release to full version: 2021.2.11 Fixed bug in the beta where the mandatory asterisk would not be visible if the label was empty Fixed bug in the beta where date/time/datetime controls could not be activated properly if they were empty Fixed bug in the beta where fields would not be placed next to each other in non-edit mode Fixed bug in the where the contents of lookup fields would be empty in edit modeUniversal GUI version 2021.2.11Like with every blog, we've released a version to test the Universal GUI out for yourself. 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.2 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 using the latest version of Indicium Universal.Download the Universal GUI version 2021.2.11 hereNew Redirection after expired passwordIn the 2021.2 Thinkwise Platform release, we added a password expiration policy. To support this feature, Indicium will now automatically redirect a user to the Change password page once their password has expired, and force the password to be changed before access to the application is granted. Filled form fields and form conditional layoutIn this sprint, we've added a first version of the form conditional layout. To make this possible, two problems had to be solved first:With the current way form fields were styled it was not clear what exactly would get the background color. Besides, it was hard to discern where a form field starts and ends, especially when a field spans multiple rows and the colored bottom border falls outside of the form's visible part.To solve these issues, we’ve decided to implement filled form fields. These give more space to the content so you can apply color to the background. Applying a default color makes it easier to see where the form fields start and end.Since this is a major change, we've decided to make the color optional, so that's disabled by default. To enable it, you have to set useFormFieldBackgroundColor to true in the config.json. The spacing difference is still available to accommodate form conditional layouts.The conditional layout does not yet support the following controls:Radiobutton. Signature. Checkbox. HTML.This is what the filled form fields look like:Filled form fieldsThis is an example of the form conditional layout: Bold/italic conditional layout for the resource schedulerIt is now possible to use bold and italic conditional layouts in the resource scheduler. "Remember me" checkbox in the login pageIt's now possible to stay logged in for two weeks by enabling the *Remember me* checkbox in the login page:Remember me (for two weeks) Grid: double click task executionNow the Thinkwise Platform version 2021.2 has been released, task execution by double-clicking a grid record is available. In the Software Factory, use the checkbox Grid double click in a table task to enable this. This checkbox can be found in the menu User Interface > Subjects > tab Subjects > tab Links > tab Tasks. See the Thinkwise Platform 2021.2 release notes. The Universal GUI will choose the first enabled task to execute. This is the same as in the Web GUI, as explained in this blog. Lookup values in the filter formIn the filter form, lookup controls are now enabled. The dropdown field in the filter form will sum up all separate translations of the lookup column available in the current (pre)filtered data set. Dependent lookup columns could be filtered separately but will reduce each other's options, too, when combined. Directly submit a task while scanning barcodesThe barcode scanner control as a task parameter now contains some exclusive logic when it is the last control in the dialog. When the code is scanned and the control receives a Tab key, the task is submitted directly. This can be used to make barcode scanning very fast in a production environment using physical scanners. Changed Autosave is triggered in a parent subject if a child is refreshed manuallyAuto-save is now triggered in the parent subject if the child is refreshed manually. This way, the user can force the parent to refresh when the application is in auto-save mode.The auto-save mode can be set in the menu User interface > Subjects > tab Settings > tab General. Minor fixes and tasksIn a process flow, when zooming into a detail was followed by the actions Activate detail or Add/Change row, the last action always started in the first zoomed-in document when the flow was executed repeatedly. This has been fixed. It now selects the correct instance. When a detail tile was open, it wasn't possible to open the menu item from the sidebar. This has been fixed. The result is two open documents, one with the screen type Main and the other with the screen type Zoom. We've fixed that an error appeared after adding a record that fell outside the filtered GUI set. The error was: "Notify record nog found failed. Error: bad_request". The DateTime controls are now visually comparable to the other controls.  What we'll be working on next sprintThe next sprint we'll be working on:Auto-refresh a subject using the specified interval. Process flow actions: Activate form - Follow-up action to activate the form component. Activate grid - Follow-up action to activate the grid component. Set prefilters - Follow-up action to set prefilters. Close document - Follow-up action to close a previously opened document. Work in progress: Offline data. Quick Filter. Pagination. Pivot grid enhancements.

Related products:Universal GUI
Release notes Windows GUI and Web GUI (2021.2.12)
Release notes Indicium (2021.2.11)

Release notes Indicium (2021.2.11)

Hello everyone,In this sprint, we added some new features, like standard computations and the possibility to preload models at startup, to reduce the response times. We also solved some issues.You can read the Indicium user manual to read about Indicium's features.We'll keep you updated regularly about Indicium's progress.Download Indicium Universal release 2021.2.11 here. Download Indicium Basic release 2021.2.10 here (no new release). Indicium Universal New location 'Debug' for messagesIn the upcoming Thinkwise Platform release (version 2021.2) we have introduced a new Location value for messages, called 'Debug'. Messages using this location will not appear to the user, but Indicium will log them in the database event log.The message location indicates how messages are displayed. It is set in the menu User interface > Messages.The database event log can be accessed from the Universal GUI, the root page of Indicium, or by navigating directly to /account/ui/dbEventLog. It requires you to log in with a user that is a Development Mode administrator in IAM. Error message for a failed login with an external identity providerPreviously, when a user logged in through an external identity provider (e.g., Azure AD), there was no visible feedback that something went wrong if the credentials were correct, but the corresponding user in IAM was configured wrong. For example, a user was able to log into the authorized app through an Azure AD tenant, but:IAM does not contain a user entry corresponding to the email of the user that logged in. Or: IAM found a corresponding user, but this user is not configured with the External authentication type.The following generic login failed message is now shown to the user that tries to log in:Login failedSince these errors usually occur due to misconfigurations in IAM, Indicium logs more details about what went wrong for the user inside the error log. The error log can be downloaded by IAM administrators from Indicium's root page. Configuration settings to preload models at startupFor platform versions 2021.1 and higher, a configuration setting is added that allows you to specify application models that Indicium must try to preload from IAM during startup. This can help to reduce the response times for the users who are the first to access these applications after a cold start or restart.The feature can be configured under the Applications:Preload configuration key by specifying either the ID or alias of the applications that need to be preloaded.Notes:For applications containing system flows, this feature has little to no effect. The reason is that Indicium already implicitly loads applications containing system flows during startup, as it needs to know the model before it can execute the scheduled flows. Due to the way that Indicium handles loading models from Software Factory sources, this feature only works for models synced to IAM. If a new version of a preloaded model/application is synced to IAM, Indicium will not automatically preload the new version.Example:By adding the following section to the appsettings.json configuration file, Indicium will try to load the models for the specified applications during startup:{ "Applications": { "Preload": [ "itst", 23, "does-not-exist" ] }}This process is also logged to the default Indicium log:Preload log  Changes for Indicium Universal New system flow scheduler for 2021.2For the upcoming Thinkwise Platform release (version 2021.2), we have revised how the system flow schedules are communicated from IAM to Indicium, and how Indicium schedules them. These changes have improved the reliability of Indicium's scheduling to the point where it will never skip a single instance of a schedule. At the same time, the load on the database server caused by Indicium's polling is reduced to nearly zero. Minor fixes and tasks for Indicium Universal Process flows starting with the process action Execute Tab Task would not start when executed from an empty table or view. Instead, it would be interpreted as an Execute Task process action. This has been fixed. We fixed an issue where Indicium returned a 500 internal server error when using a DateTime output parameter in a task. The task was executed successfully, but the output parameter was not correctly converted to a corresponding OData type before writing the value to the response body. There was an issue with ‘grouping by’ two columns of the same navigation property. A request similar to the one below would result in an error, even though it's a correct request. This has been fixed. Now the groupby is performed correctly. /project_sub_project?$apply=groupby((transl_project_id/project_id, transl_project_id/project_name)) In very rare cases, Indicium's internal application model cache could become corrupt, causing requests to applications to throw errors until Indicium was recycled. The most notable example was when the application model was loaded or refreshed while synchronizing. As of this version, Indicium's application model cache is fully robust against these types of issues by automatically invalidating and refreshing incorrect application models.

Related products:Indicium Service Tier
Thinkwise Platform Release 2021.2

Thinkwise Platform Release 2021.2

We are all very excited to announce version 2021.2 of the Thinkwise Platform.Our highlighted feature for this release is multi-tenancy in IAM. By implementing multi-tenancy, multiple customers will be able to work in the same IAM instance. The feature will make it possible to designate users and user groups to a tenant, thereby providing those users with a completely separate environment within IAM. This eliminates the need to provide each customer with their own IAM instance as they can now safely work under their own tenant in one IAM instance.Multi-tenancy in IAMOf course this is not all that is included in this release. Version 2021.2 brings many new features and changes. For a comprehensive overview, please check out the Release notes. Some other highlights of this release include:Partitioning OAuth 2.0 connection process actions Sequences for use in functionality Fallback languages for applications Module authorization in IAM Password expiration settings Planning poker for requirements Prepare query for unit tests Make domain elements unavailableThe Thinkwise Platform 2021.2 is available for download in TCP now! Coming soonA few components of this release still need a bit more time before we can release them. These are:OAuth connector for the Windows GUI TSF_msg location debug in Indicium Time and datetime short in the Universal GUIRest assured that we are doing everything we can to bring these to you as soon as possible. We will keep you updated! Update regarding Thinkwise Platform release eventsAs part of our roadmap for 2021 and on, our focus will shift from releasing a few large releases each year to making smaller but more frequent releases. Because organizing a release event for each of these releases would be impractical and would take a large amount of your time to attend, we are instead aiming to hold one event every year. Unfortunately, that means there will be no event for the release of the Thinkwise Platform 2021.2. We will of course keep everyone up to date on when the next release event will be held. We hope to see you at our first annual event!

Related products:Software FactoryIntelligent Application Manager
Release notes Indicium (2021.2.10)

Release notes Indicium (2021.2.10)

Hello everyone,In this sprint, we've added more awesome features and solved some issues.You can read the Indicium user manual to read about Indicium's features.We'll keep you updated regularly about Indicium's progress.Download Indicium Universal release 2021.2.20 here. Download Indicium Basic release 2021.2.20 here. Support ExpiredAs per our Lifecycle policy, the support for the Thinkwise Platform version 2019.1 has expired. Indicium Universal File extension whitelists per storage configurationWe've implemented support for the file extension whitelists per storage configuration. This feature will be available in the soon-to-be-released Thinkwise Platform version 2021.2.As of this version, file extension whitelists need to be configured per storage configuration in the Software Factory. For more information, check the upcoming Software Factory 2021.2 documentation and release notes.Note: this will replace the current setting in Indicium's appsettings.json. Basic support for importIn this version of Indicium, we have added an API for importing .xls, .xlsx and, .csv files into subjects in the Universal GUI. It is an initial, basic version of the API that does not yet support all the import features currently available in the Windows GUI. We will further improve this implementation and remove the limitations in future versions of Indicium.The following limitations apply:The rows to be imported must be in the import file's first worksheet. The import file must contain column headers, and they must be on the first row. The column headers must be translated into the language of the user that is calling the API. The data must start on the second row, right below the headers. In the import file, lookup columns should contain their display value, not their database value. In the import file, columns with domain elements should contain their element translations, not their database values. The elements must be translated into the language of the user calling the API. Columns are mapped automatically based on their translation, which cannot be influenced right now. The Import permission checkbox in IAM does not affect this API at the moment, but the Insert permission box must be checked for at least one of the user's user group roles. These checkboxes are available in the menu Authorization > User groups > tab Effective group rights > tab Table rights > tab List.As a rule of thumb, files that are exported by Indicium through the export API can be successfully imported using the import API, barring UNIQUE constraints on data.Some additional noteworthy points that apply to this import API:Each record in the import file is treated as a separate insert made by the user that is calling the API. Meaning: Users need insert permissions. Default and layout logic apply and are called with default_mode=0, layout_mode=0, and import_mode=0. The layout is called once before the import to ensure that the add_button_type is regular. The default and layout procedures are called after every cell if the corresponding property has default/layout input checked. The layout procedure is called after processing the last cell to determine if the confirm_button_type is regular. Users cannot circumvent column-level authorization through the import API. Readonly, Hidden and Unauthorized columns that are present in the import file will be ignored. Context values cannot be changed. This means that if an import is performed on the 'sub_project' table in the context of a project parent record with 'project_id 1', that all records from the import file will be imported with 'project_id 1' as well. Expressions will be evaluated, but only if they are an input parameter for the default or layout procedure, otherwise they serve no purpose. Unchecking the default/layout input checkboxes for expression columns greatly improves performance.The import API works in a very similar way to the resource staging API. The first step is staging an import resource:POST/iam/my_appl/my_table/stage_importOr, if you want to import into a detail subject in the context of a parent record:POST/iam/my_appl/my_parent_table(1)/detail_my_detail_table/stage_importThe import file must be passed along as a binary file to the stage_import request. Indicium will respond with a '201 Created status' code upon success and return a Location header that points to the newly created import resource.The import can then be started by calling the commit action on the import resource in the same way as it would work with resource staging.POST/iam/my_appl/_staged_import_my_table(<guid>)/commitIndicium will give the following response after the import has completed:200 OK{ "successful_records": 293, "failed_records": 1, "errors": [ "Failed to import row 187. <some reason>" ]} Report processing with multiple workers (load balancing)We've added settings to Indicium that can configure a report type to use a plugin to spawn multiple worker processes. This can be used to increase request throughput at the cost of more RAM resources.Reporting:<ReportType>:Enabled, can be set to false to skip loading the dependency entirely. The default is true in order to remain consistent with previous Indicium releases. Reporting:<ReportType>:WorkerCount, controls how many plugin processes are spawned for that report type. The default is 1 in order to remain consistent with previous Indicium releases. Reporting:<ReportType>:Preload, can be set to true to make Indicium spawn and warm up the plugin processes by exporting a dummy report during startup. This can reduce the time users have to wait for their report when the initial request to a plugin process is made. Note that the preload currently does not hit data sources contained in the report. So even with preload enabled, there are still some assemblies that may be loaded on the initial request. The default for this setting is false to remain consistent with previous Indicium releases (wait until the first request for a report type is made before starting the process). The report types that these settings can be configured for are:CrystalReports DevExpress SSRS:Local SSRS:Server.Example configurations:{ "Reporting": { "CrystalReports": { // Start and preload a single plugin worker process for Crystal Reports. "Preload": true }, "DevExpress": { // Start and preload 3 plugin worker processes for DevExpress reports. "Preload": true, "WorkerCount": 3 }, "SSRS": { // Disable SSRS local and server report types. "Local": { "Enabled": false }, "Server": { "Enabled": false } } }} Minor fixes and tasksFixed lookups that are filtered by an expression were not cleared if the expression value changed. For example, the column project_id is an expression that filters the lookup sub_project_id. Then, the column hour_id is changed by the user, causing the project_id expression value to change. Now, the sub_project_id column should be cleared. Indicium differed from the Windows and Web GUIs in this behavior, this has been corrected. We've fixed an issue with logging in on Indicium's login screen without specifying a returnUrl parameter in the query string. The min/max constraint validation is now checked before the length/precision constraint validation. This fixes the strange behavior that when a numeric(4,2) column has a maximum value of 60, the error message for the value 80 is different than the error message for the value 100. Indicium Basic Extended property force_recompileThe extended property force_recompile, which was already available in Indicium Universal, has now been implemented in Indicium Basic as well. This extended property accepts a comma-separated list of table/view names and forces the SQL Server to always recompile the query plan for these tables/views, in order to fix performance issues. Because Indicium uses parameterized queries, the SQL Server sometimes reuses existing query plans when it shouldn't, leading to the queries taking much longer than necessary.Please note that forcing recompilation of the query plan causes a small performance hit as well, so only use it when there is a performance issue and this measure makes a noticeable difference. Minor fixes and tasksFixed an issue that caused authentication to fail when it shouldn't for authentication type ‘IAM’. Fixed an issue that caused Indicium to be unable to call a task's stored procedure in rare cases. When creating a task in de Software Factory, an Object name will be suggested using the task's ID or Alias and some type of prefix or suffix, depending on the platform. This Object name is the name of the procedure on the database. Instead of directly using the Object name to call the stored procedure, Indicium used the same convention that the Software Factory uses to produce the default Object name. In most cases, this worked, but when a developer deviated from the default Object name, Indicium would fail to call the stored procedure. This has now been fixed.

Related products:Indicium Service Tier
Release notes Universal GUI (2021.2.10)

Release notes Universal GUI (2021.2.10)

May 4, 2021:Changed beta release to full version: 2021.2.10Hello everyone,in this sprint, we've added more awesome features, like multi-row selection for touch devices, basic import functionality, and a basic filter form. We'll also give you a sneak preview of the upcoming conditional form layout!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 the Universal GUI.We'll keep you updated regularly about Universal's progress. Universal GUI version 2021.2.10Like with every blog, we've released a version so you can test the Universal GUI out for yourself. 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.2 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 using the latest version of Indicium Universal.Download the Universal GUI version 2021.2.10 here. Breaking Support expiredAs per our Lifecycle policy, the support for the Thinkwise Platform version 2019.1 has expired. New Multi-select for touch devicesFor mobile and tablet devices, we now support multi-select in our Grid component. By long-pressing on a row, the checkboxes will appear, meaning you can select the rows. This is useful when you want to execute a task on multiple rows. You can turn off the multi-selection by either long-pressing on a row or using the Cancel [x] icon at the top bar. Here are also the currently selected rows displayed. A Select all [-]/Deselect all [v] button is also available in the header of the Grid.Since the top bar displays the selection, only one subject can have multiple records selected at the time. A selection on other subjects will be rejected.Note: you can't use multi-select in Edit mode.Multi-select for mobile and tablet Import screensIf a tab allows importing and adding records, a basic version of the import functionality is available now. This basic version is limited to .csv, .xls and .xlsx files. For the API limitations, please refer to the Indicium 2021.2.10 release notes.Basic import functionality Influence field focus in task/report parameter popupsIn release 2021.1.14.1, we've added support for focusing on a specific form control while activating edit mode and after updating a control value. On Add/Edit/Copy, the Universal GUI places the cursor in the first editable control. For replacing the cursor after updating a control value, the parameter cursor_to_col can be set in the default stored procedure on the database, see Default.Now we've introduced the same for task and report parameter dialogs. Also, the initial focus on open is checked and fixed. This puts the cursor in the first editable parameter unless the default has set a cursor_to_col_id. Filter form as a screen component inside a documentThe Universal GUI will now present a basic filter form to the user when the screen type of a document requires it.The presentation differs from what you're used to in our other GUIs. The supported columns are placed side-by-side, and there is no option (yet) to change the condition to filter the data set. The default is always equal to.The following columns are not yet supported:Lookup columns. Columns with data type 'Binary'. Columns with these domain Control types (as set in the menu Data > Domains > tab Form > field Control ): Date, DateTime, Time, Label, Group header label, Group header icon, Html, Rtf, Sqleditor, Multiline, Image link, Image upload, Image BLOB, File, File upload, Signature, Video link.The set will be filtered directly after a field is changed.Screen component: Filter formChanged Improved numeric validation message translationWe've improved the translation message for a numeric field in which a value above the bounds of the datatype was entered.Was: ... "is not a number." Now: ... "has too many digits (was ...)". Minor fixes and tasksWe've fixed the multi-select for grid records, holding the [Ctrl] or [Shift] key. The conditional layout row background used to override the active row background. This has been fixed, the active row background will now take precedence. In some cases, the 'An error has occurred' popup kept showing up after an error in the Universal GUI. This has been fixed. When this happens now, the page is reloaded so you will start with a clean sheet.Fixed error loopWe have fixed that the dropdown wrongfully opened when focussing on a lookup field. Instead of opening the dropdown, the Universal GUI will now just focus on the lookup field. This also fixes another problem with a similar scenario where a dependent lookup would get cleared when a user closed the dropdown. For example, the lookup Subproject would get its value cleared when the lookup Project was focused by cursor_to_col_id, and the dropdown was closed by the user. We've fixed the issue where the user needed to click the Save button twice when the focus was still in the last changed field.  Coming up: filled form fields and form conditional layoutAt the moment, we're working on form conditional layout. However, this is difficult to achieve with the current way form fields are styled. Because what, exactly, would get the background color?Besides this, it's hard to discern where a form field starts and where it ends, especially when a field spans multiple rows and the colored bottom border falls outside of the visible part of the form.To prepare for form conditional layout and solve the mentioned issues, we’ve decided to implement filled form fields. We’re still putting the finishing touches on them. The next step will be to add the conditional layout.This is what it will look like:Coming up: form conditional layout What we'll be working on next sprintThe next sprint we'll be working on:Applying conditional layouts to form fields. Work in progress: Offline data Maps Quick Filter Pivot grid enhancements And we'll solve some issues.

Related products:Universal GUI
Release notes Windows GUI & Web GUI (2021.2.10)

Release notes Windows GUI & Web GUI (2021.2.10)

Hello everyone,in this sprint, we've made the user's application language available, and we've added support for features that will be introduced in the soon-to-be-released 2021.2 Thinkwise Platform. Of course, we've also fixed some issues.You can read the GUI user manual to read about the Windows and Web GUI's features. We'll keep you updated regularly about the Windows and Web GUI's progress.Download Windows GUI 2021.2.10 here. Download Web GUI 2021.2.10 here. Breaking Platform support for 2019.1 expiredAs our Lifecycle Policy describes, the support of the Thinkwise Platform version 2019.1 has expired. The same applies to all outdated support codes for the Windows GUI and Web GUI.This also means the support for the SCL data layer has expired. It has to be replaced by our new Indicium service layer. For more information, see our blog post, Bye, bye, soap service tiers. New features Application language for session_context (Windows GUI & Web GUI)A user's application language can now be made available in the Windows GUI and Web GUI, by using the session variable tsf_appl_lang_id. This variable makes a user's language available to your end application instead of only for IAM. The session variable can be read by using the following statement: select SESSION_CONTEXT(N'tsf_appl_lang_id').You could, for example, make a default stored procedure return a translation or add a translated column to a view without turning it into a lookup column. Azure Active Directory authentication (Windows GUI & Web GUI)We've introduced support for a new authentication method using an Azure active directory account to log in to an application.To log in using the Azure active directory account, a user should be created by selecting the External authentication method. The integrated authentication method will automatically be used by the Windows GUI and the Web GUI. A user name and a password are required.This authentication method will be available as of the 2021.2 Thinkwise Platform release. More information will follow then. New message type: 'Debug'We've added a new message type: 'Debug'. It only logs the messages in the debug console for users with developer mode enabled. For more information, see Message location. Minor fixes and tasksWeb GUI - The issue that horizontal scrolling was not in sync between the grid header and the data on the Web GUI has been fixed. Web GUI - We've fixed the issue where the Save and Cancel buttons were disabled when adding a new row in the grid. Web GUI - The extended property DevReportZoom is now also available in the Web GUI. This extended property sets the default zoom factor for the DevExpress report viewer. For more information, check our documentation.

Related products:Windows GUI
Release notes Windows GUI and Web GUI (2021.1.17)

Release notes Windows GUI and Web GUI (2021.1.17)

Hello everyone,in this sprint, we've added some nice new features. For example, for the Windows GUI, code inspiration will be close at hand from now on, with a ThinkStore shortcut in the ribbon. And for DevExpress report users (Web GUI), logging has been added. You can read about this and more below. Besides all this, we've added support for the soon-to-come 2021.2 platform release.You can read the GUI user manual to read about the Windows and Web GUI's features. We'll keep you updated regularly about the Windows and Web GUI's progress.Download Windows GUI 2021.1.17 here. Download Web GUI 2021.1.17 here. New features ThinkStore shortcut in the ribbon (Windows GUI)A shortcut to the ThinkStore has been added to the Developer ribbon.The ThinkStore is part of the Thinkwise Community and contains code samples and model examples, for you to use. Just click on it for a lot of coding inspiration from fellow developers, and feel free to add your own!Also, the ribbon icons for Documentation and Community have been updated.Visit the ThinkStore! New report mailer parameter for Outlook (Windows GUI)A new report mailer parameter has been added for Outlook: sent_on_behalf_of_name. Set this parameter if you want to send the report on behalf of a different email address. The data type is 'string'. This parameter is not available for SMTP. Logging for DevExpress report (Web GUI)This release logging has been added to DevExpress reports. We've also added expanded logging functionality to the Web GUI. The log files can be found in the Logs folder in the application directory.Two extended properties have been added to use this function:WriteLogToFile to turn on the logging feature. LogSeverity to set the log level for info/warning/error.These parameters are used runtime by the Web GUI: the logging will start after someone logs in on the Web GUI. When a problem in your production environment occurs, there's no need to restart the application and log out all the users. Neither is it necessary to run the Web GUI in developer mode. Minor fixes and tasksWeb GUI: In multiple selection mode, it wasn't possible to deselect nodes in a tree list. This has been fixed, now it is possible to change your selection. Web GUI: We've fixed the problem for the file system manager that at a file upload, existing files were sometimes overwritten by new files with the same name. The cause was that in a slow network, the necessary check was skipped due to a timeout. An exception has been added for this check. Web GUI: We've fixed an issue where the Web GUI didn't return to an already opened document after a user clicked the menu item again or after a process flow triggered it again.

Related products:Windows GUI
Release notes Indicium (2021.1.18)

Release notes Indicium (2021.1.18)

Hello everyone,In this sprint, we've added more awesome features and solved some issues. Some of the features involve support for the major 2021.2 platform release that will be coming up soon, e.g. the possibility to set a fallback language, and the OAuth login connector process action.You can read the Indicium user manual to read about Indicium's features.We'll keep you updated regularly about Indicium's progress.Download Indicium Universal release 2021.1.18 here. Download Indicium Basic release 2021.1.18 here. Indicium Universal Application fallback language supportWe've added support for the application fallback language feature. This feature will be available as of version 2021.2 of the Thinkwise Platform.Indicium normally uses the user's language for translations. However, the user's language doesn't always have available translations in an application, which means that Indicium would be unable to translate objects in the application model. To offer more control over this, an application can now have a fallback language that will be used whenever the user's language has no translations. User language now accessible on SQL Server as a session variableIndicium now sends the user language to the SQL Server using the session variable mechanism. The session variable can be read by using the following statement:select SESSION_CONTEXT(N'tsf_appl_lang_id')This will return the language of the user, for instance, ENG or NL. Support for new 2021.2 process action: 'OAuth login connector'Version 2021.2 of the Software Factory will contain a new process action called the 'OAuth login connector'. This process action enables developers to seamlessly integrate the OAuth 2.0 Authorization Code flow inside of a process flow, resulting in an access token that can be used to make API calls on the user's behalf. More about this process action can soon be read in the documentation and release notes of the 2021.2 platform release.Please note that this process action also has a component in the Universal GUI that needs to be implemented before it will work. Changed: Easier access to Indicium's query log pageIndicium's query log (which is akin to the Windows GUI's debug window and is available at /account/ui/dbEventLog) was only accessible to Root administrators in IAM (ie users who could also download Indicium's error log). As of this version of Indicium, users only need the Developer Mode administrator role in order to gain access to this page. Minor fixes and tasksWe've fixed the issue that the Universal GUI was unable to load tables/views with multiple file columns using database storage configurations with the same BLOB storage column. We've fixed an issue that prevented the Universal GUI from continuing a process flow after a user clicked 'No' at a delete record confirmation. With this fix, the Universal GUI can instruct Indicium to continue the process flow via a red or blue process step. Using response_mode=form_post in the /connect/authorize call to Indicium as OpenID Identity Provider failed to redirect after signing in. Instead, an error occurred regarding a script being in violation of the Content-Security-Policy. This has now been fixed, making response_mode=form_post a viable option next to response_mode=query. We've fixed a redirect issue after resetting a password. This issue only occurred when Indicium was used as an OpenID Identity Provider and the 'Forgot password' link was clicked after being redirected to the login page by the OpenID client. The issue was that the web application segment in the URL would be duplicated (e.g. https://server/indicium/indicium/account/ui/login). In combination with AWS storage configurations, the subfolder that can be configured at columns and parameters would not work. This has been fixed. Indicium Basic Session variables now available in Indicium BasicWe have introduced three session variables for projects using SQL Server as their RDBMS platform, like in Indicium Universal. These session variables can be read from the SQL Server's SESSION_CONTEXT.tsf_ipv4 - contains the IPv4 address of the client that made the request (null if the connection was established with IPv6). When using proxies, it is necessary to apply the X-Forwarded-For header to get the correct IP address (for more information, see the Thinkwise Docs). tsf_ipv6 - contains the IPv6 address of the client that made the request (null if the connection was established with IPv4). When using proxies, it will be necessary to apply the X-Forwarded-For header to get the correct IP address (for more information, see the Thinkwise Docs). tsf_appl_lang_id- contains the language of the user who sent the request. Azure AD authentication available in Indicium BasicIndicium Universal already supports Azure AD authentication through OpenID. It allows you to configure an extra sign-in button on Indicium's login page that redirects you to Microsoft's login page, where you can sign in with your Azure AD account. This is very convenient if you want to enable your users to use the account they're familiar with to sign in to a Thinkwise application.Since Indicium Basic doesn't have a login page, we found another solution by adding support for Azure AD authentication via an Azure SQL Database. Azure SQL Databases allows you to "create contained users mapped to Azure AD identities". In turn, Indicium Basic will allow users to sign in with these contained users.In IAM, the Authentication type for the corresponding user has to be 'External'. This is the same as how you would configure the user for Azure AD authentication via OpenID. Minor fixes and tasksWe've fixed the issue that the Universal GUI was unable to load tables/views with multiple file columns using database storage configurations with the same BLOB storage column.

Related products:Indicium Service Tier
Release notes Universal GUI (2021.1.15)

Release notes Universal GUI (2021.1.15)

April 9, 2021Changed 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.15Don'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-applicationIt 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 changesContinue changing your password? Support for OpenIDWhen 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 visibleAfter clicking Continue, the user is redirected to the Indicium login screen:Login with OpenIDAfter signing in, the user is redirected back to the Universal GUI and logged in automatically. Support for "Delete row" process actionUniversal 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 executionThe 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 tabThe 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 flowIn 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) performanceWe'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 improvementsAfter:Performance after improvementsOther performance improvementsThe 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 tasksFor 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 sprintThe 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.  

Related products:Universal GUI
Release notes Windows GUI and Web GUI (2021.1.16)

Release notes Windows GUI and Web GUI (2021.1.16)

Hello everyone,in this sprint we've solved some issues and, most importantly, we've added support for default initial default expressions when updating or importing data.You can read the GUI user manual to read about the Windows and Web GUI's features. We'll keep you updated regularly about the Windows and Web GUI's progress.Download the Thinkwise Windows GUI. Download the Thinkwise Web GUI. New Initial default expressions in update and import (Windows GUI)Windows GUI 2021.1.15 (hotfix) and .16 (this release) in combination with Indicium Basic 2021.1.16 now supports initial default expressions in the Update and Import functionality. This means that the default expressions are executed when the import/update column mapping screen is opened. This also works for tasks and reports. Please note that this does NOT work for process variables.Update or ImportDefault values (type: expression) are set in the menu Data > Domains > tab Tables > tab Columns.Example: Default value type “Expression”, and QueryThe result when importing data:Example: initial default expression in import screen Changed No more extra download pop-up for reports and exportsDownloading reports or Excel exports now runs directly in the Web GUI, without the extra download popup dialog. This popup was deemed unnecessary. Fixes and tasks(Web GUI) Using arrow navigation in a context that shows, hides, or disables a part of the GUI resulted in an error and an incorrect selection. This has been fixed. The error won't occur any longer (Web GUI) Navigating with the arrow key rapidly through the grid in the Web GUI resulted in an incorrect row selection. This has been fixed, now the correct row is selected. (Web GUI) Refreshing a page no longer restores a cube to its default view. (Web GUI) We've fixed a problem with conditional formatting in background detail tabs in Web GUI forms. Now the conditional formatting is displayed as it should, refreshing manually is no longer necessary. In multiple selection mode, it wasn't possible to deselect nodes in a tree list. This has been fixed, now it is possible to change your selection. 

Related products:Windows GUI
Release notes Indicium (2021.1.17)

Release notes Indicium (2021.1.17)

Hello everyone,this sprint, we've added more awesome features to Indicium Universal, the most important of which is the migration to .NET 5. Below you can read about the benefits of this migration. We also worked hard, among other things, on authentication and further improved security.We'll keep you updated regularly about Indicium's progress. You can read the Indicium user manual to read about Indicium's features. Download Indicium 2021.1.17 here. Indicium Universal BREAKING: Migration to .NET 5As of this version, Indicium Universal will be running on .NET 5. This means that in order to run Indicium Universal on IIS, you need to install the ASP.NET Core 5.0.4 Windows Hosting Bundle.The update to .NET 5 offers the following advantages compared to Indicium Universal version 2021.1.16:Platform independence: all releases of Indicium Universal from this point onward can run on Linux and macOS as well. Performance: this version of Indicium Universal has multiple big and small performance improvements compared to 2021.1.16. The two request types which benefit most are those that return a lot of data in the response and smaller requests which were already quite fast. Overall, you can expect an improvement of around 10-40% in response times, depending on the request and various variables. Maximum load: though hard to quantify, this version of Indicium Universal will be able to handle more load than version 2021.1.16, meaning that a single instance of Indicium can handle more concurrent users. Data usage: the response sizes are roughly 30-40% smaller in this version of Indicium Universal. This is part of the performance improvement described above, but it also means that clients will use less data and that the performance improvement will scale higher on poor network connections.The update to .NET 5 allows us to improve the performance even more in the future!The following components of Indicium Universal still require .NET Framework version 4.7.2 or higher (NOTE: not .NET 5). Without .NET Framework 4.7.2 or higher installed, Indicium Universal will start, but these components will not work.:CrystalReports. DevExpress reports (will be .NET 5 compatible in the near future). SQL Server Reporting Services.Using this version of Indicium for DB2 databases requires some additional installation steps which have been outlined in our Installation manual. BREAKING: Chromium browsers no longer support http://Some of Indicium's authentication features, such as Single Sign On (SSO) and Single Logout (SLO), require Indicium's authentication cookie to have the samesite=none attribute. Chrome has recently made a change that causes cookies with this attribute to only work when the cookie is secure, meaning that the cookie was requested and received over a secure channel (i.e. https://). Consequently, you can no longer log in over http:// when using Chromium-based browsers such as Chrome and Edge, and this behavior will likely extend to more browsers in the future.We already require usage of https:// in production environments, but if you must do testing over http:// then a different, non-Chromium browser needs to be used, such as Firefox. We will look into minimizing the inconvenience of this in our next release, by looking into not using the samesite=none attribute when it is not required. However, since we can no longer guarantee that all of Indicium's features will work over http://, we recommend using https:// for both development and testing environments. Authentication through OAuth 2.0 Bearer TokensBeing an Identity Provider, Indicium already served access tokens, but these tokens could only be used to fetch user claims and not to access Indicium's API itself. As of this version, we’ve added support for the JWT Bearer authentication scheme that allows access tokens to be used as a means to authenticate users for API access.Note that this feature is specifically meant for third-party clients and won't be used by our own clients such as the Universal GUI.A third-party client will receive an access token after a user has authenticated and given consent that the client may access the API on their behalf. The client can then make a request to Indicium’s API, using that token in the Authorization header. An access token will give access to all APIs that are available to that user, no more and no less.For this feature to work, an OpenID client needs to be configured in IAM (menu OpenID > OpenID clients). Be sure to check the API checkbox for the OpenID client and add a redirect URL and client secret. Furthermore, the location of the Authority, which is the URL to Indicium, needs to be provided by means of the BearerTokenAuthority setting in Indicium's appsettings.json. This Authority URL must use 'https', e.g.:{ "BearerTokenAuthority" : "https://localhost:5001" } Once the OpenID client and Authority URL are configured, an access token can be requested like this (in the example below, the API tool Insomnia is used):Example: access token requestGrant type: Indicium uses OAuth 2.0’s Authorization Code Flow which exchanges an Authorization Code for a token. For more information, see https://auth0.com/docs/flows/authorization-code-flow. Optionally, PKCE can be used as well if the client is deemed insecure. Authorization URL: This endpoint is used to retrieve an authorization code via the browser and involves authentication via the login prompt and (when required) consent. The Authorization URL can be retrieved by calling the following endpoint on the Authority URL: <Authority URL>/.well-known/openid-configuration. Typically, the authorization URL looks like this: /connect/authorize. Access token URL: This endpoint is used to retrieve the access token. Just like the authorization URL, the Access Token URL can be retrieved by calling the following endpoint on the Authority URL: /.well-known/openid-configuration. Typically, the Access token URL looks like this: /connect/token. Client ID, Client secret and Redirect URL: Client information from IAM. Scope: This should include full_api_access in order to obtain an Access Token that gives API access. Other scopes such as openid, profile, email, etc. can be requested simultaneously if necessary.When in IAM is configured that consent is required, the following consent page will appear. Only after allowing, Indicium will give out the access token.Please be aware that at this moment, Indicium only gives out access tokens, the exchange of a refresh token is not supported. Access tokens are valid for one hour.Consent page PKCE support for OpenIDWe've added PKCE support for OpenID to reduce security risks for native apps.PKCE is short for Proof Key for Code Exchange. It is an OAuth 2.0 security extension for public clients on mobile devices, to avoid a malicious program creeping into the same computer from intercepting the authorization code. Single Logout (SLO) for external OpenID Identity ProvidersIn this version of Indicium Universal, we have augmented our support for authentication through external Identity Providers with Single Logout (SLO). This means that it is now also possible to log out of the external Identity Provider in an integrated way from Indicium's log out page if you were logged in with an external Identity Provider (see OpenID connect).In order to use Single Logout on top of this, we have added two new properties to the configuration in the appsettings.json: SignOutButtonIcon and SignOutButtonText. These properties allow you to configure the sign-out button that will appear on Indicium's logout page:"OpenIDConnect": { "IdentityProviders": { "Microsoft": { "MetadataEndpoint": "", "ClientId": "", "ClientSecret": "", "ButtonIcon": "microsoft.png", "ButtonText": "Sign in with Microsoft", "SignOutButtonIcon": "microsoft.png", "SignOutButtonText": "Sign out of Microsoft" }}The type of SLO that Indicium supports is called front-channel logout. The way it works is that Indicium will redirect the user to the logout page of the external Identity Provider where the user can log out. Upon doing so, the external Identity Provider will send a logout call back to Indicium before redirecting the user back. This logout call will need to be configured at the external Identity Provider. Taking Microsoft's Azure Active Directory as an example, the screenshot below shows how you can configure the front-channel logout URL. Just like how the post-sign in redirect URL is /signin-{name} — where {name} is the name of the Identity Provider in the appsettings.json — the front-channel logout URL is /signout-{name}.If the Identity Provider is configured as the DefaultIdentityProvider, then the Indicium logout page will not be shown, but it will be as if the Sign out of X button is clicked automatically, immediately redirecting the user to the external Identity Provider's logout page.Redirect URI and Front-channel logout URL Partial support for the report parameter property "Export Path"Indicium now partially supports the Export path report parameter Property. This property can be selected in the menu Processes > Reports > tab Report parameters > tab Form > tab Report parameter > field Property.Indicium still won't export report results to disk, but it will respect the file name provided in the download that it offers to the client. Indicium will determine the download file name as follows: If there is a Report parameter with the Export Path property: If the value of the parameter is a file path that ends in a file name, Indicium will use this file name. If the extension is incorrect, Indicium will correct it to, for instance, .pdf. If the value is not a file path or it does not end in a file name, Indicium will use the translation of the report as the file name. If there is no report parameter with the Export Path property: Indicium will use the translation of the report as the file name. If the report does not have a translation, the report ID will be used instead.  Minor fixes and tasks We've fixed an issue with the $export request parameter when the selected data set contained a column with data type 'TIME'. We've fixed an issue that caused the OpenID Authorization Code flow to fail sometimes in load-balanced environments when using Indicium as the Identity Provider. To fix this issue, Indicium will augment the IAM database with three new tables upon starting: dbo.__EFMigrationsHistory indicium.DeviceCodes indicium.PersistedGrants. Multiple load-balanced instances of Indicium need these tables to communicate intermediate tokens with each other in order to have the Authorization Code flow succeed when not every request goes to the same instance of Indicium. We've fixed an issue for message protocol independent process flows that caused responses with content types likes application/json or application/xml to be returned as if they were string literals. For example the response{ "some_property": "some_value" } would erroneously be returned as"{ \"some_property\": \"some_value\" }"

Related products:Indicium Service Tier
Release notes Universal GUI (2021.1.14.1)

Release notes Universal GUI (2021.1.14.1)

2021 March 26:Changed version to 2021.1.14.1. Added hotfix:  If a report had spaces in its name, it would wrongfully get underscores surrounding the file name, which changed it into a pdf-file that could not be accessed. This has been fixed.Hello everyone,During this sprint, we've worked on the support for badges and five more process actions. Moreover, we've enabled the cursor focus and improved the Resource Scheduler further.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 GUI version 2021.1.14.1Don'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. Universal 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 version 2021.1.14.1 here New Badges on detail tiles and detail tabsBadges can now also be shown in detail tiles and detail tabs. Badges are numbers that can attract the attention of the user.Badges in detail tilesBadges in detail tabs Process action supportUniversal GUI now supports the following process actions:Show Message - To show a popup to the user, containing defined actions as buttons. Each button can continue to a different path in the process flow. Change filters - To change the filter values for each column and disable the active prefilters. The parameters Allow wildcards, Ignore diacritics, and Case sensitive are not yet supported by Indicium. Clear filter - To clear the filters set by the process action Change filters. Go to first/last/previous/next row - To jump to the first/last/previous/next row in the grid. Go to row - To jump to a specific row in the grid. Support for Start objectsUniversal GUI now opens the tables, tasks, and reports that are configured as start objects in either IAM or the User Preferences ribbon in your end application using the Windows GUI or Web GUI. Configuring start objects in the Universal GUI (using the User Preferences menu under the user profile) will be implemented in a future release. New and changed in the Resource SchedulerIn the last release, we added a basic version of the Resource Scheduler. In this release, we've changed the header location to improve working with the Resource Scheduler further. Now it's placed on the right, and it includes both the navigation buttons and the date range of the current view.Moreover, it's now possible to show a tooltip in the Resource scheduler component. Just add a multiline control, and you'll see the tooltip appear when hovering over the activity.Changed header location Focus for specific form control while editingWe've added support for focusing on a specific form control while activating edit mode and after updating a control value. On Add/Edit/Copy, the Universal GUI will place the cursor in the first editable control.For replacing the cursor after updating a control value, parameter cursor_to_col can be set in the default stored procedure on the database, see Default. Minor fixes and tasksThe setting for a light or dark theme is now kept when a user logs out and back in instead of using the application's default theme. When clearing the browser cache, however, the application will return to its default theme. We've removed the unnecessary 'empty' option in a mandatory lookup. When a layout procedure made a lookup field first read-only and then regular, the Clear icon stopped working. This has been fixed. In Software Factory versions 2020.1 and older, a screen with a lot of details (e.g., 87 details) could fail because the request length was too large. This has been fixed. After logging in, the loader was displayed at the top left of the screen. Now it is in the middle, as it should be. The screen component property HIDE_TOOLBAR now also works for tab panels at the root level. Checkbox controls now work properly with NoOfPositionFurther = 0. This means that two checkbox fields next to each other will both be displayed correctly. If a report had spaces in its name, it would wrongfully get underscores surrounding the file name, which changed it into a pdf-file that could not be accessed. This has been fixed. What we'll be working on next sprintThe next sprint we'll be working on:Process flow actions: Delete row (follow-up action to delete a row). Work in progress: import, filter form, form conditional layouts, auto-refresh, offline data. And we'll solve some issues.

Related products:Universal GUI
Release notes Indicium (2021.1.16)

Release notes Indicium (2021.1.16)

Hello everyone,in this sprint, we've added more awesome features and solved some issues. You can read the Indicium user manual to read about Indicium's features. We'll keep you updated regularly about Indicium's progress.Download Indicium Universal 2021.1.16. Download Indicium Basic 2021.1.16. Indicium UniversalMulti-row task support using MultiselectParameterIDWe've added support for executing multi-row tasks using a runtime XML parameter that is provided through the MultiselectParameterID extended property. For more details, see the blog on Multi-row task execution in our Community. Message protocol-independent web services in process flowsIn version 2021.1 of the Software Factory, 'Message protocol independent' web services in a process flows were introduced. As of this version, they are supported by Indicium Universal.This feature allows you to create entirely custom APIs, receive and process the HTTP requests on the database, and set the HTTP response as well. Please note that this feature is not meant to simply create an API for a process flow because you want to start it with an API call. Every process flow already has an API  that allows you to start it with an API call. This feature is specifically meant for situations where you have limited control over the contents of an HTTP request, but you want to process it in your Thinkwise application. For instance, if you want to implement a webhook and a third-party service will send data in XML form to a certain endpoint and you want to process it, then this would be a good solution.Message protocol-independent webserviceWhen the API checkbox is checked, Indicium Universal will create a special API endpoint for you:/open/iam/<appl>/<process_flow_id>If the API alias field is filled out, the endpoint will be:/open/iam/<appl>/<process_flow_api_alias>The first segment of the endpoint is /open because this is a special endpoint that is entirely separate from Indicium's regular OData endpoints. This endpoint will accept any type of request that you send to it, as long as the path of the URL is as shown above. No matter what the HTTP method is, whether you add a query string to the URL, which headers you include or what the request body is, all requests are valid.Once the API checkbox is checked, you can choose to link properties to your process variables, similar to how this works for report parameters. These properties represent properties of HTTP requests and responses. When an HTTP request property (Method, Path, Query string, Request body, or Request headers) is mapped to a process variable, that process variable will be initialized with the corresponding value in the HTTP request that triggered the process flow. When an HTTP response property (Response body, Response code, Response headers) is linked to a process variable, the values of those process variables will determine the response that Indicium will give.Please note the following restrictions that apply to these process variable properties:Method - The domain must be a string type, such as (n)varchar or an equivalent type. Path - The domain must be a string type, such as (n)varchar or an equivalent type. Query string - The domain must be a string type, such as (n)varchar or an equivalent type. Request body - The domain must be a string or binary type, such as (n)varchar, varbinary, or an equivalent type. Request headers - The domain must be a string type, such as (n)varchar or an equivalent type. The value will be formatted in JSON like this: { "Header1": [ "value1", "value2" ], "Header2": [ "value"] } Response body - The domain must be a string or binary type, such as (n)varchar, varbinary, or an equivalent type. Response code - The domain must be an integer type, such as int or an equivalent type. The value must be a valid HTTP response status code (e.g. 200, 204, 404, etc.) Response headers - The domain must be a string type, such as (n)varchar or an equivalent type. The value must be formatted in JSON like this: { "Header1": [ "value1", "value2" ], "Header2": [ "value"] }For more information, see Message protocol-independent webservice.Process variablesChangedThe title property in IAM's Global settings will now be used as the issuer for TOTP secrets (Time-based One-Time Password). This means that whatever is entered as the title in IAM will be shown in Authenticator apps as the application for which the TOTP codes are meant. This also makes it possible to register a TOTP secret for the same user in multiple IAM databases in one Authenticator app. Previously, 'Thinkwise' was always shown as the issuer. Now, only if no title property is entered, 'Thinkwise' is shown. Ensure that the latest hotfixes are applied, at least 20210203 - Add title to i_core_global_settings.sql. Minor fixes and tasksDatabase storage did not work if the storage column containing a binary large object (BLOB) was an expression column. This has been fixed. We've fixed that informative messages were wrongly shown as errors on Indicium's pages. The title property in IAM's Global settings will now be used as the page title on Indicium's authentication pages. Previously, 'Thinkwise Identity Provider' was displayed as the page title. If no title property is entered, 'Thinkwise Identity Provider' will still be used. Ensure that the latest hotfixes are applied, at least 20210203 - Add title to i_core_global_settings.sql.To improve the stability of the new export feature we've fixed two issues and made one change:Columns with GUID data types, like UNIQUEIDENTIFIER, will no longer cause the export to fail. Having multiple columns with the same translation will no longer cause the export to fail. File columns, including data storage columns (BLOBs), will now be skipped when exporting to avoid the export of sensitive information and instability of Indicium due to memory usage. Indicium BasicMinor fixes and tasksDatabase storage did not work if the storage column containing a binary large object (BLOB) was an expression column. This has been fixed.

Related products:Indicium Service Tier
Release notes Windows GUI and Web GUI (2021.1.14)

Release notes Windows GUI and Web GUI (2021.1.14)

Hello everyone,in this sprint, we improved the loading time for DevExpress reports, and we solved some issues.You can read the GUI user manual to read about the Windows and Web GUI's features. We'll keep you updated regularly about the Windows and Web GUI's progress. NewReduced loading time for DevExpress reports (Web)To reduce the loading time when opening a DevExpress report for the first time, the assembly needed for the DevExpress is preloaded during application warm-up in the bootstrap.ashx.To activate the application warm-up, please check the documentation. ChangedTask dialog height is now adjusted by the layout (Web)When a field in a task dialog is hidden outside the form using the layout, the dialog will now adjust the height based on the visible fields on the form.Dialog height Fixes and tasksActivate document from a process flow on a variant subject (Web)We investigated an issue in the Web GUI where a document, opened earlier in the process flow, was not activated again by using the Activate Document process flow action. Two causes have been found and solved:In the Software Factory, the Activate Document process action is not subject variant-specific (yet). We've fixed the Web GUI, so it won't take the variant into account while looking up the document to be activated when the process variable document_id is not given or faulty. Process variable document_id was ignored because of its datatype in the Software Factory. Our Windows GUI uses an incremental number for this, so datatype 'INT' is fine. The Web GUI uses a number too, but also attaches the tab ID to it, which makes the expected datatype a 'VARCHAR'.Process variable document_id Capital letter behavior support in Grid (Windows)Capital letter behavior is now supported in the grid.Capital letter support User session logging for reports (Web)In some cases, an executed report action was not registered in the user logging of IAM when working with the Web GUI. We've tested several cases and fixed the logging where needed.

Related products:Windows GUI
Release notes Universal GUI (2021.1.13.1)

Release notes Universal GUI (2021.1.13.1)

Hello everyone,In this sprint, we've added more awesome features we think you'll like, and we've solved some issues.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 GUI version 2021.1.13.1As always, we've released a version so you can test Universal out for yourself. 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. Universal must be deployed on the same server as Indicium or it should be an allowed origin in appsettings.json. Universal 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 Universal. Make sure you are on the latest version of Indicium Universal.Download Universal version 2021.1.13.1 here  NewBasic resource schedulerA first basic implementation of a resource scheduler is available now! It has a lot of neat features like drag & drop, active row navigation by clicking on resources, and conditional layout.Contrary to the other user interfaces, the resource scheduler does not require an extender to initialize. Instead, a heuristic approach is used. Simply place the Scheduler screen component in the screen type and the component will initialize via the following rules:A subject needs to have at least 2 date/time columns. The order of these columns will determine the start and end of an activity. The title of the activity is determined by the Display column. The resources of the scheduler will be determined by the first field in the subject that has a sort with a Group Until. This needs to be a readable text identifier, lookups will not yet be translated. You can add resources that do not yet have an activity by including a row in the subject with an empty start- and end date. Drag & drop is allowed. The start- and/or end date of a row can be changed manually and by dragging the resource horizontally. If the subject is a view, this could require an instead-of update trigger. Dragging an activity to another resource will update the Group Until column to the target value. Note that, since the translation of lookups isn't yet supported, you might have to translate this back to a correct foreign key value using an instead-of update trigger. The activity color can be set with a conditional layout. The conditional layout has to be set to the Display column.Basic resource scheduler Process action: zoom in on detailWe've added the process action Zoom in on detail. This opens a detail in a new document. This is what it looks like:Zoom in on detail Hide toolbar for a screen typeSometimes the toolbar (search, refresh, etc.) doesn't make sense for a screen type. Now it's possible to hide the toolbar per screen type, by adding the screen component property HIDE_TOOLBAR with any value (for example, "yes") to the root screen component:Hide toolbar Support for "Refresh after execute" option "All" for tasksIt is now possible to use All for refreshing data after a task has been executed in the Universal GUI. When configured for a task of a child subject, it will make sure the parent subject is refreshed as well. This option may affect performance, so do not use it unnecessarily.In the example below, All is configured as refresh after the execution of the Generate invoices task in the child subject Sales invoices. After the task has been executed successfully, the parent subject Customers is refreshed, too.Refresh all Debug mode for breakpointsWe've added a debug mode to help developers add breakpoints. It is enabled by the setting debugMode: true in the config.json. You will see the current width and active screen type for each screen. If that screen type is a breakpoint, you will also see the screen type that it is a breakpoint of. It looks like this:Debug mode for breakpoints Hide login optionsWe've added the option to hide the login options by the setting "loginOptionsHidden": true in the config.json. The login screen then looks like this:Hide login options Tasks for multiple records allowedWith multiple records selected in the grid, tasks can now be executed for all these records simultaneously, unless the popup for each row setting is turned on. Message location supportUniversal GUI now listens to the message location configured in the Software Factory. Messages with a location "panel" are shown in a snack bar at the bottom of the screen because Universal GUI doesn't have a panel.More information about the message location.  Paste links into an HTML fieldWhen pasting a URL into the HTML control, it now will become a clickable link. ChangedReport filenameThe name of a downloaded report (as a pdf) is now the filename, as configured in the Software Factory. It used to be a random string. Note: This does not yet work for iOS. Improved confirmation popupsThe meaning of the answers OK and Cancel wasn't clear in the questions "Are you sure you want to cancel?" or "Are you sure you want to execute this task?".Now the button text has been changed to "Yes" and "No". A hotfix on the translations provided by the Software Factory/IAM will update the question to the user to "Do you want to discard your changes?".Improved popupsMinor fixes and tasksAn empty chart is no longer white in dark mode. The update notification would slide under the sidebar menu when there was not enough space. This has been fixed. We've fixed an issue with the "record not found" notification showing up unnecessarily after deleting a record. The data set was refreshed twice after deleting a record. This has been solved, which means performance has increased when deleting a record. We've fixed an untranslated lookup suggestion that displayed "[Object object]" after a value was chosen. When a user had a lookup popup open and tried to open another one, all lookup popups would close. This has been fixed, the second lookup popup now opens as it should. We've fixed a bug where Universal GUI gave an error when trying to translate hidden or untranslated lookups. When using a barcode scanner control in a task popup, it showed an empty space where the barcode control should have been. This has been fixed. We've fixed the time showing milliseconds in a form in non-edit mode. Now the milliseconds won't show, just as in the grid. The Activate document process action now also triggers when opening the document from the menu rather than from open documents. Setting installNotificationDisabled in the config file to 'false' will now actually enable the install notification. What we'll be working on next sprintThe next sprint we'll be working on:Badges on tiles and tabs. Follow-up actions in process flow actions: show a message dialog to the user, set filters, clear filters, go to a specific row, go to first/previous/next/last row. Work in progress: import, filter form, and form conditional layouts. And we'll solve some issues. 

Related products:Universal GUI