Skip to main content
  • 587 Product updates

Release notes Windows GUI and Web GUI (2021.2.15)
Release notes Indicium (2021.2.14)

Release notes Indicium (2021.2.14)

Hello everyone,In this sprint, we've added standard computations and the possibility to change log file names. We also made a minor change to the system flow's end date.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.14 here. Download Indicium Basic release 2021.2.14 here. Indicium Universal Edit logfile name and levelCommunity ideaIt is now possible to edit the log file name and the path. This can be useful if you are running multiple instances of Indicium next to each other or if you don't like the current name.To change a log file name, add the PathFormat to the Logging:ErrorLog segment in Indicium's appsettings.json:{ "Logging": { "ErrorLog": { "PathFormat": "YourOwnName-{Date}.txt", "LogLevel": { "Default": "Error", } } }}Replace the content of FileName with a name of your own choosing (YourOwnName). If no {Date} is specified, Indicium will add it. If file extension .txt is not specified, Indicium will add it.We also introduced the possibility to edit the minimal log level. The default log level is 'Error'. This feature can be useful if you need more information.The log level of other logging namespaces can be overridden by adding a key and value to the Logging:ErrorLog:LogLevel section. Some keys cannot be modified and will always be set to level 'Information'.{ "Logging": { "ErrorLog": { "LogLevel": { // Log Information level messages to the error log. "Default": "Information", // Log Debug level messages if the namespace of the logger starts with 'Microsoft'. "Microsoft": "Debug" } } }} DB2 iSeries data providerIt turned out that, compared to the old iSeries driver, the new DB2 .NET Core driver has compatibility issues with certain column types. These column types are:XML DBCLOB.Both these column types throw errors about not being able to perform the required CCSID conversion.While we still recommend using the newer driver over the iSeries driver due to vast performance improvements, for customers encountering this issue, we are introducing a way to run the iSeries driver using the plugin system that certain report types also utilize.Please note that since this means data now needs to travel between process boundaries from the plugin to Indicium, this method might degrade performance in some situations compared to Indicium versions that previously used this driver directly. The most noticeable situations are:Selecting large data sets. Downloading file data stored in a database storage column.To switch to the old iSeries driver, set the DataProviders:DB2:Mode configuration setting to iSeries. The number of plugin workers spawned can be modified using the DataProviders:DB2:WorkerCount setting. The default number is 3.For example, using appsettings.json:{ "DataProviders": { "DB2": { // Switch to using the old iSeries driver. "Mode": "iSeries", // Only spawn one plugin worker process instead of 3. "WorkerCount": 1 } }} Getting the number of rows without dataWith this release it is possible to do a $top=0&$count=true OData query. This makes it possible to get the number of records in a table without getting actual data. Application id and alias in the session contextCommunity ideaThe application ID and application alias (available from IAM version 2021.1 or higher) are now available in the session context. If you want to know the application alias or application ID in the database, you can use the following statements:To retrieve the application ID:select SESSION_CONTEXT(N'tsf_appl_id') To retrieve the application alias (available from IAM 2021.1 or higher):select SESSION_CONTEXT(N'tsf_appl_alias')This will return the application ID or application alias that was called. Standard computationsStandard computations are a great way to extract data from a column without the need to store them in a different column with a default expression.For example, if the computation Year is called, the computation will return the year of the supplied dates. Or, if you want to get a part of a column value, you can use Substring to retrieve it.The following computations are added:Computation Input Output Example Date Date DateTime Date $apply=Compute(Date(columnname) as Alias)) Time Time DateTime Time $apply=Compute(Time(columnname) as Alias)) Isoweek Date DateTime Int $apply=Compute(Isoweek(columnname) as Alias)) Weekday Date DateTime Int $apply=Compute(Weekday(columnname) as Alias)) Year Date DateTime Int $apply=Compute(Year(columnname) as Alias)) Month Date DateTime Int $apply=Compute(Month(columnname) as Alias)) Day Date DateTime Int $apply=Compute(Day(columnname) as Alias)) Hour Time DateTime Int $apply=Compute(Hour(columnname) as Alias)) Minute Time DateTime Int $apply=Compute(Minute(columnname) as Alias)) Second Time DateTime Int $apply=Compute(Second(columnname) as Alias)) Ceiling Int Numeric Decimal Int $apply=Compute(Ceiling(columnname) as Alias)) Substring Varchar Nvarchar Char Nchar Varchar $apply=Compute(Substring(columnname, Startindex, Length) as Alias)) Concat Varchar Nvarchar Char Nchar Varchar $apply=Compute(Concat(FirstColumn, SecondColumn) as Alias))  ChangedThe end date of a system flow is now always filled in, regardless of whether the flow failed or succeeded. This way, the freed-up slot is available for a new instance of the system flow. The log is available in IAM, in the menu Analysis > Scheduled system flows > tab Schedule log. 

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

Release notes Universal GUI (2021.2.13)

2021, July 2:Full release 2021.2.13 Added fix: New translation for an Info message’s Submit button. Hello everyone,in this sprint, we've added pagination for grid and cardlist components. We've also added support for the Cortex barcode scanner, an alternative to the regular barcode scanner and free to use with the Universal GUI. On top of that, we've changed some small functionality, and of course, we 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 the Universal GUI.We'll keep you updated regularly about Universal's progress. Universal GUI version 2021.2.13Like with every blog, we've released a version so you can test the Universal GUI yourself. Don't forget the documentation and 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 the 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.13 here New Pagination for grid and cardlist componentsWe've implemented pagination to avoid the use of the top-statement on a subject. The top-statement could suggest that, for example, 100 records are all available data in a table, when in fact, there is more.The paging mechanism can be enabled by entering the number of rows on a page in the field Page size. The default is set per project version, in the menu Projects > Project overview > tab Project versions > tab Form. The default is overridden by the Page size field in the subject, in the menu User interface > Subjects > tab Default > tab Settings. 0 or -1 disable paging for the specific subject. Paging is also disabled while editing the subject/document.The page navigation is shown at the bottom of multi-record components, like the grid and the card list. The active record always remains on the active page, so it navigates with you between pages.For now, in detail subjects the GUI may show to many pages. Our Indicium team will fix this as part of the 2021.2.14 release.Pages in the Universal GUIWhen using pagination, keep in mind that the Go to row process flow actions can only navigate to a row within the current page. Later on, we will improve these actions, to make jumping to the next, previous, or a specific page possible. Support for licensed Cortex barcode scannerWe've added support for the Cortex barcode scanner. This is a more powerful alternative to the default barcode scanner for the Universal GUI. To use the Cortex barcode scanner, you need a license from the manufacturer. For more information, see https://codecorp.com/products/web-sdk.Note: When using Google Chrome on iOS, both the regular and Cortex barcode scanners only work on iOS 14.3 and higher due to vendor limitations.To use Cortex in the Universal GUI, configure CORTEX_DECODER as the domain control (menu Data > Domains). Then, in the Universal GUIs configuration file config.json, add the license like this:“cortexLicense": "your-license-key-here”To improve the scan performance, you can configure only the symbologies you need:"cortexEnabledSymbologies": ["Code128", "EAN8", "EAN13", "UPCA"]By default, Cortex scans the following symbologies: Aztec  UPCA  UPCE PDF417  Interleaved2of5 Code93  Code128  Code39 QR  EAN8 EAN13  DataMatrix  DotCode GS1Databar14   Cortex supports a lot more symbologies, though. This is the full list: AustraliaPost MSIPlessey Code128 Plessey EAN8 CanadaPost MicroPDF417 Code49 Straight2of5 GridMatrix Code11 Pharmacode DataMatrix UPCA IATA2of5 Code39 RoyalMail EAN13 USPSIntelligent KoreaPost CompositeCode Trioptic GoCode BC412 Maxicode DutchPost UPU HongKong2of5 CodablockF PDF417 GS1Databar14 USPSPostnet JapanPost Code32 QR HanXinCode Aztec Matrix2of5 Code93 Telepen Interleaved2of5 Codabar NEC2of5 DotCode UPCE USPSPlanet          Renewed date and time editorsWork in progressWe're still working hard on solving some issues with the Date, DateTime, and Time editors in the form component. The same value disappeared in other components, like the grid and card list. To offer you the best solution, we decided to build an entirely new control that is becoming pretty much state-of-the-art.It has complete native browser editor support and will choose the date/time format based on a combination of the browser language and the Windows OS regional settings. Which one is leading depends on your OS and browser.Since we're still testing the new control, it's not yet available in this release. It will be available in an extra release. Changed Improved color schemeIn form controls with conditional layouts, we improved the readability. When choosing a dark color in light mode, or a light color in dark mode, the labels and icons became unreadable. From now on, the UI will always select a contrast color.This is not yet available for the hovering colors (following soon). It is a known issue that the date and time icons do not work correctly yet. At the moment, we're overhauling the Date/Time/DateTime controls. We'll fix the issue after the overhaul. Minor changesA button or link in an HTML file, shown in the preview component, now opens its target in a new window. Items in the Universal GUI are no longer translated by the browser. Since the Thinkwise Platform has its own translation tool, this prevents unwanted and wrong translations. To improve performance, we stopped refreshing detail subjects that are unrelated to their parent (no reference columns are part of the reference between both tables). The ShowMessage process action now shows a default OK button if none is configured. Previously no button was shown. Minor fixes and tasksWhen navigating away from an unchanged editable row with Autosave activated, it would not end the edit mode. This has been fixed. We fixed that messages were hidden behind dialogs (tasks, reports, lookups, progress). Cursor_to_col_id didn't work on opening a task parameter dialog. It always navigated to the first control instead of the selected control. That's fixed now. When you performed an Activate detail process action, the process flow continued in that detail, even though you added a table to a process step to indicate where the action should be performed. We fixed that the process flow erroneously continued in the detail instead of in the parent table. We fixed a problem where filtering with double spaces resulted in a bad_request. A task variant not visible in the menu wasn't found in a process flow, causing a "Cannot find transl of undefined" error. The task/report parameter input validation crashed after the dialog was committed for the second time. E.g., because a mandatory parameter wasn't filled in. This caused a "Cannot find askConfirmation of undefined" error. "500" errors are handled correctly now. The task/report dialog will close, and a subject will leave edit mode. Also, a running process flow will continue executing the red arrow. Previously, the Submit button for Info messages contained the "Cancel" translation. Info messages are triggered after, e.g., submitting a task. Now, we've changed the translation to "OK". For users, this is a more logical response to an Info message.  What we'll be working on next sprintThe next sprint we'll be working on:Quick filter - Filter quickly using the currently selected value in the grid. Maps - Basic maps component to visualize geographical locations. Pivot grid enhancements: Collapse/expand rows (for all aggregation types). Nested series (columns). Grid date(time) editor - Editable datetime type editors. Process flow actions: Restore prefilters - Follow-up action to restore the default prefilters. Close document - Follow-up action to close a previously opened document. And of course, we'll solve some issues.Work in progress:Offline task execution.

Related products:Universal UI
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 UI
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 UI
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 UI
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 UI