Skip to main content
Version: 2024

Migrate to the Universal GUI

Migrate from a previous generation UI to Universal GUI

Moving from previous generations of user interfaces, such as the Windows or Web GUI, to the Universal GUI means moving from a 2-tier to a 3-tier architecture. This chapter describes the required knowledge to work with a 3-tier architecture, and it helps you get up to speed in applying it within the Thinkwise Platform.

What is Indicium

Moving from a 2-tier to a 3-tier architecture disconnects the front end from the databases. For Thinkwise, Indicium is the secure spider in the web between the front end and the database.

What is Indicium?

Indicium is Thinkwise's Web API that handles requests from external applications. It facilitates all connections to a variety of data sources and exposes them to clients on location.

What is a Web API

Web APIs can be called by clients using HTTP requests. These requests are used to retrieve information from a web page while browsing on the internet. Many companies develop their own APIs. A well-known example is, retrieving an address belonging to a postal code.

A Web API, in general, does not come with a front end. Its main function is to securely provide data for executing "heavy" work, to support the client.

tip

Your application can make Indicium call external Web APIs, too. You can do this by using an HTTP Connector in a system flow or a process flow.

The Universal GUI communicates with Indicium through HTTP requests. For the Windows GUI, communication with Indicium is not possible.

Migrate user preferences

The user preferences are saved differently in previous generation UIs than in the Universal GUI. For information on how to migrate your user preferences to the Universal GUI's format, see Re-migrate classic user preferences.

Model enrichments to support the migration

The following model enrichments can be used to support the migration from a previous generation UI to the Universal GUI. For more information about model enrichments, see Model enrichments.

NameDescription
Create breakpoint screen typesFacilitates the transformation to the Universal GUI by creating breakpoints for specific situations.
Decolorize all SVG icons that contain a black fill colorFacilitates the transformation to the Universal GUI by removing the fill color of icons, making them suitable for dark and light modes.
Turn on 'Include the label width' settingFacilitates the transformation to the Universal GUI by enabling the Include the label width setting, making forms look more like Windows GUI forms.

Solving problems

Indicium offers DB logging and error logging where you can investigate unexpected behavior. To resolve a problem in Indicium, you have to be able to read HTTP requests. This is an essential skill for Thinkwise Platform developers working with web-based applications and Web APIs, such as Indicium.

To address a request to Indicium, the client builds a URL. It consists of two elements:

  • Host - Indicium's address on the Internet. The host part is static and configured once at the clients' end.
  • Path and query - What Indicium should do and additional required parameters. Indicium uses the OData standard to receive instructions from clients, defined in the path and query. An OData URL syntax is a bit similar to the SQL syntax, specifying the subject, ordering, filtering or an endpoint to execute some logic.

URI syntax diagram A URL syntax diagram

An HTTP request can contain different types of methods, like GET, or POST. You can easily execute a GET request URL in the browser's address bar. To execute more complex requests like POST requests manually, you can use a tool like Postman.

A response from Indicium comes in a JSON format, a standardized way to package data.

Communication between Universal GUI and Indicium

To get an overview of the communication between the Universal GUI and Indicium, you can use your browser's DevTools > Network tab. This tab only records requests from the moment it is opened. If you trigger a user interaction in the GUI, the requests will come into view.

To get an overview of the interaction of processes in the GUI, you can add the Redux extension to the DevTools.

Was this page helpful?