2021.2
The 2021.2 release of the Thinkwise Platform features a lot of additions and improvements, and a large number of feature requests and tickets have been addressed.
Table of contents
- Upgrade notes
- Breaking changes
- Software Factory
- New
- Fallback language for applications
- Default user groups
- Verify synchronization to IAM
- Partitioning available
- Validation on shortcuts that are in use by the GUI
- New menu setting: 'Show open documents'
- New setting 'Translation review required'
- New domain setting: make domain elements unavailable
- New domain controls: 'Datetime short' and 'Time short'
- 'Debug' as message location for sending messages
- Priority added to messages with regular expression
- Table tasks can be marked as grid double click action
- Trace information updates
- Column 'Type' in variant screens
- First column by default set to primary key
- A new connector process action for OAuth 2.0 connection
- Sequences available
- Planning poker to estimate story points for requirements
- Project version increment in global configuration
- Continue working in branches after merging
- AWS S3 file storage subfolders
- Unit tests: save and retrieve runtime info in results
- Unit tests: check output parameters for null or not null
- Unit tests: prepare query available
- Unit tests: output parameters for assertion query
- Unit tests: parameter length increased
- Unit tests: Task for showing unit test code
- Changed
- Version information extended
- Task for creating a new project
- Disabled mutation buttons in a view
- Work can't link to itself
- Data sets moved to another menu
- Prefilters shown for subject tab pages
- Behavior of process action id names
- Subroutines for Indicium (Legacy)
- Developer field for a changelog after a merge
- Changed responsibility display in control procedures and code search
- Fixed
- New
- Intelligent Application Manager
- Data model changes
Upgrade notes
SQL Server and .NET Framework support
-
The Software Factory development environment and the Intelligent Application Manager require SQL Server 2016 or higher.
-
This also applies to the Windows and Web user interfaces, which additionally need version 4.7 of the .NET Framework (4.7.2 is advised for Web).
-
Using Indicium (both Universal and Legacy) requires the .NET 5 Windows Hosting Bundle. Additionally .NET Framework 4.7.2 is required when using:
- Indicium Legacy (Windows/Mobile GUI)
- DB2
- Crystal Reports
- SQL Server Reporting Services.
For more information about supported technologies, see the Thinkwise Lifecycle Policy.
Upgrading from 2020.1 or earlier
If you're upgrading from version 2020.1 or earlier, it is required to upload all image and report files to the database once. More information about uploading images and reports can be found here: Images and reports should be uploaded
Upgrade validation
We have changed the data model for process action output parameters so a process variable can be assigned only once. An upgrade validation is made for the deleted duplicate assignments.
Breaking changes
Subroutines for type Function moved
The subroutines for type Function with return value table
have moved to another code file, from functions
to table_valued_functions
.
File storage extension whitelist moved
Universal GUIFrom now on, the extension whitelist for file storage is specified in the Software Factory instead of in the Indicium configuration. This whitelist can be used to limit the file types that can be uploaded. It can be defined for each file storage location separately, in the menu Projects > Project overview > tab Project versions > tab File storage location > tab Extension whitelist.
The whitelist setting in Indicium's appsettings.json won't be used any longer. So, as of this release, the whitelist has to be specified in the Software Factory.
Software Factory
New
Fallback language for applications
Universal GUIA fallback language can now be specified by developers for a project version. The fallback language will be applied when a user uses a language that is not available for the application. It will affect both users using the application via IAM as well as users starting the application directly on the Software Factory. A language can, for example, be available if the application is started via IAM but not if it is started directly on the Software Factory. In that case, the fallback language is used.
When upgrading to version 2021.2, the fallback application language will be set as English. If English is not a valid language in your application, the upgrade will set the fallback language to the language having the most translated objects.
- The fallback language for a project version can be changed in the menu Projects > Project overview > tab Project versions > tab Form > tab Project version.
- The default fallback language for new projects and project versions is set in the menu Settings > Configuration.
As of Indicium version 2021.1.18, the session variable
tsf_appl_lang_id
is available. The statement select SESSION_CONTEXT(N'tsf_appl_lang_id')
will send the user's language to the SQL server, for instance,
ENG or NL.
Default user groups
To speed up the rollout of an application instance or an application for a new tenant, we've added the option to create a reusable, preconfigured set of user groups and role assignments in the Software Factory.
It is called Default user groups and can be found in the Software Factory in the menu Access Control > Default user groups. Here, developers can register the default user groups and role assignments. This may vary per project version.
Default authorization
In the Intelligent Application Manager, users with the following roles can add the default user groups to a certain application for a provided tenant: root administrator, application administrator, or application owner. Selecting a tenant is only possible for root administrators and application administrators. An application owner may only provide for their own tenant.
The default user groups can be added to an application in the menu Authorization > Applications > tab Authorization, by using the task Apply default authorization. Any user group that does not yet exist for the tenant will be created, and new role assignments will be added. Existing role assignments will not be removed. Any role that is not available due to module authorization will not be assigned.
Default authorization in IAM
Verify synchronization to IAM
Community ideaIt is now possible to verify your synchronized model. Since the model is not locked during synchronization, it can be changed while synchronizing is in progress. This could lead to errors when a change applies to an object that has already been synchronized. For example, when a table has been renamed, but the columns have already been synchronized with the old table name.
By default, the option Verify synchronization is checked. Thinkwise advises sticking to this default. Deviate from it only if you're absolutely certain that no changes will be made during synchronization (e.g., in a one-man project).
Verify synchronization
When the model changes during synchronization, a warning is shown. The prefilter Only warnings for last run will show which items contain changes. Based on the outcome, you can decide to rerun the synchronization.
Warning: model has changed during synchronization
It is possible to verify the synchronized model by:
- Synchronization to IAM (in the menu Deployment > Synchronization to IAM > task Synchronize to IAM ).
- Synchronization to disk (in the menu Deployment > Synchronization to IAM > task Write to Disk ).
- Creating a deployment package (in the menu Deployment > Deployment package > task Create deployment package ).
Partitioning available
Warning: This is an advanced feature that should not be used without a proper understanding of SQL Server's implementation of partitioning.
It's now possible to apply partitioning to the tables in your application. Partitioning allows data in a table to be stored in separate chunks on the file system. For very large tables this could possibly lead to a performance increase.
To get started with partitioning, a partition scheme needs to be created in the menu Data > Data model > tab Tables > tab Form. Open the pop-up next to the Partition scheme field.
The following information is required:
- A name for the partition scheme (field: Partition Scheme).
- A domain to determine which data type will be used to partition the data (field: Domain). This domain needs to be of the same data type as the column that is going to be used as the partition column.
- The alignment for the boundaries of the partition ranges (field: Range). The boundaries can be aligned either left or right.
Create a partition scheme
After the partition scheme is created, boundaries need to be defined in the Partition boundaries detail tab. Boundaries determine where the data is going to be split. In the example below, every year on January 1st.
Partition boundaries
The last step is to apply the partitioning to the table, in the menu Data > Data model > tab Tables > tab Form. Select one of the created partitions in the field Partition scheme, and select a column in the field Partition column. The partition column is the column that contains the data that will be used to partition the table.
Apply a partition to a table