<?xml version="1.0"?>
<rss version="2.0">
    
                    <channel>
        <title>Join the conversation</title>
        <link>https://community.thinkwisesoftware.com</link>
        <description>Stay up to date on the latest official Thinkwise news and participate in discussions regarding Thinkwise services &amp; products</description>
                <item>
            <title>Custom component setup for running application</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/custom-component-setup-for-running-application-7000</link>
            <description>We have two different applications in one iam environment having two different urls for the custom component having two different url’s not in the same proxy.Is it possible to fill in a expression (sql) in the location (subject) setting for translation the url when the application is running? The solution of two different branches is not a nice one for maintenance. What could be a good solution?  </description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Mon, 21 Sep 2026 16:36:43 +0200</pubDate>
        </item>
                <item>
            <title>Azure SQL Serverless – Database does not auto-pause despite no activity</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/azure-sql-serverless-database-does-not-auto-pause-despite-no-activity-6994</link>
            <description>Title: Azure SQL Serverless – Database does not auto-pause despite no activityHi,I have recently migrated my development environment to AZURE.The Thinkwise environment is running on Azure, and the SQL database is configured using the Azure SQL Serverless tier, with auto-pause enabled.I have scheduled all IAM/SF System Flows / IAM-related processes so that they only run during working hours, approximately 08:00–18:00.However, when I check the Azure SQL metrics, I can see that the database never seems to enter auto-pause, including during the night when there should be no SF/IAM activity.Is there anything in SF/IAM, or any specific setting/configuration, that I should check to make sure that no background process, connection, health check, or other activity is keeping the SQL database active?Any advice on how to identify what is preventing the auto-pause would be appreciated.Thanks!  </description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Mon, 21 Sep 2026 16:34:40 +0200</pubDate>
        </item>
                <item>
            <title>Use value from other field as default for field in form</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/use-value-from-other-field-as-default-for-field-in-form-6914</link>
            <description>We have a form with settings for customers that is used for 2 types of customer, where one of those is basically a parent to the other. For a lot of fields the rule is that the setting of the parent is valid as long as the field is empty in the form of the child.This works fine, but we would like to be able to show the value that is used for the parent in the form of the child so it is clear which settings are used for the child.I think this basically means we would like to use an expression as the default for the childs form. That way we can show the parent&#039;s value without actually having to copy and store the value to the field on the form of the child. </description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Mon, 21 Sep 2026 16:29:29 +0200</pubDate>
        </item>
                <item>
            <title>What happens to exclusions during a merge?</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/what-happens-to-exclusions-during-a-merge-6999</link>
            <description>I have some changes in a DEVELOPMENT branch that I want to merge to the RELEASE branch. After creating the merge I exclude a particular line from being merged. What seems to happen after the merge is completed is that the excluded part is overwritten by the code from the RELEASE branch, so my original code is gone. Is this intentional? It looks like the merge is bi-directional.</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Mon, 21 Sep 2026 16:20:11 +0200</pubDate>
        </item>
                <item>
            <title>What happend with Edit in Grid?</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/what-happend-with-edit-in-grid-6878</link>
            <description>The Edit in Grid mode, as we knew it from previous versions, no longer seems to be available. Is there any plan to bring this functionality back?We would very much like to see it return, allowing end users to enable Edit in Grid for specific datasets. The ability to navigate from record to record and modify field values directly within the grid, without having to repeatedly click Save and Edit for each change, was very powerful.This functionality is also missed in the Software Factory, where it provided a much more efficient editing experience.Could you share whether this feature is on the roadmap?</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Mon, 21 Sep 2026 15:18:14 +0200</pubDate>
        </item>
                <item>
            <title>Activate top-left Screen Component upon opening a screen</title>
            <link>https://community.thinkwisesoftware.com/ideas/activate-top-left-screen-component-upon-opening-a-screen-3760</link>
            <description>Upon opening a new Document in the Universal GUI the first value in the top left (at least for Western writing) Screen Component should be activated. This especially goes for the Grid component, where it seems as if the first Row is selected. In below example it took me 44 tabs to get to the first column value of the seemingly selected Row. Could the Universal GUI be a bit smarter here? </description>
            <category></category>
            <pubDate>Mon, 21 Sep 2026 12:26:16 +0200</pubDate>
        </item>
                <item>
            <title>Split IAM sync into generation and execution and make it part of the creation screen</title>
            <link>https://community.thinkwisesoftware.com/ideas/split-iam-sync-into-generation-and-execution-and-make-it-part-of-the-creation-screen-5500</link>
            <description>When we do our upgrades (every 3 weeks) of our applications we take the application offline (deactivate in IAM) right before we execute the source code on the database and we put it back online after the IAM sync.However as time goes on our model grows and the IAM sync action in SF is taking up to 8min right now, the majority of that time goes into generating the sync code. If we could generate the sync code separately from the actual sync this would decrease the required downtime for upgrades by a big percentage because you could generate the sync code before taking the application offline. On top of that it is pretty easy to forget to do an IAM sync, it would be nice to have it part of the creation process/screen. </description>
            <category></category>
            <pubDate>Mon, 21 Sep 2026 08:01:12 +0200</pubDate>
        </item>
                <item>
            <title>How to create a Tree view in Universal?</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/how-to-create-a-tree-view-in-universal-6966</link>
            <description>Struggling to even get a tree to shape no matter the options I set, I hope someone could advice me how to get this test scenario to work.I have a view that has the following columns:parent_id	child_id	grand_child_idAll columns make the PK.In an example this is the data (with lookups):  I want to see something like (structure example, formatting is just for clarity):Parent A--Child A----Grand child A----Grand child B--Child C----Grand child CParent B--Child D----Grand child D----Grand child EI have changed the “Tree” settings under “Subject”. I have tried all combinations at “Tree” under “Component”. Chose different options for “Sort” with and without “Group until”.The screen type has the “Tree” as its component.All it ever shows is: Platform 2026.2I have compared it to an older product that still has the Windows GUI where a tree does work, but to no avail.What do I need to set to get the result as desired?</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Fri, 18 Sep 2026 17:16:10 +0200</pubDate>
        </item>
                <item>
            <title>zoom detail in Universal</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/zoom-detail-in-universal-7010</link>
            <description>Hi,I have a main grid (complaints) and a detail grid (complaint actions).This detail grid in my test shows 3 records: Scrolling thru the community I discovered that instead of double clicking on the row (as we used to in the Windows GUI) we need to double click on the tab!?When I do that I always get to see the contents of the first row, not the contents of the selected row!?I suspect that this isn&#039;t what it is supposed to do?Might it be that this is caused by the fact that we are still on platform version 2025.1 and universal gui version  2026.2.11.1.0 ? Or is this something else? Any ideas?</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Fri, 18 Sep 2026 11:51:59 +0200</pubDate>
        </item>
                <item>
            <title>MCP on the Software Factory</title>
            <link>https://community.thinkwisesoftware.com/news-blogs-21/mcp-on-the-software-factory-6992</link>
            <description>As you probably noticed, we have launched MCP support for our Platform as a beta feature with release 2026.2.12! The initial communication has been about using MCP on customer applications. And because the Software Factory and IAM are built with the Thinkwise Platform itself, MCP is technically available for those applications too!Given the eagerness to work via MCP on the Software Factory, we invite you to start using it now. Keep the known limitations below in mind. Specifically, double-check that you are applying the best practice of setting your MAIN branch to Read only.Knowledge Session &amp;amp; WorkshopsBefore you start, we strongly recommend watching the recording of our Knowledge Session MCP on the Software Factory: application development with prompts:We are happy to help you get started with MCP on the Software Factory and have organized a bunch of Workshops. Make sure to enrol via the Community Events if you are interested!Known limitationsThe main reasons for not advertising the use of MCP on the Software Factory so far, have to do with our desire to implement additional controls:More granular access control for MCP: in its current form, MCP would be able to alter every branch for which you as a user have edit permissions. We will adjust this by adding a Branch-level setting that determines whether mutations are allowed via delegated access.	Clear tracing of mutations made by MCP: changes made by MCP are currently not explicitly traced in the Software Factory. With Indicium 2026.2.13 we have launched a new session variable tsf_is_delegated_request, which we intend to use to explicitly show in the Trace fields what changes are made via delegated access.Both improvements will ship with STS 2026.2.14 on the 28th of September and with LTS 2026.3 the 5th of October.Other known limitations with the current version of MCP:Subject Variants are not yet exposed via MCP	For Tasks available in both the menu and as Table task, only Table tasks work with MCP	Creating Unit Tests via MCP does not yet work	Only Role Software developer is available, effectively giving MCP All rightsMost of these limitations will be resolved with LTS 2026.3. Set up MCP on the Software FactoryThe steps in the Getting started with MCP blog apply to an IAM with the Application SF in combination with the Role Software development. Configure the following four settings:User: Allow access delegation	Application: Allow access delegation	Application &amp;gt; Authorization settings &amp;gt; Access delegation roles: Available for delegation for the Software development role	Client applications: Create Client with related configuration Thinkwise Skills repositoryClaude Code proves surprisingly strong at getting its job done on the Software Factory. Among other things, it will use Tooltip information from the model to get additional context with all available Subjects and Tasks via MCP.But as you all know, there is more to good application development than finding your way in the Software Factory. For that reason we have already prepared a significant list of Skills that are smartly applied by Claude Code, provided that they are available to it. Download our Skills repository here and use them to your advantage!</description>
            <category>News &amp; Blogs</category>
            <pubDate>Fri, 18 Sep 2026 11:15:37 +0200</pubDate>
        </item>
                <item>
            <title>Lookup control - Is there a reason not to use Combo everywhere?</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/lookup-control-is-there-a-reason-not-to-use-combo-everywhere-7009</link>
            <description>The Universal GUI used to have a performance problem with ‘Combo’ lookup control so we defaulted to ‘Suggestions’. In the recent GUI’s the performance increased and also the functionality improved so that ‘starts with’ is shown before ‘contains’ in the result. So we are changing most look-ups to ‘Combo’.So I am wondering, is there still any reason left to use anything else than ‘Combo’ as a lookup control since it has the ‘Suggestions’ functionality included?</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Thu, 17 Sep 2026 17:00:49 +0200</pubDate>
        </item>
                <item>
            <title>Visibility of inactive tab</title>
            <link>https://community.thinkwisesoftware.com/ideas/visibility-of-inactive-tab-7008</link>
            <description>Can you change something on the visibility of the inactive TABS. In the WIN GUI the colored Icons were made grey on an inactive tab. When the tab was active the colored icon was shown. So it was very clear for users when the tab was inactive. And with using color it was also very clear when the tab was active.In the current Universal version the inactive tab is shown with very lightly reduced colors. As wel the text of the tab as the icon. This is the inactive variant And this is the active variant. When you see them here in exploded format and next to each other the difference can be seen. However in the application you see one or the other, and they are much smaller. So for the user it’s much harder to see if the tab is active or not.The grey variant for the inactive variant in the WIN GUI was much and much better and much more clear to the user </description>
            <category></category>
            <pubDate>Thu, 17 Sep 2026 11:42:50 +0200</pubDate>
        </item>
                <item>
            <title>Set focus to filter(-field) on open-event Universal-screen</title>
            <link>https://community.thinkwisesoftware.com/ideas/set-focus-to-filter-field-on-open-event-universal-screen-1394</link>
            <description>In the mobile-GUI the filter-field automatic gets focus.In the Universal-GUI no field has focus. By setting the focus to the filter-field, the user can use a barcodescanner to enter data (without first having to give focus to the field).</description>
            <category></category>
            <pubDate>Thu, 17 Sep 2026 11:33:02 +0200</pubDate>
        </item>
                <item>
            <title>Thinkwise Platform as MCP Server</title>
            <link>https://community.thinkwisesoftware.com/news-blogs-21/thinkwise-platform-as-mcp-server-6912</link>
            <description>Since launch less than 2 years ago, the Model Context Protocol has become the de facto standard for integrating systems with LLM chat interfaces or AI Agents. MCP Servers are popping up everywhere, in varying quality when it comes to capabilities, security and governance. Either software vendors offer an officially supported MCP server, or else unofficial (often vibe-coded) MCP Servers pop up.As with any runtime component, an MCP Server for the Thinkwise Platform should work for all customers and all applications. Developing such a dynamic component takes a bit more time, but in return a Thinkwise-provided MCP Server works for all customers, all Application models and all future changes to your Application out-of-the-box. And since we develop the Software Factory and Intelligent Application Manager (IAM) with the Thinkwise Platform as well, we can implement MCP for the Software Factory and the Intelligent Application Manager in a similarly fast fashion as you can for your applications.We have made the MCP Server capabilities of the Thinkwise Platform part of runtime component Indicium, no separate installation is required to get your hands on this new technology. From a functional perspective we rely as much as possible on existing features in the Software Factory and IAM, mainly Roles and Client applications. This is our Technology-as-a-Service promise at its best: as soon as you upgrade to a supported version, MCP can be utilized!MCP will be launched in BETA with Short-Term Support (STS) Platform version 2026.2.12 and become an officially supported and licensed feature with Platform version 2026.3. More details on required setup will be shared in a separate blog. MCP democratizes integrationThe Model Context Protocol is often referred to as the USB-C for applications: one standard connector to power applications with AI capabilities. The OData protocol is a similar standard for REST APIs, but requires technical expertise by the user and is much more rigid to use. MCP places the responsibility and burden of integration at the supplier of the API, instead of the consumer of the API.The key differentiator of generative AI + MCP is that users can use natural language to interact with organizational data in an iterative manner. Essentially, this enables any user to set up an integration with an application and use a language they know to put that integration to work with trial and error. Without generative AI you needed to be capable of using a technical language like OData and without MCP you needed to know exactly how to construct the URL Endpoint and the JSON Body of the call.Now, all that’s needed is an AI tool that supports this (for example Claude Desktop, Claude Code, OpenAI Codex, Copilot Studio), is Setup MCP Server &amp;gt; Authenticate &amp;gt; Grant permissions and the user is ready to go!MCP as translatorMCP begs to be applied to compelling use cases, but where does it shine? Generative AI and related tooling is not a silver bullet and not a solution to all integration problems, but it does hold the promise of solving problems that couldn’t be solved before!MCP shines at the translation layer between structured and unstructured data: turning unstructured input into structured data, or structured data into something a person can read. A plain-language support request becoming a properly filed ticket. A pile of transaction data becoming a great visual report. An agent processing a messy email into a draft order.Compelling use cases include:Easier &amp;amp; interactive search and summary of data	Performing specific actions like booking hours or processing meeting summaries	Automating repetitive actions like processing an incoming PDF invoice	Informed interaction with an AI agent like a Support agent that helps triage an IT issue	AI-driven Development to speed up and improve Software DevelopmentMore elaborate examples of compelling use cases will be shared in a series of follow-up blogs.MCP poses risksBefore going all out on MCP, it’s important to mention the risks that AI imposes. While people tend to refer to generative AI tooling as if it has some sort of personality (&quot;he&quot;), it is wise to be aware of the fact that it’s a trained mathematical model that algorithmically predicts the next best word or action.Importantly, AI at this stage can’t substitute for human judgment or experience. In other words: &quot;AI is as good as its user&quot; and AI doesn’t suffer consequences for being wrong. An extreme example of the potential negative impact is the deletion of the entire Production database of PocketOS.For business-critical applications built with the Thinkwise Platform this means that you shouldn’t want your users or AI agents to connect to an unofficial MCP server and hand out credentials and entire permission sets in the process. Instead, you should treat any MCP-connected user or AI agent as less knowledgeable than your most junior hire initially.While it makes sense for any human being that &quot;write all open hours&quot; refers to booking 8 hours for each past working day, AI might as well decide to book hours for 24 hours for each past or future day available. Or worse, &quot;clear approved invoices&quot; for a finance person might mean paying these invoices, while AI might as well decide to delete the invoices altogether without ever paying them.Enterprise-grade Thinkwise MCPApplications built with the Thinkwise Platform are business-critical, which is why we prioritized providing an enterprise-grade MCP Server solution with granular controls that allows you to mitigate the above-mentioned risks. We utilize Client applications in IAM, authentication via OAuth 2.1 or Personal Access Tokens (PAT), and granular permissions based on IAM applications, users, and roles that explicitly need to Allow access delegation.We recommend applying the Principle of Least Privilege and putting a Human-in-the-Loop for any AI-powered workflow, especially in the beginning stages. More specifically, we recommend creating and granting access to delegated Roles with permissions for Read data or Create data / Execute tasks (that result in data with concept status), but not for Update or Delete of existing data to begin with.The initial implementation of MCP supports a core feature set of the Thinkwise Platform, including CRUD on subjects (variants are not exposed via MCP), Execute (table) tasks, and Data authorization pre-filters.RoadmapMCP will be launched in BETA with STS Platform version 2026.2.12 on the 3rd of August and become an officially supported and licensed feature with Platform version 2026.3.During the MCP BETA you get to experiment with MCP for customer Applications, and we continue to improve the capabilities and efficiency. In parallel, we implement MCP support for the Software Factory with Release 2026.3. This includes an authorization and logging concept (tsf_is_delegated_access) and a granular setup of Roles in the Software Factory.In parallel with our MCP development, many of you have been experimenting with custom MCP servers, AI-assisted development on the Software Factory and the use of Skills. We have already offered a Skill to update your Dynamic code with Release 2026.2 and are now testing to what extent Skills prove to be needed in addition to MCP integration with the Software Factory. We anticipate Skills over MCP will be adopted soon, and intend to use that to distribute Software Factory-related Skills in the future.Using MCP Server in a Production environment will require an amended license agreement with Thinkwise, as Agentic AI via MCP typically automates and replaces human user interaction. MCP Server will be freely available in Develop and Test environments to empower you to experiment with MCP for end users and speed up development in the Software Factory.We look forward to your implementation of compelling MCP use cases!</description>
            <category>News &amp; Blogs</category>
            <pubDate>Thu, 17 Sep 2026 09:43:23 +0200</pubDate>
        </item>
                <item>
            <title>Branch validations</title>
            <link>https://community.thinkwisesoftware.com/ideas/branch-validations-7006</link>
            <description>Create a filter under creation, validations to show only validations that are new in the branch.For example main branch has still 30 open validations, feature branch has 50 open validations. When the filter is active only show the 20 validations.</description>
            <category></category>
            <pubDate>Thu, 17 Sep 2026 08:06:38 +0200</pubDate>
        </item>
                <item>
            <title>Turn off hyperlink for image in form</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/turn-off-hyperlink-for-image-in-form-6991</link>
            <description>For an image-upload control, is it possible to disable the hyperlink/download feature in the form (read mode)? It is annoying that clicking anywhere on the field opens a new browser tab with the image while the user is never interested in downloading the image in this case.In the example below, the image field is the full width of the page, so clicking anywhere right of the actual image opens a browser tab with the image.We already tried setting the ‘Show action button’ to ‘When editable’, but this doesn’t seem to have effect.  </description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Wed, 16 Sep 2026 13:52:05 +0200</pubDate>
        </item>
                <item>
            <title>Turn off hyperlink for image in (readonly) form</title>
            <link>https://community.thinkwisesoftware.com/ideas/turn-off-hyperlink-for-image-in-readonly-form-7004</link>
            <description>For an image-upload control, it is currently not possible to disable the hyperlink/download feature in the form (read mode).It is annoying that clicking anywhere on the field opens a new browser tab with the image while the user is never interested in downloading the image in this case.In the example below, the image field is the full width of the page, so clicking anywhere right of the actual image opens a browser tab with the image.The GUI could maybe use the domain ‘Show action button’ setting to configure this behaviour. An alternative could be that the GUI is changed so that not the whole image field is the button, but that images get an small action button in the corner as is done with other type of controls. </description>
            <category></category>
            <pubDate>Wed, 16 Sep 2026 13:51:22 +0200</pubDate>
        </item>
                <item>
            <title>Use prefilters as badge code</title>
            <link>https://community.thinkwisesoftware.com/ideas/use-prefilters-as-badge-code-7003</link>
            <description>In most cases that we use badges, the badge is the number of lines on the screen based on certain active prefilters. If something changes in the definition in one of those prefilters, the developer has to remember to check the badge code and make the equivalent change there.To reduce this maintenance, I would like the option to model a badge as a combination of prefilters on the table/view and that the SF generates the badge code from this.Of course it should still be possible to write own badge code for exemptions.</description>
            <category></category>
            <pubDate>Wed, 16 Sep 2026 13:35:05 +0200</pubDate>
        </item>
                <item>
            <title>Navigation buttons &quot;previous&quot; &quot;next&quot; for details</title>
            <link>https://community.thinkwisesoftware.com/ideas/navigation-buttons-previous-next-for-details-4887</link>
            <description>A use case that happens ins many cases is where you have the grid with a detail tab with the form and other elements. For the user It&#039;s quite cumbersome to be going back and forth every time he wants to see the details of a couple of items in a row. I really miss the previous and next navigation buttons in the detail, where you can jump easily to the next or previous item in the context without the need to go back. </description>
            <category></category>
            <pubDate>Wed, 16 Sep 2026 13:08:22 +0200</pubDate>
        </item>
                <item>
            <title>Making the Deployment center more advanced</title>
            <link>https://community.thinkwisesoftware.com/ideas/making-the-deployment-center-more-advanced-6998</link>
            <description>Modified by moderator:This idea should be changed to making the Deployment center more advanced so you can use one Deployment center installation to maintain your entire Thinkwise platform:The deployment center can check/download updates of all Thinkwise products itself (including the deployment center itself).	You can register all your environments (multiple dev/tst/acc/prod) in it.	It gives an overview of all your environments x installed TW products in which it shows available updates/hotfixes that are not installed yet (with a button to initiate the process). For hotfixes could also be considered to let you install them from within SF/IAM hotfix screen.  Old idea:Please make it possible to download Thinkwise products without Deployment center and Workspace listener in TCP. Currently TCP always adds the Deployment center and Workspace listener to Thinkwise products downloads, even if you are just downloading hotfixes. This make the download unnecessary big/slow (180mb for 2kb hotfixes).</description>
            <category></category>
            <pubDate>Wed, 16 Sep 2026 10:32:15 +0200</pubDate>
        </item>
                <item>
            <title>refresh token lifetime</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/refresh-token-lifetime-6988</link>
            <description>I have a question regarding refresh token lifetime configuration for OpenID Connect authentication.Is the refresh token lifetime configurable, and if so, what are the available options for extending it?Thanks!</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Tue, 15 Sep 2026 11:43:51 +0200</pubDate>
        </item>
                <item>
            <title>🚀 Platform improvements for week 37, 2026</title>
            <link>https://community.thinkwisesoftware.com/product-updates/platform-improvements-for-week-37-2026-6997</link>
            <description>Hi everyone!We’ve released the following platform improvement last week: SF 2026.2.13, 2026.220260907 - Return proper variant col and parameter query overrides in interface view			Fixed issue where a variant-level default value query override (column or task/report parameter) returned NULL via the Indicium interface view when no base default value query existed, causing incorrect behavior. IAM is unaffected.</description>
            <category></category>
            <pubDate>Tue, 15 Sep 2026 10:26:34 +0200</pubDate>
        </item>
                <item>
            <title>Process Flow rights, checkbox Available - Different start table tasks</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/process-flow-rights-checkbox-available-different-start-table-tasks-6995</link>
            <description>The checkbox Available checks if all the process actions are available within a process flow. Now I have the challenge that I have different Table Tasks. Different roles for the table tasks but the processflow is the same for all of them. I want to keep it in one processflow but in order to have the process &quot;available” they all need, in theorie, to have all the table tasks assigned to the role? Is it always necessary to have all the table tasks assigned to the role in order to have access to the processflow or is it possible to have the processflow available but not all the table tasks that trigger the processflow?It is not desirable to have all table tasks available to all roles that access the processflow, but to be sure it will work for the roles it seems necessary. Thanks in advance.</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Tue, 15 Sep 2026 09:35:54 +0200</pubDate>
        </item>
                <item>
            <title>Code Search more options for debugging</title>
            <link>https://community.thinkwisesoftware.com/ideas/code-search-more-options-for-debugging-6983</link>
            <description>Code search is a great tool, but it gives too much results. For debugging a problem in a live application a lot of the results are irrelevant. Most time i only want to see task templates, triggers and procedure templates. To find which task/trigger etc affects a certain table. My suggestion would be:add a checkbox: exclude non-assigned templates (active by default)add a checkbox: exclude gui templates (this only shows code that would impact results, so only templates for tasks, procedures, subroutines, triggers (i might forget one here?) </description>
            <category></category>
            <pubDate>Tue, 15 Sep 2026 09:15:59 +0200</pubDate>
        </item>
                <item>
            <title>Option to set (own) prefilters default on</title>
            <link>https://community.thinkwisesoftware.com/ideas/option-to-set-own-prefilters-default-on-6945</link>
            <description>Via the Windows GUI it was possible to create onw prefilters, which were on “by default” (if on at last use, then these were on next time view was opened).Would be fine to have this option available again </description>
            <category></category>
            <pubDate>Mon, 14 Sep 2026 12:37:11 +0200</pubDate>
        </item>
                <item>
            <title>validation: Process variable has incorrect datatype</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/validation-process-variable-has-incorrect-datatype-6942</link>
            <description>During my validations I got:Process variable has incorrect datatypeOutput returned by the process action may not be converted correctly into the process variable.Change the datatype of the process variable to the correct datatype or use a different process variable as output parameter. An overview of all supported process actions and their datatypes can be found in the documentation. The problem is that it is about the variables that are used as output for the FTP connector (non-file storage). And apperently those expect a certain datatype but I cannot figure out in de docs what datatypes these output parameters expect.Or I’m completely wrong in my assumption that that is what this validation tries to tell me….</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Fri, 11 Sep 2026 09:32:39 +0200</pubDate>
        </item>
                <item>
            <title>Make Software Factory metadata available to AI so I can generate SQL templates from my IDE</title>
            <link>https://community.thinkwisesoftware.com/ideas/make-software-factory-metadata-available-to-ai-so-i-can-generate-sql-templates-from-my-ide-6496</link>
            <description>I want to use generative AI to draft the bulk of my SQL templates, directly from my own IDE (e.g., VS Code) together with tools like GitHub Copilot. For this to work reliably, the AI needs first-class context from the Thinkwise Software Factory (SF): the application’s model metadata and relevant UI information. The SF already maintains a rich, structured model of tables, columns, and references; exposing that to the AI is the missing piece.Why this metadata is essential for AI-assisted SQL When the AI understands my model, its output stops being generic and becomes project-specific:Tables, columns, PK/FKs – enable correct JOINs, WHERE clauses, and integrity-awareness. The SF’s data model explicitly defines these entities and relations, which the AI can use to pick the right join keys, respect cardinalities, and avoid hallucinated columns.	Domains (user-defined data types) – domains act as abstract data types that drive constraints and UI defaults. Sharing domains helps the AI choose correct data types, casts, default values, and validation logic in generated SQL.	UI semantics – properties like control type or visibility can guide the AI to prefer filtered queries (e.g., hide inactive rows by default) or to shape parameter prompts and WHERE clauses that match what end-users actually see.	Template description &amp;amp; intent – short, descriptive text per template (purpose, invariants, edge cases) gives the AI the business intent it needs to generate more accurate and consistent code.How I propose to make this work Expose a compact model export for use in VS Code	MVP scope: tables, columns (incl. nullability), primary keys, foreign keys, domains (name, base type, constraints).		Optional scope: UI hints (visibility, control), default filters, and template descriptions.		Delivery options (any of these would work):		Indicium OData endpoint that surfaces a read-only view of the SF model (Indicium already provides an open API and can expose SF branches when configured).			CLI/export task that writes JSON files into a repository (consumed by VS Code).			VS Code extension that authenticates to the endpoint and injects the model as inline context for Copilot prompts.				Use the model export as AI context in the IDE	In VS Code, I want to select a template and have the AI read the JSON/endpoint to generate the initial SQL ready for review and refinement.	Expected resultsSpeed: AI drafts 70–90% of the SQL, I focus on edge cases.	Quality: Consistent use of keys, domains, and defaults; fewer “missing join” or “wrong column” errors.	Discoverability: As Thinkwise continues to add AI-powered features (e.g., model enrichments and support for storing LLM embeddings), a model-aware export aligns with that trajectory.	Future fit: Community use cases already show value in combining Thinkwise models with LLMs (e.g., natural-language search using embeddings), reinforcing the need for structured model access. </description>
            <category></category>
            <pubDate>Thu, 10 Sep 2026 18:47:08 +0200</pubDate>
        </item>
                <item>
            <title>Webdomain: Allow / disallow applications</title>
            <link>https://community.thinkwisesoftware.com/ideas/webdomain-allow-disallow-applications-6993</link>
            <description>The introduction of the Webdomain has given the possibility to give a different login experience based on the domain.We can allow certain tenants on domains and give them specific login methods to login.What&#039;s missing?We still miss the option of allowing / disallowing a certain application on a webdomain.In our scenario, we have two applications hosted on the same IAM/Indicium/Universal combo.It would be great that we could create two webdomains where app-1.mydomain.nl only allows the users to acces app-1 and app-2.mydomain.nl only allows the users to access app-2.Why?Especially in production environments, the switching between applications has to be done right, without question. Switching inside the same Universal GUI instance (say browser tab or PWA), can be tricky, especially when the look and feel of both applications are the same.When allowing the Webdomain to allow / disallow the applications, you could create a PWA for each application easily.</description>
            <category></category>
            <pubDate>Thu, 10 Sep 2026 15:43:39 +0200</pubDate>
        </item>
                <item>
            <title>Add menu subtitles support in SF</title>
            <link>https://community.thinkwisesoftware.com/ideas/add-menu-subtitles-support-in-sf-6990</link>
            <description>Now I am used to subtitles in my own applications, I am really missing them in the SF.Specially for:-Data model (Tables)-Subjects-Functionality-Tasks-Process flowsCould some workaround be made to support subtitles in the SF please?</description>
            <category></category>
            <pubDate>Thu, 10 Sep 2026 11:52:50 +0200</pubDate>
        </item>
                <item>
            <title>Configure &#039;Search&#039; fields as a user-preference</title>
            <link>https://community.thinkwisesoftware.com/ideas/configure-search-fields-as-a-user-preference-6989</link>
            <description>The global search is often configured to the most used fields. However this doesn’t always match all use cases. As a user I would like the option to configure this myself on certain subjects. I would like to have at least the option to exclude certain search fields as configured in the model. But preferably also have the option to add other search fields.</description>
            <category></category>
            <pubDate>Thu, 10 Sep 2026 11:04:51 +0200</pubDate>
        </item>
                <item>
            <title>Max/Min Width Settings for Form-, Task- and Report Fields</title>
            <link>https://community.thinkwisesoftware.com/ideas/max-min-width-settings-for-form-task-and-report-fields-6428</link>
            <description>We like to have more control over field widths, because often you wish to give fields a absolute widthExamples:house number	postal code	dates	bank accounts	etc..When fields are on the same line it can have a mix of fixed and flexible widths.It should be more easy to set this up in the Software Factory.         </description>
            <category></category>
            <pubDate>Thu, 10 Sep 2026 09:14:48 +0200</pubDate>
        </item>
                <item>
            <title>Load on scroll instead of pagination</title>
            <link>https://community.thinkwisesoftware.com/ideas/load-on-scroll-instead-of-pagination-6987</link>
            <description>When there is a lot of data needed in a view / screen. It takes a lot of performance to load everything all at the same. Sometimes we need to load 50.000 rows or items or lines.To make sure the performance is okay, we use pagination in our grids. So we only load everything per page.Use case: our users need to select multiple rows / items over several pages, but when you go to the new page, it loses the selection of the previous page. Which causes inefficiency for them to execute tasks over several pages.Our proposed solution:Load on scroll. You still can load chunks of data instead of everything all at the same, but you start loading a new chunk ones you hit a scroll depth. Used frequently in webshops to load products on product listing pages.</description>
            <category></category>
            <pubDate>Wed, 09 Sep 2026 12:55:30 +0200</pubDate>
        </item>
                <item>
            <title>Option to hide the built-in action bar of a modal document</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/option-to-hide-the-built-in-action-bar-of-a-modal-document-6982</link>
            <description>We would like to have the option to hide the built-in action bar of a modal document in the process flow setup. This would be useful in scenarios where the modal document serves a specific task and closing or completing the modal is already handled in the process flow.Example use case: A modal document contains its advanced task for saving, completing, or closing a process. In such cases, the standard action bar does not add value, costs space and confuse users. We didn’t find a way to get this done by adding code to custom.css</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Mon, 07 Sep 2026 15:36:59 +0200</pubDate>
        </item>
                <item>
            <title>Ability to configure selected rows color</title>
            <link>https://community.thinkwisesoftware.com/ideas/ability-to-configure-selected-rows-color-6937</link>
            <description>As discussed in topic:Also the users of my clients are requesting for more contrast between the selection and the non selected lines.It would be great if we can have some impact on this. A css solution is also acceptable, not ideal.</description>
            <category></category>
            <pubDate>Mon, 07 Sep 2026 10:43:42 +0200</pubDate>
        </item>
                <item>
            <title>Missing functionality Universal for a User</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/missing-functionality-universal-for-a-user-6981</link>
            <description>Somehow there is a user that doesn&#039;t have access to modelrefresh and the Debugger window. I checked the settings but I am not able to find what is missing. The User has developer rights added (both sf_developer rightsgroup)	If I simulate the user I can see it	The User has cleared the cash and restarted the browserIs there anyone who might have an idea what this could be or what I am missing?It is the following functionality: I see thisUser sees this: </description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Fri, 04 Sep 2026 15:06:44 +0200</pubDate>
        </item>
                <item>
            <title>What are the values for the RDBMSType in &quot;MetaSourceConnection&quot;?</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/what-are-the-values-for-the-rdbmstype-in-metasourceconnection-6980</link>
            <description>Just updated Indicium to 2026.2.13.1 and this message appears in the log:“No RDBMSType was specified in the &quot;MetaSourceConnection&quot; configuration. It will default to &#039;SQLServer&#039;. Providing a value will become mandatory in the future.”This did not exists in the .12 version, so it seems to be added. I however cannot find a mention of it in the release notes or the documentation.What are the possible values here and is correct “SQLServer” the casing to use?Please also update the documentation accordingly, so one can find such information even if it is not a mandatory value yet.</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Fri, 04 Sep 2026 13:07:02 +0200</pubDate>
        </item>
                <item>
            <title>Quick button to take you directly to &quot;Search&quot;</title>
            <link>https://community.thinkwisesoftware.com/ideas/quick-button-to-take-you-directly-to-search-2057</link>
            <description>Be able to assign a quick button to take you directly to &quot;Search&quot;. For example assign &quot;F1&quot; button, when pressed,  to take you to &quot;Search&quot;</description>
            <category></category>
            <pubDate>Fri, 04 Sep 2026 12:34:58 +0200</pubDate>
        </item>
                <item>
            <title>Feedback regarding the new ticket layout in TCP</title>
            <link>https://community.thinkwisesoftware.com/ideas/feedback-regarding-the-new-ticket-layout-in-tcp-6791</link>
            <description>Good improvement that tickets which require user action are only counted for the badge now and are default sorted on top.	 	Please add the ‘Product’ field (Universal/SF/IAM/etc.) back to the grid, this helps with finding an issue when you don’t remember the title.	 	After executing the ‘Annulering beoordelen’ task, an issue stays visible with status ‘Opgelost’ while the prefilter ‘Gesloten tickets verbergen’ is active. For example ticket 14568i.	 	‘Activiteit’ and ‘Commentaar’ are a bit confusing/redundant:	In ‘Activiteit’ I see the whole conversation, but the Add button doesn’t work (all fields are read-only/hidden). My expectation was that I could add a ‘Commentaar’ line here.		In ‘Commentaar’ I only see a small part of the conversation. For example messages that are written when the issues switches status between &#039;In behandeling&#039; and &#039;Reactie gewenst&#039; are missing.		 		The default screentype could be improved if it shows the form below/next to the grid. So you could see the ‘Toelichting’ when browsing through the issues without extra clicking. I am currently using the Master-detail screentype myself. If this is changed, a bit smaller grid height would be appreciated too.	 	When I use the ‘Kopieren’ button to create a new ticket, I cannot edit the ‘Toelichting’.</description>
            <category></category>
            <pubDate>Fri, 04 Sep 2026 10:10:03 +0200</pubDate>
        </item>
                <item>
            <title>Search and open documents always visible on top of menu</title>
            <link>https://community.thinkwisesoftware.com/ideas/search-and-open-documents-always-visible-on-top-of-menu-5956</link>
            <description>Can the search and open document always be visible on top, also when you are scrolling down.In Windows GUI, the search is at least always visible, in Universal GUI all disappears when scrolling down in the menu  </description>
            <category></category>
            <pubDate>Thu, 03 Sep 2026 20:56:40 +0200</pubDate>
        </item>
                <item>
            <title>Make it possible to pin down Search and Open documents in the menu</title>
            <link>https://community.thinkwisesoftware.com/ideas/make-it-possible-to-pin-down-search-and-open-documents-in-the-menu-6964</link>
            <description>Most core applications have quite an extensive menu, easily creating a scrollbar for the menu, specially on smaller screens. When scrolling down, you lose sight of the Search field and Open documents which is quite annoying.Therefor I suggest to make it possible for a user to pin down the Search field, the Open documents and the Favorites (each with their own setting) so that they stay locked on the screen and don’t disappear when you scroll down in the menu. This settings should be saved as a user preference.I’d say the search field could be pinned down by default.</description>
            <category></category>
            <pubDate>Thu, 03 Sep 2026 20:56:39 +0200</pubDate>
        </item>
                <item>
            <title>Extra release - Indicium 2026.2.13.1</title>
            <link>https://community.thinkwisesoftware.com/product-updates/extra-release-indicium-2026-2-13-1-6979</link>
            <description>Hello everyone,An extra release of Indicium with version number 2026.2.13.1 is now available in TCP. This release contains the following breaking change:Fix Printing OrientationFixed a bug where the printing orientation configured in the Software Factory was being ignored. If you have an orientation explicitly set, it&#039;s worth checking that the printed result is still correct, since the correct orientation is now actually applied. Also note that your supplied orientation always takes precedence over the document&#039;s actual orientation. So if your supplied orientation is wrong, your print result will bee wrong too. This may not have been the case previously.</description>
            <category></category>
            <pubDate>Thu, 03 Sep 2026 19:49:17 +0200</pubDate>
        </item>
                <item>
            <title>Regression in Indicium (from 2026.2.11 onwards): Label print orientation forced to Portrait</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/regression-in-indicium-from-2026-2-11-onwards-label-print-orientation-forced-to-portrait-6958</link>
            <description>Since our upgrade to 2026.2, we have encountered a critical issue with label printing. Labels are unexpectedly printed in Portrait instead of the configured Landscape orientation, causing the output to be cut off.After verifying the report layout, Software Factory settings, and printer driver configurations, we isolated the root cause to Indicium:	2026.2.10: Prints correctly in Landscape			2026.2.11: Incorrectly prints in Portrait			2026.2.12: Incorrectly prints in Portrait	As a temporary workaround, we have rolled back to Indicium 2026.2.10. Given that this is an essential continuous production process, could this regression please be investigated so we can safely adopt upcoming Indicium releases?(See attached photo for the cut-off print result) </description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Thu, 03 Sep 2026 16:31:33 +0200</pubDate>
        </item>
                <item>
            <title>Bring back quicksearch</title>
            <link>https://community.thinkwisesoftware.com/ideas/bring-back-quicksearch-6671</link>
            <description>In previous iterations of the Thinkwise GUI you could perform an action called quicksearch. How it worked:Bring focus to a specific column (in the grid)	Type what you want to search 	First match of your search gets selected/highlighted. Can we please have this back?Why Quicksearch is valuable (and missed)1. Strong productivity gain for keyboard usersQuicksearch enabled fast, uninterrupted workflows:No mouse interaction requiredNo modal dialogs or filter configurationImmediate feedback while typingFor users who work with data grids all day, this shaved seconds off every lookup — which adds up quickly.2. Ideal for exploratory and ad‑hoc searchingQuicksearch was perfect when:You don’t know the exact valueYou just want to jump to something that looks rightYou don’t want to define a full filter for a one‑off checkCurrent alternatives (filters, column search fields) feel heavier for this use case.3. Lower cognitive load than filteringQuicksearch required almost no mental overhead:Focus columnTypeFirst match selectedCompared to:Opening filtersChoosing operatorsApplying / clearing filtersThis made it especially useful during conversations with users or while debugging data.4. Excellent for large datasetsIn grids with many rows:Scrolling is inefficientSorting doesn’t always helpFilters can be overkillQuicksearch acted as a “jump to value” mechanism, not a data‑reduction mechanism — a subtly different but very useful interaction.5. Consistency with legacy behavior &amp;amp; muscle memoryMany long‑time Thinkwise users built muscle memory around this feature.Its removal:Breaks established workflowsIncreases friction when moving to Universal UIMakes Universal UI feel like a regression in this specific area, despite its overall improvements6. Complementary, not a replacement, to filteringQuicksearch didn’t replace filters — it complemented them:Filters = structured, intentional selectionQuicksearch = fast navigation and orientationBoth serve different user intents and can coexist.</description>
            <category></category>
            <pubDate>Thu, 03 Sep 2026 15:07:36 +0200</pubDate>
        </item>
                <item>
            <title>Store SAS token expiration date in Application / File Storage Settings</title>
            <link>https://community.thinkwisesoftware.com/ideas/store-sas-token-expiration-date-in-application-file-storage-settings-6978</link>
            <description>In the &#039;File storage locations&#039; tab of Application / General settings, it would be valuable to have an additional column that stores and displays the expiration date of the configured Azure SAS token.The expiration date can be derived directly from the SAS token itself (from the se parameter). Because of this, the field could be populated automatically whenever the SAS token is saved.Additional optionsHighlighting tokens that are nearing expiration	Generating notifications for application administrators before expiration occurs	Add badge to the tab </description>
            <category></category>
            <pubDate>Wed, 02 Sep 2026 23:17:15 +0200</pubDate>
        </item>
                <item>
            <title>WebAssembly is blocked by Content Security Policy in Custom Components</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/webassembly-is-blocked-by-content-security-policy-in-custom-components-6968</link>
            <description>I am developing a Thinkwise Custom Component that uses the @thatopen/components package to load IFC files.The package uses web-ifc, which requires WebAssembly to load and process IFC files.The web-ifc.wasm file is successfully requested, but the browser blocks the WebAssembly module from being compiled/instantiated because of the Content Security Policy applied to the Thinkwise application.The following errors occur:wasm streaming compile failed: CompileError: WebAssembly.instantiateStreaming(): Compiling or instantiating WebAssembly module violates the following Content Security Policy directive because &#039;unsafe-eval&#039; is not an allowed source of script in the following Content Security Policy directive: &quot;default-src &#039;self&#039;&quot;.The package then falls back to ArrayBuffer instantiation:falling back to ArrayBuffer instantiationHowever, this is also blocked:WebAssembly.instantiate(): Compiling or instantiating WebAssembly module violates the following Content Security Policy directive.As a result, the IFC file cannot be loaded.The custom component cannot override or relax the Content Security Policy from JavaScript.To allow WebAssembly based packages in Custom Components, the Content Security Policy should allow WebAssembly evaluation, preferably using:script-src &#039;self&#039; &#039;wasm-unsafe-eval&#039;instead of requiring the broader:&#039;unsafe-eval&#039;Could anyone confirm whether Thinkwise Custom Components support WebAssembly and, if so, how the Content Security Policy should be configured to allow WebAssembly modules such as web-ifc.wasm? </description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Wed, 02 Sep 2026 20:33:42 +0200</pubDate>
        </item>
                <item>
            <title>Bigint look up OData bad request</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/bigint-look-up-odata-bad-request-6951</link>
            <description>Hello, guys. We are migrating from the Web GUI to the Universal GUI. We are making the necessary tests for this and already upgraded the SF from 2024.2 to version 2025.3 and Universal and Indicium to version 2026.2.12.According to the release notes of version 2026.2.11 the filtering on a lookup display column with a data type other than VARCHAR should be working but in our case it is not.The look up display field domain is BIGINT and the field that is being looked up is INT , also the look up is on a table variant.Table variant:Column where the look up is configured:Look up configuration:The issue is: OData query is created with a single quote (‘) and this results in a bad request. If we try the same request but without the single quotes it works properly.Universal/Indicium generated OData query: Self-made query removing the quotes </description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Wed, 02 Sep 2026 16:55:20 +0200</pubDate>
        </item>
                <item>
            <title>Detail Table Reference Breaks After Table Name Casing Change</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/detail-table-reference-breaks-after-table-name-casing-change-6961</link>
            <description>Hello,We have a detail table (called “WIP”) that stops displaying because its name is automatically converted to lowercase, possibly after deployments, which breaks the existing reference.Deleting and recreating the reference fixes the issue temporarily.Do you know what could be causing the table name casing to change, and how can we prevent this so the reference remains valid? Is there an alternative solution besides renaming the table to lowercase?  Thank you!</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Wed, 02 Sep 2026 14:25:54 +0200</pubDate>
        </item>
                <item>
            <title>Native OpenTelemetry support for Indicium</title>
            <link>https://community.thinkwisesoftware.com/ideas/native-opentelemetry-support-for-indicium-6977</link>
            <description>Indicium has supported Azure Application Insights (Blog post 2021) and AWS CloudWatch (Indicium 2022.2.13) for some time.OpenTelemetry would allow Indicium to expose standardized observability telemetry—such as traces, metrics, and logs—without requiring users to send their data to Azure or AWS.Why?Currently, telemetry is only available when sending the data to either Azure Application Insights or AWS Cloudwatch. Local, on-premise and hybrid deployments could benefit from OpenTelemetry support and route this telemetry to a stack such a Grafana, Prometheus, Loki, Tempo or Jaeger.How?To make this concrete, some suggestions for Indicium in order to support OpenTelemetry:Indicium can send telemetry using the OpenTelemetry Protocol (OTLP)	An OTLP endpoint can be configured, using gRPC and/or HTTP.	These settings can be setup for a Indicium container using specific environment variables	(https://docs.thinkwisesoftware.com/docs/deployment/container_registry_indicium#environment-variables)	Settings comparable to the Azure Application Insights (https://docs.thinkwisesoftware.com/docs/deployment/aws#log-to-aws-cloudwatch) can be setup for the OTLP endpoint. </description>
            <category></category>
            <pubDate>Wed, 02 Sep 2026 14:24:07 +0200</pubDate>
        </item>
                <item>
            <title>Incorrect Line Selected When Screen Is Not Fully Loaded</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/incorrect-line-selected-when-screen-is-not-fully-loaded-6965</link>
            <description>Hello, We have a parent table and a child table linked through parent_id. When the user clicks the Promote task on the parent record, another screen (modal document) opens and displays the child lines linked to that parent.On this screen, we have a Select Line task that should use the data from the currently selected line.The issue occurs when the user clicks Select Line too quickly, before the child lines have finished loading. In this case, the task can use data from another line that is not linked to the selected parent.This can result in incorrect data being selected or processed.Is there a way to prevent the Select Line task from being executed until the child lines are fully loaded and the correct current line is available? (we already have the task unchecked for empty subject, but it is still available for a few seconds when screen is open)   Thank you!</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Wed, 02 Sep 2026 14:18:50 +0200</pubDate>
        </item>
                <item>
            <title>Connecting Thinkwise MCP Server to OpenAI Codex CLI – OAuth shows as Unsupported</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/connecting-thinkwise-mcp-server-to-openai-codex-cli-oauth-shows-as-unsupported-6971</link>
            <description>Hi,I am trying to connect the Thinkwise MCP Server to OpenAI Codex CLI.My environment:Thinkwise Platform / Indicium / Universal UI: 2026.2.12	Codex CLI: 0.142.4I completed the IAM setup (access delegation, client application, client secret, roles and callback URL).The MCP server can be added successfully to Codex, but:codex mcp list→ Status: enabled→ Auth: UnsupportedAnd:codex mcp login thinkwise→ Error: No authorization support detectedThe Thinkwise documentation mentions Claude and other MCP-compatible AI tools, but currently provides setup instructions for Claude Code.Has anyone successfully connected Thinkwise MCP to OpenAI Codex CLI?Is additional OAuth configuration required for Codex, or is the current MCP beta OAuth flow not yet compatible with it?Thanks!</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Wed, 02 Sep 2026 13:36:58 +0200</pubDate>
        </item>
                <item>
            <title>How would you approach a &quot;tagging&quot; system within the Universal UI?</title>
            <link>https://community.thinkwisesoftware.com/ideas/how-would-you-approach-a-tagging-system-within-the-universal-ui-6976</link>
            <description>I think everyone here is familiar with tagging systems. The community posts themselves have the feature to add tags.I would love to implement something similar in our Thinkwise application, but am still thinking about what the best UX approach would be.The data structure you would work with is a linking table. However, showing the linking table as a detail tab of the main subject would not provide the smoothest user experience.Here are a few points that I think would have a large effect on UX but might need some “out of the box” solutions within the Thinkwise UI.It would be best if there were a control in the Form that works like the Column Filter. For read-only purposes an expression field works, but for editing this does not exist.	It would be great if users can add tags that do not exist yet on the fly. Normally, they would first need to open a pop up of the Tag table and create a new row there, then select it.	It would be great if adding tags was part of the same process as creating the main entity, because otherwise it’s so easy to be lazy and just not do the subsequent step of adding tags.The blog post about using Wizards definitely has given me some ideas, but I also know it can be nice to stick to the Form because people are used to it, so it’s more consistent, and it’s nice to have all fields visible. </description>
            <category></category>
            <pubDate>Wed, 02 Sep 2026 12:13:13 +0200</pubDate>
        </item>
                <item>
            <title>better layout for universal errors</title>
            <link>https://community.thinkwisesoftware.com/ideas/better-layout-for-universal-errors-6975</link>
            <description>Please improve the layout of universal errors. This is the error starting with the query.  Then I have to scroll down half way to even find the error.  Please put the error on top to greatly improve debugging time.  </description>
            <category></category>
            <pubDate>Wed, 02 Sep 2026 11:11:18 +0200</pubDate>
        </item>
                <item>
            <title>Create task or function to do smoke test of one table under data</title>
            <link>https://community.thinkwisesoftware.com/ideas/create-task-or-function-to-do-smoke-test-of-one-table-under-data-6972</link>
            <description>Smoke tests are running very long in a model ± &amp;gt; 300 tables. if you want to run for test. If it’s possible to execute the same tests for a selection of tables/views its easier to check changes to primary key of one table for example. Check mandetory fields in views as well.  </description>
            <category></category>
            <pubDate>Wed, 02 Sep 2026 10:40:15 +0200</pubDate>
        </item>
                <item>
            <title>Can a Universal custom component set the selected/current row of its subject?</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/can-a-universal-custom-component-set-the-selected-current-row-of-its-subject-6974</link>
            <description>I am building a Universal custom component for a ticket subject. The component renders an Impact x Effort matrix from the DataSet received through the documented custom component postMessage context. The next thing I would like to do is make interaction work with regular Thinkwise components. Ideally, when a user clicks a marker in the custom component, I want to set the current/selected row of the same subject to that ticket, so a normal Form component in the same screen type updates automatically. Is there a documented/supported way for a custom component to tell Universal: select row ticket_id = 4535 for the current subject  or to trigger the same behavior as selecting a row in a Grid/Card list? I know that when you have a grid, i f the current Thinkwise row changes, Universal sends updateDataRow and I could highlight a marker in my custom component matrix (Grid → Custom component). But I want to do it the other way around basically (Custom component → Form). I thought about using a Go to row action, but since it is a UI action I don&#039;t think it will work if the custom component calls the API to start a process flow.</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Wed, 02 Sep 2026 08:10:42 +0200</pubDate>
        </item>
                <item>
            <title>Change to TCP - support</title>
            <link>https://community.thinkwisesoftware.com/ideas/change-to-tcp-support-6834</link>
            <description>It would be very helpful ifyou can always add info to a ticket, also when it is processing (e.g. when you want to add some info / inform to close ticket). Now you don&#039;t have this option (buttons are disabled)	to assess a solution, there is only an option to add comment in case you don&#039;t accept. But when you accept, it might be useful to add info (got give extra feedback to TW)</description>
            <category></category>
            <pubDate>Tue, 01 Sep 2026 20:19:45 +0200</pubDate>
        </item>
                <item>
            <title>LLM Instruction - upload file (PDF) and ask a question</title>
            <link>https://community.thinkwisesoftware.com/ideas/llm-instruction-upload-file-pdf-and-ask-a-question-5320</link>
            <description>ChatGPT (open AI) now supports a feature where it’s possible to upload a file (PDF) and ask a question regarding that document.I see no connectors on TSF that can use this feature. This feature might be helpful to analyze documents (example: technichal documentation) and summarize it.</description>
            <category></category>
            <pubDate>Tue, 01 Sep 2026 16:52:42 +0200</pubDate>
        </item>
                <item>
            <title>Handler for copy action</title>
            <link>https://community.thinkwisesoftware.com/ideas/handler-for-copy-action-6973</link>
            <description>I would like to be able to set a handler specific for a copy action that also uses the source row primary key as parameter(s). This way we do not need to create a specific copy task every time we want to include weak-entities in the copy action but the handler can execute that logic.This also has the advantage that the copy action is always at the same position in the action bar.</description>
            <category></category>
            <pubDate>Tue, 01 Sep 2026 16:33:45 +0200</pubDate>
        </item>
                <item>
            <title>Showing columns moved to _query suffixed tables as a detail of their parent table in the SF</title>
            <link>https://community.thinkwisesoftware.com/ideas/showing-columns-moved-to-query-suffixed-tables-as-a-detail-of-their-parent-table-in-the-sf-6910</link>
            <description>Query fields were moved to _query-suffixed tables in the 2026.2 version of SF. As a result model-info is no longer (correctly) usable on any query field. This is inconvenient when you want to develop dynamic functionality or query metadata at a higher level. I happen to be aware of this change from the latest SF release because I was involved with upgrading to the 2026.2, but a developer who was not involved in the upgrade would have a very difficult time figuring out where the query columns are actually stored. It would require a significant amount of investigation and trial-and-error to uncover the correct locations.My suggestion would be to add the _query-suffixed tables as a detail in the form of their parents to alleviate this issue.</description>
            <category></category>
            <pubDate>Tue, 01 Sep 2026 15:25:45 +0200</pubDate>
        </item>
                <item>
            <title>Running process flows in SF</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/running-process-flows-in-sf-6969</link>
            <description>I am working on implementing the Reporting service Thinkstore solution.I am struggling with two things:How can I run this process flow in my Software Factory environment?The custom schedule is not running. Is this normal for SF branches?There is no API endpoint I can call. Should I turn on deep linking? But this is not possible for generated process flows, so I could try to do it via a DB query or I would need to copy all the dynamic code from this base model and add it manually with adjustments.If I want to trigger this process flow outside of the scheduleWould it work if I migrate it to a subflow? And have it as both a scheduled system flow and a subflow that can be started by a task?Or the other option is through an API call which has the same problem as point nr 1. So, some general advice for testing system flows and some advice for how I could start a generated process flow would be very helpful. Thanks!</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Tue, 01 Sep 2026 14:03:39 +0200</pubDate>
        </item>
                <item>
            <title>Automatically open lookup dropdown when a field receives focus</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/automatically-open-lookup-dropdown-when-a-field-receives-focus-6970</link>
            <description>Our end users have indicated that lookup fields would be more intuitive if the dropdown list opened automatically as soon as the cursor enters the field.Currently, users must first type at least one character, or enter a space followed by a backspace, before the lookup values become visible.I believe this behavior exists for a reason, but I&#039;m curious how other community members experience it.</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Tue, 01 Sep 2026 12:57:38 +0200</pubDate>
        </item>
                <item>
            <title>HTML Tooltips in Treeview</title>
            <link>https://community.thinkwisesoftware.com/ideas/html-tooltips-in-treeview-6940</link>
            <description>I would like to request the addition of several core capabilities that are currently missing in the Tree View component:Drag &amp;amp; Drop 	Add Expand All and Collapse All to (Custom-) Actionbar	HTML Tooltip	Lazy loading of child nodes to improve performance when working with large hierarchies</description>
            <category></category>
            <pubDate>Tue, 01 Sep 2026 09:55:19 +0200</pubDate>
        </item>
                <item>
            <title>Focus lost after closing a model document opened from a tab task — shortcut stops working</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/focus-lost-after-closing-a-model-document-opened-from-a-tab-task-shortcut-stops-working-6963</link>
            <description>Hi there!I have a tab task that opens a floating model document via a process flow. The tab task is triggered by a keyboard shortcut.After closing the model document, the shortcut no longer works. Pressing the key combination does nothing. Running the tab task through the ribbon still works fine, so it looks like focus is not returned to the original document.Two things restore the shortcut:Opening a detail or another screen and navigating back.	Adding an open document action at the end of the process flow.The second one isn&#039;t usable for me. I reuse the same process flow across multiple variants of the same table, and open document opens the default subject instead of the variant the user came from. Activate document would fit better, but the tab task doesn&#039;t pass a document id into the process flow, so I have nothing to target.Two questions:Is this the intended behaviour, or a bug in the focus handling?	If intended, how should I return focus to the original document in a flow that runs on multiple variants? Is there a way to get the calling document&#039;s id in the process flow?</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Mon, 31 Aug 2026 19:01:53 +0200</pubDate>
        </item>
                <item>
            <title>Add &quot;Apply to Tree&quot; to Conditional Layout setting</title>
            <link>https://community.thinkwisesoftware.com/ideas/add-apply-to-tree-to-conditional-layout-setting-6967</link>
            <description>The option Apply to Tree is missing here:     </description>
            <category></category>
            <pubDate>Mon, 31 Aug 2026 15:27:14 +0200</pubDate>
        </item>
                <item>
            <title>Release notes Thinkwise Platform 2026.2.13</title>
            <link>https://community.thinkwisesoftware.com/product-updates/release-notes-thinkwise-platform-2026-2-13-6952</link>
            <description>Hi everyone,This release brings the community-requested inline action bar to grids, improves IAM synchronization for separated environments, and continues to expand DB2 support. Note that this release includes several breaking changes, including updates to CI/CD invocations, DB2 trigger code groups, and Scheduler and grid behavior.Grids now support an inline action bar, letting users access action buttons directly from the active row without a dedicated toolbar.The Software Factory can now synchronize to IAM using the API instead of requiring direct database access, enabling synchronization in environments where the IAM and Software Factory are separated, such as in the Thinkwise Cloud. Synchronizing is now also available directly from the Creation screen.DB2 support continues to expand towards feature parity with other database types, with null exclusion for unique indexes, DYNAMIC RESULT SETS for procedures, and data-driven enrichments now supported.Several behavioral improvements are also included. Multi-row selection now correctly updates the active record, read-only fields are now focusable, and grid column headers behave more consistently when filtering, sorting, or scrolling. The Scheduler now evaluates all records for conditional time cell formatting, enabling more precise coloring conditions based on all matching records for a resource.This is a short-term support (STS) release of the Thinkwise Platform. STS release support expires as soon as a new release is made available. For example, support for version 2026.1.12 ends when version 2026.1.13 is released. See our Lifecycle policy for information about supported versions.Contents Breaking	Check CI/CD invocation of &#039;Verify&#039; for &#039;Synchronize to IAM&#039;		Check CI/CD invocation of &#039;Execute all creation steps&#039; task		Moved trigger code group for DB2 models		Changed default communication method in DevExpress		Improved performance of SFTP file storage types		Changed column width behavior for grids		Verify conditional formatting in Scheduler resources		New and changed	Data - Exclude null values from unique index in DB2		User interface - Inline action bar		Business logic - Support for DYNAMIC RESULT SETS in DB2 procedures		Deployment - Synchronize to IAM using the API		Deployment - Added &#039;Synchronize to IAM&#039; functionality to &#039;Creation&#039; screen		Deployment - Improved layout of Deployment screens		Enrichment - Support for data-driven enrichments for DB2		New session variable &#039;tsf_is_delegated_request&#039;		Preserving application settings during Indicium upgrades		Endpoints return additional results for PATs		Updated MessagePack NuGet package		Support for &#039;Time cell min width&#039; for lower versions		Added extended property &#039;AlwaysShowBarcodeKeyboard&#039;		Additional improvements to &#039;Model insight&#039; panel		All records now evaluated for Scheduler time cell formatting		Support for video files in the Preview screen component		Updated behavior of active record in multi-row selection		Improved focus behavior for read-only fields		Improved grid column header behavior		Improved behavior when a newly added record is hidden by filters		Fixed	Software Factory and Intelligent Application Manager		Indicium		Universal UI		Data model changes	Changes Software Factory		Table changes			Column changes				Changes Intelligent Application Manager		Table changes			Column changes			BreakingCheck CI/CD invocation of &#039;Verify&#039; for &#039;Synchronize to IAM&#039;Software FactoryAs a result of adding Synchronize to IAM using the API, a breaking change has been introduced. The task parameter Verify has been removed from the task Synchronize to IAM because it is no longer possible to disable it.Verification is now always performed when synchronizing to IAM. This change affects synchronization using CI/CD. Check your CI/CD pipelines to ensure they are compatible with this change.Synchronization using the Software Factory is not affected, as the parameter was already hidden. Check CI/CD invocation of &#039;Execute all creation steps&#039; taskSoftware FactoryAs a result of adding &#039;Synchronize to IAM&#039; functionality to the &#039;Creation&#039; screen, several parameters and task inputs have been added, renamed, moved, or excluded from the task Execute all creation steps. If you use CI/CD to invoke this task, upgrading to this version introduces a breaking change.Previously, all parameters in the task Execute all creation steps were mandatory, even when they were not used during task execution. Which parameters are mandatory now depends on the creation steps you select.Leave out parameters that are not used during task execution, as the task now rejects them if you provide a value.	If a conditionally required parameter is missing, the task returns a message telling you which parameter is missing. These checks have also been extended to the standalone tasks to keep behavior consistent.When calling the task through an API, the default procedure may already supply a value for empty parameters, so omitting a parameter does not always trigger a validation message. Parameters with a lookup, such as runtime_configuration_id and sync_target_iam_id, may also be rejected by CI/CD before the task&#039;s own validation is reached if you provide an invalid value. When calling directly from the database, neither of these applies and the task&#039;s own validation messages are always shown.Use the example below for a correct invocation:POST oindicium]/iam/sf/add_job_to_do_complete_creation{    &quot;model_id&quot;: &quot;MY_MODEL&quot;,    &quot;branch_id&quot;: &quot;1.12&quot;,    &quot;execute_complete_creation&quot;: 0,    &quot;model_vrs_name&quot;: &quot;1.13&quot;,    &quot;generate_definition&quot;: true,    &quot;generate_definition_error_handling&quot;: 1,    &quot;validate_definition&quot;: true,    &quot;validate_definition_error_handling&quot;: 3,    &quot;generate_source_code&quot;: true,    &quot;write_code_files&quot;: false,    &quot;write_prog_objects&quot;: false,    &quot;upgrade_method&quot;: 0,    &quot;execute_source_code&quot;: false,    &quot;execute_unit_tests&quot;: false,    &quot;execute_smoke_test&quot;: false,    &quot;run_sync&quot;: true,    &quot;sync_run_type&quot;: 0,    &quot;sync_target_iam_id&quot;: 1,    &quot;debug&quot;: 1}  Moved trigger code group for DB2 modelsSoftware Factory DB2Previously, INSTEAD OF triggers were part of the TRIGGERS code group for DB2 models. This code group has been moved to the new code group INSTEAD_OF_TRIGGERS, aligning it with other supported RDBMS types. This change helps prevent possible issues when using multiple RDBMS types in a model.When you upgrade, the upgrade script automatically adds the new code group to models that use DB2 and have INSTEAD OF triggers. The upgrade script also updates the code group of control procedures that have statically assigned templates.The upgrade script cannot automatically modify the code group from TRIGGERS to INSTEAD_OF_TRIGGERS for control procedures that use SQL assignments in combination with the TRIGGERS code group. Modify the code group of these control procedures manually and inspect the control procedure code to make any necessary adjustments. Changed default communication method in DevExpressIndiciumIn some environments, generating a report on Azure Web Apps (Windows) caused failures starting the reporting child process (prockees.exe). As a result, the default communication method used by the DevExpress reporting child process (prockees.exe) has been changed from Named Pipes to Sockets.No action is required for existing deployments that already use Socket.If desired, the previous behavior can be restored by configuring this in the appsettings.json file of Indicium:&quot;Reporting&quot;: {  &quot;DevExpress&quot;: {    &quot;TransportMode&quot;: &quot;NamedPipe&quot;  }} Improved performance of SFTP file storage typesIndiciumThe performance of SFTP file storage type connections has been improved. Connections are now pooled and remain open for up to 5 minutes, allowing subsequent requests to reuse the same connection.Up to 100 connections can be open simultaneously. Connections that remain idle for 5 minutes are closed automatically by Indicium.You can configure the behavior of SFTP connection pooling by adding the following configuration to the appsettings.json file of Indicium:    &quot;Storage&quot;:{        &quot;Sftp&quot;: {            &quot;PoolSize&quot;: 100,            &quot;IdleTime&quot;: &quot;00:05:00&quot;        }    } Changed column width behavior for gridsUniversal UIYou can determine whether the user interface automatically sets the column width in grids. Previously, setting Auto column width to No in grids could cause columns to appear wider than expected. The behavior has been updated to now render columns narrower than before, aligning with the behavior of previous generations of Thinkwise user interfaces. This change only affects the grid screen component; other components are unaffected.This change introduces a breaking change for existing grids, as data that previously fit within the column width may now be truncated or displayed differently. Check your existing grids after upgrading and adjust column widths where necessary. Verify conditional formatting in Scheduler resourcesUniversal UIAs a result of updating the behavior of conditional time cell formatting in the Scheduler, all records related to a resource are now evaluated for conditional time cell formatting.Verify existing Schedulers that use conditional time cell formatting after upgrading to this version. If any unexpected behavior occurs, add extra conditions to the cell color to ensure that only the intended cells are colored. New and changedData - Exclude null values from unique index in DB2New Software Factory DB2When you create a unique index on a DB2 database, the index considers null as a unique value by default. This means only one record with a null value can exist in the table.You can now exclude null values from the unique index for DB2 by selecting the checkboxes Unique and Exclude null values (menu Data &amp;gt; Data model &amp;gt; tab Tables &amp;gt; tab Indexes). Enabling these settings creates the index using UNIQUE WHERE NOT NULL, and nulls are no longer enforced for uniqueness. These settings were already available for other RDBMS types. User interface - Inline action barCommunity idea New Software Factory Universal UI BetaAction bar buttons in a grid are typically placed in a toolbar above or beside the grid. You can now also place them directly within the active row using the Inline action bar, keeping actions close to the data the user is working with. It becomes visible when hovering over the active row, and follows the active row as users navigate through the grid.The inline action bar is only available for grid screen components. To enable it, go to menu User Interface &amp;gt; Screen types &amp;gt; tab Design. In the form of the grid screen component, select the checkbox Enable inline action bar.Once this setting is enabled, a new action bar is added to the tab Action bars. Here, you can configure how the buttons are arranged, such as which buttons appear near the start, near the end, or in the overflow menu of the inline action bar. This is similar to how a custom action bar is set up.This feature is launched in Beta. The actions now only show on hover on the selected row, which is not the most intuitive behavior. We are currently evaluating alternative solutions. The inline action bar allows users to quickly select actions for the active row Business logic - Support for DYNAMIC RESULT SETS in DB2 proceduresNew Software Factory DB2For a procedure header, DB2 requires a DYNAMIC RESULT SETS and a value equal to the maximum number of returned result sets before it can return a result. For example, to return rows from customer_table as a single query result in a procedure, the header must include DYNAMIC RESULT SETS 1.These options can now be configured in the Software Factory for DB2 procedures. To do this, go to Business logic &amp;gt; Subroutines (procedures) &amp;gt; Subroutine options and select DYNAMIC RESULT SETS. Then, in the field Value, enter the maximum number of returned result sets. Deployment - Synchronize to IAM using the APINew Software FactoryPreviously, synchronizing a model to IAM required the Software Factory to have direct access to the IAM database. This approach was not ideal for environments where the IAM and Software Factory are separated, such as in the Thinkwise Cloud. To address this, a new synchronization method has been added that uses the IAM API instead of direct database access.A main administrator or a user with the role Developer mode in IAM must act as a pool user to set the necessary pool user credentials for the API method as described below. The new and required role Model synchronization is automatically assigned to Developer mode users in IAM.In the menu Maintenance &amp;gt; IAM configurations you can select whether the Synchronization method is set to Database or API. For the API method, you must provide an API URL pointing to the target IAM environment (for example, https://server/indicium/iam/iam). Then, execute the task Set pool user credentials to set up the necessary credentials. All existing configurations are automatically set to Database when upgrading.You can only set one synchronization method per IAM configuration. To synchronize with the same IAM using both methods, you need to create two separate IAM configurations.As part of this update, the field Custom version name has been removed. The field As version is still available to specify a different version name. It is prefilled with the most recently used version name, or the branch name if no previous version name is available.A breaking change was introduced as part of this feature. See Check CI/CD invocation of &#039;Verify&#039; for &#039;Synchronize to IAM&#039; for more information. Select &#039;API&#039; as the synchronization method Deployment - Added &#039;Synchronize to IAM&#039; functionality to &#039;Creation&#039; screenChange Software FactoryAfter executing the source code of your application using Creation, you also need to synchronize the changes to IAM. These two steps were previously done in separate screens in the Software Factory, Creation and Synchronize to IAM respectively. To improve the development workflow, we have added Synchronize to IAM functionality into the Creation screen, allowing you to synchronize directly to IAM or to storage from Creation.You can now include synchronization as part of the Creation when you execute the task Execute all creation steps (menu Deployment &amp;gt; Creation &amp;gt; tab Generate definition). Several controls for existing parameters in the task pop-up have been changed from Radio button to Combo to accommodate the new synchronization settings.To configure the synchronization settings, select Synchronize to IAM in the task pop-up. After selecting this option, the field Version name becomes mandatory because it is used as the name under which the branch is synchronized. Synchronization runs after all preceding creation steps have completed. When synchronizing, the process now also checks for duplicate synchronization runs, missing pool user credentials, and an invalid synchronization type.Known issue: When you start a synchronization without configured pool user credentials, an error message states that it has been cancelled for this reason. However, the run still starts, generates all synchronization objects, and only stops afterwards. It is then reported as successful, even though no actual synchronization with IAM has taken place. This will be solved in the next STS version.Furthermore, the tab Synchronization to IAM has been added to menu Deployment &amp;gt; Creation. This tab provides the same functionality and layout as the tab Synchronization in menu Deployment &amp;gt; Synchronize to IAM. Changing which modules or roles are synchronized, or modifying the post-synchronization code, still requires using the Synchronize to IAM menu.Finally, Creation presets (menu Maintenance) have been updated with the option to include or exclude synchronization in a creation preset. The screen has been redesigned to make better use of the available space, and logic has been added to ensure that certain fields become mandatory when related fields are populated. Existing presets are left unchanged, so the synchronization option is not automatically enabled for them. If you want to include the synchronization step in a preset, create a new preset or update an existing one, optionally renaming it to reflect the change.As part of this change, several parameters and task inputs have been added, renamed, moved, or excluded from the task Execute all creation steps. If you use CI/CD to invoke this task, upgrading to this version introduces a breaking change. For more information, see Check CI/CD invocation of &#039;Execute all creation steps&#039; task. Synchronize to IAM is now included in &#039;Execute all creation steps&#039; Deployment - Improved layout of Deployment screensChange Software FactoryThe following screens in menu Deployment have been updated for consistency and usability: Creation &amp;gt; tab Generate Definition, Creation &amp;gt; tab Generate Source Code, Synchronization to IAM, and Deployment Package.Action bar - The action bar in Creation &amp;gt; tab Generate Definition has been moved to tab Current and changed to a custom action bar with only relevant actions.	Search - The Search component in tabs History and Steps now only searches relevant columns.	Tab headers - Tab headers for tab Steps are now displayed consistently across all affected screens. The tab header for tab Progress in Deployment Package is also now shown.	Step-related tasks - On-error tasks (Retry, Skip, Abort) and follow tasks (Follow active step, Unfollow active step) have been moved to tab Steps and their display type updated to Icon + text. Enrichment - Support for data-driven enrichments for DB2New Software Factory DB2Support has been added for data-driven enrichments in DB2 models. To create a data-driven enrichment, select the checkbox Data driven (menu Enrichment &amp;gt; Model enrichments &amp;gt; tab Maintenance &amp;gt; tab Enrichment &amp;gt; tab Form). After selecting the checkbox, select a RDBMS type from the dropdown. The selected RDBMS type determines on which environment the enrichment will be executed. New session variable &#039;tsf_is_delegated_request&#039;New IndiciumThe session variable tsf_is_delegated_request has been added to Indicium, indicating whether a request is authenticated using access delegation roles.It has the following possible values:1 - The request is authenticated via a Client Application or a PAT that is scoped using access delegation roles.	0 - The request is authenticated via any other method, including a Client Application configured with Full access.The session variable has been introduced as part of the recently added access delegation roles for a client application. This feature allows you to scope user-delegated API access for a client application, which is particularly useful for setting up MCP integrations. Preserving application settings during Indicium upgradesNew IndiciumPreviously, upgrading Indicium could cause the appsettings.json file on the current installation to be reset, resulting in a loss of the application settings. To address this issue, Indicium now comes with an appsettings.sample.json file, instead of appsettings.json. The appsettings.json file is no longer overwritten when a new version of Indicium is installed, preserving any custom application settings. Endpoints return additional results for PATsChange IndiciumPreviously, the $metadata and openapi endpoints always returned 403 Forbidden for PATs, regardless of the token&#039;s actual permissions. These endpoints now return results for applications within the PAT&#039;s permissions. Applications outside the PAT&#039;s permissions still return 403 Forbidden as expected. Updated MessagePack NuGet packageChange IndiciumWe have updated the MessagePack NuGet package from version 3.1.4 to version 3.1.8. Indicium uses MessagePack internally for communication with components such as reporting and printing. A previous version of this package was reported to have security vulnerabilities. Although Indicium was not affected, we updated the package to include the latest security fixes. Support for &#039;Time cell min width&#039; for lower versionsNew Universal UIPreviously, the setting Time cell min width was only available in Thinkwise Platform version 2026.1 and higher. Entering a value for this setting adds a minimum width for time cells in the Scheduler. This is useful in Schedulers with many columns, where the time cells can become very small and hard to read.The extended property SchedulerTimeCellMinWidth has been added to make this setting available in Thinkwise Platform version 2025.3 and lower. Added extended property &#039;AlwaysShowBarcodeKeyboard&#039;Community idea New Universal UIBy default, Barcode scanner and Cortex barcode scanner controls do not show the virtual keyboard when focused. Users can select the keyboard icon to show the virtual keyboard and enter data manually. You can configure this using the Show action button setting.In some cases, suppressing the virtual keyboard is not desired or could cause compatibility issues on specific devices. You can now set the extended property AlwaysShowBarcodeKeyboard to True to always show the virtual keyboard. When enabled, the keyboard icon is hidden, as it is no longer needed. Additional improvements to &#039;Model insight&#039; panelNew Universal UIThe Model Insight panel can now be resized. To reset it to its original size, double-click the panel&#039;s header. During a model refresh, the current size and position of the panel is maintained.Furthermore, the Message field has been added to the panel. Whenever a message or notification is shown, the message identifier is displayed in this field. All records now evaluated for Scheduler time cell formattingChange Universal UIYou can add conditional formatting to time cells in a Scheduler to highlight certain time cells based on conditions. This allows you to highlight time cells based on a column value, for example, to color time cells red when a resource is unavailable.Previously, this functionality was limited in the Universal UI. It only evaluated time cell formatting for the first matching record for a resource. Subsequent matching records for the same resource were ignored and time cell formatting would not be evaluated for those records.Now, all records related to a resource are evaluated for conditional time cell formatting. This allows for more complex conditions, such as using a work time table to show when a resource is available or unavailable.This also makes it possible to use the worktime table functionality from the Windows GUI Scheduler in the Universal UI. Unlike the Windows GUI, the Scheduler in Universal UI only uses one table or view. To achieve the same result, create a view that combines resources, activities, and worktimes. Use this view as the data source for the Scheduler and then add conditions for time cell formatting as needed.Conditional formatting for time cells is now displayed for all time steps and resources if there are no conditions defined, aligning it with the behavior of conditional layout in other components.Time cells can now be conditionally formatted based on all relevant records for a resourceThis change may introduce unexpected behavior in existing Schedulers that use conditional time cell formatting. See Verify conditional formatting in Scheduler resources for more information. Support for video files in the Preview screen componentChange Universal UIThe Preview screen component now supports video files in the Universal UI. Previously, a file column in the Preview screen component that contained an .mp4, .webm or .ogv file would display the message &quot;No preview available&quot;. These formats are now shown in a video player inside the Preview screen component, in the same way images are already displayed. All other file types behave as before. Updated behavior of active record in multi-row selectionChange Universal UIPreviously, selecting multiple rows in a grid did not update the active row. This meant form and detail tabs still showed the data of the originally active record, rather than the record last added to the selection.The active row now always follows the last record added to a multi-row selection. If the active record is removed from the selection, the first remaining selected record becomes the new active record.This behavior also applies in grids with Auto-edit enabled, but editing is suspended if more than one row is selected. Additionally, Auto refresh is now disabled during multi-row selection to prevent records from dropping out of the selection when the dataset updates. Improved focus behavior for read-only fieldsChange Universal UIPreviously, read-only fields in the Form and Formlist screen components could not be focused. Read-only fields are now focusable, both outside of edit mode and when set to read-only while in edit mode. Focused read-only fields display a distinct focus style, separate from editable fields.This also changes focus behavior when switching to edit mode:The focused field is retained when switching into edit mode.	When using F6 or Shift + F6 to switch to a form, or when entering edit mode with no focused field, focus moves to the first focusable field instead of the first editable field.	When adding a new record, the first editable field is focused, as before.In addition, if you focus a read-only field and then open the filter pop-up (CTRL + R or the filter button in the action bar), the same field is now focused in the filter pop-up.Image, videolink, and signature fields remain non-focusable. Improved grid column header behaviorChange Universal UIFiltering, sorting, or horizontally scrolling in a grid could sometimes cause unwanted behavior. For example, column header labels could be truncated or wrapped, or column widths could change unexpectedly.To ensure more consistent behavior of column headers, the following changes have been made:Space is no longer reserved for the Filter icon in the column header if no filter is applied, or if filtering is not allowed.	When scrolling horizontally, the column width is now cached. Columns no longer dynamically resize when scrolling back and forth.	The column width no longer changes when sorting is applied or removed.Additionally, for columns with right-aligned content, the Filter icon has moved from the right side of the column header to the left side. Previously, the space reserved for the icon on the right prevented the header text from being fully aligned to the right. This change applies to all grids, including pivot grids. Improved behavior when a newly added record is hidden by filtersChange Universal UIPreviously, if a newly added record triggered a process flow but was hidden by active filters, the process flow would abort. The message &quot;The saved data can not be displayed on this screen.&quot; would appear with a Show button to navigate to the record.The active document&#039;s filters are now automatically replaced with a filter matching the primary keys of the newly added record. This allows the process flow to continue without any action from the user. FixedSoftware Factory and Intelligent Application ManagerDB2 Previously, running smoke tests on a DB2 database that included BLOB or DBBLOB columns would result in an error. This was caused by a deficiency in the DB2 database driver, which did not support the declaration of variables for these column types. This has been fixed. Smoke tests on DB2 that declare variables are now compiled into a stored procedure named tsf_smoke_test and called during the test run. Note that this procedure persists in the database after the smoke test has finished.	Fixed a performance issue when loading comments in the Code review screen (menu Quality &amp;gt; Code review &amp;gt; tab All comments). When a comment contained many HTML tags, generating the Title shown in the grid was slow. This has been fixed.	During the validation process, errors could occur indicating non-unique primary keys in the dataset on refresh. This has been resolved.	An incorrect error could occur when upgrading a SQL Server datatype. Error: Domain &quot;..&quot; already exists with a different datatype configuration. This would only occur on nchar/nvarchar datatypes. This has been resolved.	Platform version 2026.2 introduced the capability to download a deployment package from within the Software Factory. To be able to download a deployment package, the folder location of the Deploy folder is required. Due to an oversight, the registration of the folder location only succeeded for file locations using backslashes (\). This has been fixed. Now, back and forward slashes are properly handled.IndiciumThe $apply query parameter is now included in the OpenAPI specification, enabling code generators to produce clients that support it.	Previously, searching for a date or time value did not respect the user&#039;s configured date format. For example, a user with the format dd-mm-yyyy could not find results by searching for 14-08 or 2026. This also occurred when using the Starts with, Contains, or Ends with conditions in the Filter pop-up. This has been fixed.Universal UIFixed an issue for custom prefilters and cube views that included reference filters in Manage prefilters. If a user tried to save after creating or changing a custom prefilter or cube view, it would result in an error.	Clicking the drag-handle column header in a grid would cause a runtime error. This has been fixed.	Previously, if a user pressed Tab in a grid, the user would skip past editable grid columns. This would occur only if the grid column was set to Read-only in layout_mode &quot;navigate&quot;, but Editable in layout_mode &quot;update&quot;. This has been fixed.	If a user adds a record in a grid that was not directly visible due to applied filters, a notification appears. Users can select Show to navigate to a new screen where the newly added record is visible. Previously, using keyboard shortcuts would affect the incorrect record and screen. For example, deleting the record using Ctrl + -, would delete the active record of the previous screen. The affected keyboard shortcuts now work as expected.	Fixed an issue where if a user typed a decimal number starting with the decimal separator (for example &#039;,25&#039; instead of &#039;0,25&#039;) would cause the cursor to jump to the beginning of the field after the first digit was entered.	Fixed an issue where the IN field in an inline filter form would remain editable. It is now set to Read-only, as expected.	Fixed an issue where invalid options entered into a domain control with domain control elements, or a report action combo would remain in the input field after deselecting the field. The field now reverts to the latest selected valid option immediately upon deselecting the field.	Previously, if a user closed a document with a pivot grid in edit mode, it could cause the application to crash. This has been fixed.	If a user tried to edit a record that was already deleted by another user, or directly from the database, it would cause the interface to crash. Users would have to restart the application to continue working. This has been fixed.	Fixed an issue where activities in a Scheduler would not be shown for subjects with a column named &#039;id&#039;.	In some cases, clicking the outer cell of a grid or using the keyboard to navigate the grid would cause the domain and its control to not show or update. This has been fixed.	Previously, a process flow could get stuck on the process action Go to first/previous/next/last row or Go to row if the record was not on the current grid page. This has been fixed.	Fixed an issue in which the grid summary row would sometimes not be displayed.	Fixed an issue where partially typing a value in a lookup field and deselecting it before the options finished loading would reset the field to its original value. Now, the first matching option is selected, sorted by Starts with then Contains. If no options match the entered value, the field still resets as expected.	Fixed an issue where lookup values were not shown when the lookup&#039;s underlying column used a Datetime control with the Time zone set to Local.	Previously, if a model update was available, selecting Update from the profile menu &amp;gt; About would not clear the model cache or reload the page. Additionally, if a user interface update was available, selecting Update now from the pop-up would sometimes not reload the page. This has been fixed.	Previously, after exiting edit mode in a grid using a keyboard shortcut (for example, Escape or Ctrl + Enter), users could no longer use the arrow keys to navigate the grid. This has been fixed.	Fixed an issue where detail references in the advanced Filter pop-up were displayed inconsistently.	Fixed an issue where holding down the ↑ or ↓ arrow key in a paginated grid would cause the application to freeze. In addition, holding ↑ or ↓ while on a record other than the first or last no longer switches pages. Data model changesData model changes for the Software Factory and IAM meta-models are listed here. This overview can be used as a reference to fix dynamic control procedures, dynamic model code or custom validations after an upgrade.Changes Software FactoryTable changesSF - From table			SF - To table		-			message_broker_subscription		-			message_broker_subscription_mapping_mqtt		-			message_broker_subscription_mqtt		-			sync_object		generate_sync_scripts			generate_sync_object		generate_sync_scripts_step			generate_sync_object_step		sync_script			-		  Column changesSF - Table			SF - From column			SF - To column			Mandatory			Default value		creation_preset			-			run_sync			1			1		creation_preset			-			sync_run_type			0			0		creation_preset			validation_result_creation			validate_definition_error_handling			0			0		deployment_run			verify			-			-			-		enrichment			-			rdbms_type			0			-		generate_sync_object			generate_sync_scripts_status			generate_sync_object_status			0			0		generate_sync_object_step			generate_sync_scripts_step_id			generate_sync_object_step_id			1			-		generate_sync_object_step			generate_sync_scripts_name			generate_sync_object_name			1			-		generate_sync_object_step			generate_sync_scripts_step_status			generate_sync_object_step_status			1			-		iam_sync_job_step			-			sync_object_pk_hash			0			-		iam_sync_job_step			-			iam_sync_job_step_type			1			-		message_broker_message_mqtt			-			correlation_data			0			-		query_conv			model_id			-			-			-		query_conv			branch_id			-			-			-		sync_run			-			sync_url			0			-		sync_run			verify			-			-			-		sync_run			sync_as_branch_id			vrs_name			0			-		sync_run			generate_sync_scripts_job_id			generate_sync_object_job_id			0			-		sync_target_iam			-			sync_method			1			-		sync_target_iam			-			sync_url			0			-		sync_target_iam			server_name			server_name			0			-		sync_target_iam			db_name			db_name			0			-		tab			work_flow_tab_id			-			-			-		tab			priority			-			-			-		  Changes Intelligent Application ManagerTable changesIAM - From table			IAM - To table		-			post_sync_code		-			sf_message_broker_subscription		-			sf_message_broker_subscription_mapping_mqtt		-			sf_message_broker_subscription_mqtt		  Column changesIAM - Table			IAM - From column			IAM - To column			Mandatory			Default value		sf_message_broker_message_mqtt			-			correlation_data			0			-		  </description>
            <category></category>
            <pubDate>Mon, 31 Aug 2026 10:44:56 +0200</pubDate>
        </item>
                <item>
            <title>SF copy tasks: Don&#039;t copy generated_by_control_proc_id</title>
            <link>https://community.thinkwisesoftware.com/ideas/sf-copy-tasks-don-t-copy-generated-by-control-proc-id-6962</link>
            <description>When you copy a object that was generated by dynamic code, it also copies generated_by_control_proc_id for the object and all sub-objects that are included in the copy task. For example when copying a table.Generating the full model will then remove the table. To prevent this, there is an option to unlink the table from the dynamic code, but you also need to execute (and confirm 1 by 1) this for all columns for example.Could generated_by_control_proc_id please be inserted empty when executing a copy action in the SF?</description>
            <category></category>
            <pubDate>Fri, 28 Aug 2026 14:55:35 +0200</pubDate>
        </item>
                <item>
            <title>Open document subtitles: option to use subtitle from active detail</title>
            <link>https://community.thinkwisesoftware.com/ideas/open-document-subtitles-option-to-use-subtitle-from-active-detail-6931</link>
            <description>The subtitles for open documents are great (Release notes Thinkwise Platform 2026.2.12 | Thinkwise Community), however there are some exceptions where you want to use the subtitle of the active detail (one level down) instead of the document itself. Most menu items in the SF are a good example for this. For instance in the Functionality screen you don’t want to show the branch name as subtitle, but you want to show the control procedure name. I am guessing this is the reason the subtitles are currently disabled for the SF.Therefor I would like a setting on the subject (+variant) level so that you can mark that subject to use subtitles of the active detail instead of the subject itself.  </description>
            <category></category>
            <pubDate>Fri, 28 Aug 2026 12:04:27 +0200</pubDate>
        </item>
                <item>
            <title>Show that a pre-filter is active</title>
            <link>https://community.thinkwisesoftware.com/ideas/show-that-a-pre-filter-is-active-6960</link>
            <description>We have pre-filters behind the three dots in a menu.Users are sometimes not aware that pre-filters are active as you cannot see this directly on screen.Is it possible to add some kind of notification or icon to show pre-filters are active? </description>
            <category></category>
            <pubDate>Thu, 27 Aug 2026 16:05:58 +0200</pubDate>
        </item>
                <item>
            <title>Option to rename the form tab</title>
            <link>https://community.thinkwisesoftware.com/ideas/option-to-rename-the-form-tab-6959</link>
            <description>We would like to be able to use a different label for the form tab in different menu&#039;s.For example: we would like to rename the form for purchase orders to Purchase order and the form for sales orders to Sales order.I have been told this is only possible by using a different screen type for each screen. We would like the option to use the same screen type, but a different label. </description>
            <category></category>
            <pubDate>Thu, 27 Aug 2026 15:42:32 +0200</pubDate>
        </item>
                <item>
            <title>Generate code group + Execute as combined task</title>
            <link>https://community.thinkwisesoftware.com/ideas/generate-code-group-execute-as-combined-task-1282</link>
            <description>After adding a field or parameter, all associated stored procedures must be updated, because else error messages will appear when using the appropriate task or table after refresh.  Very often it is then a matter of going through the following steps: 1. generate 2. execute  The code generation can be done once for multiple control procedures.    As far as I know, executing the code, must be done 1 by 1 and takes a relatively long time.  A task that automatically performs the 2 steps in sequence for all selected control procedures would be great and speed up the development of applications.</description>
            <category></category>
            <pubDate>Thu, 27 Aug 2026 12:02:19 +0200</pubDate>
        </item>
                <item>
            <title>Show a loading bar while stage requests are being performed</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/show-a-loading-bar-while-stage-requests-are-being-performed-6955</link>
            <description>I recently came across a task that would take a very long time to execute when performed on 1000+ rows at once, not because of the task itself, but because the context was being performed for each row and taking some time. Luckily I could find a way to improve the context, so the wait time is down from minutes to a couple of seconds, but still I think in those couple of seconds to users it might appear that the application is unresponsive and it would be good to show a process is running when a task is being staged.</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Thu, 27 Aug 2026 11:49:50 +0200</pubDate>
        </item>
                <item>
            <title>Untranslated option for universal gui</title>
            <link>https://community.thinkwisesoftware.com/ideas/untranslated-option-for-universal-gui-6432</link>
            <description>In the windows gui you had the option to show the application without any translations. This functionality is missing from universal. For debugging purposes I would very much like this option to return. When I investigate a problem on an environment I don’t know I have to use the translated object, translate this to the database object. Then revert this to get the menu objects I need. I know application insights is a thing. But that doesn’t always work and is still not as fast as just showing the application without translation used to be. </description>
            <category></category>
            <pubDate>Thu, 27 Aug 2026 11:37:00 +0200</pubDate>
        </item>
                <item>
            <title>Option &#039;Default Expanded&#039; missing in task parameters</title>
            <link>https://community.thinkwisesoftware.com/ideas/option-default-expanded-missing-in-task-parameters-6946</link>
            <description>We were surprised to discover that the &quot;Default Expanded&quot; setting is available for form fields but not for task parameters.Could this option be added to task parameters as well?  </description>
            <category></category>
            <pubDate>Thu, 27 Aug 2026 11:16:54 +0200</pubDate>
        </item>
                <item>
            <title>Change default screentype for screentypes (SF)</title>
            <link>https://community.thinkwisesoftware.com/ideas/change-default-screentype-for-screentypes-sf-6687</link>
            <description>Please chance the default screentype for screentypes in the SF. Currently assigning is a tab, which is very confusing. Please make assigning a detail instead. Current situation: Suggested change:  </description>
            <category></category>
            <pubDate>Thu, 27 Aug 2026 10:21:10 +0200</pubDate>
        </item>
                <item>
            <title>Speed up your data retrieval</title>
            <link>https://community.thinkwisesoftware.com/news-blogs-21/speed-up-your-data-retrieval-6957</link>
            <description>Last quarter, this screen opened in a second. Now the user clicks, and waits, and watches the spinner turn for twenty. Nothing in the model changed. Nobody rewrote a query. The data did the damage on its own: the Orders table quietly swelled from fifty thousand rows to two million, and a query that never needed an index suddenly, badly does. This is how performance problems often arrive. Not with a bang or an outage, but as a slow drift that users feel in every click, long before anyone thinks to open a query plan.Performance problems rarely have a single cause, and fixing them rarely takes a single technique. This blog walks through the checks and habits that make the biggest difference, in the order you would actually apply them. You start by ruling out infrastructure and structural issues, then work inward: the smoke tests, the tables and views behind your subjects, and the cubes and queries that have to stay fast as data volumes grow.Before you start. Universal UI and Indicium ship a new release every month, and those releases stay backwards compatible with every supported platform version. You can run the latest Universal UI and Indicium (2026.2.12) on an older platform version such as 2025.3 and still benefit from every runtime improvement. Always run the latest Universal UI and Indicium. For the details, see the Thinkwise lifecycle policy. Understand the architecture before you tuneIf you are in the process of transitioning from the Windows GUI to the Universal UI, it pays to understand the difference between a 2-tier and a 3-tier architecture, and what it does to the performance of your application. A query that was optimized for the Windows GUI is not always the right solution for the same screen in the Universal UI.The way the two architectures load data, page through large datasets, and split work between client and server is covered in detail in Transition to the Universal UI in the Thinkwise documentation. What matters for performance is that a query tuned for the Windows GUI is not automatically the right one for the same screen in the Universal UI, so measure before you assume.Network latency. Because the Universal UI works over the internet, it is sensitive to network latency. Optimizing your network and cutting latency pays off directly. A few web server settings do most of the work:Enable GZIP or Brotli compression. This compresses the data sent to and from your application and noticeably increases throughput. See IIS configuration in the Thinkwise documentation for turning on compression in IIS.Configure HTTP/2. It has lower latency and better efficiency than HTTP/1.1.Left HTTP/1.1 causing cascading and a lot of waiting, right HTTP/2 executing simultaneouslyMake sure the web server is properly reachable for your users, with firewall whitelisting where needed. See the reference architecture in the Thinkwise documentation for the network and firewall setup. Test against a production-like environmentTo judge whether something is really slow, you need somewhere realistic to measure it. Set up a performance-testing environment that matches production, both in database size and in infrastructure. This is why we recommend that your acceptance environment is essentially a duplicate of production.The reason is simple: almost any query performs well against a small dataset. A screen that flies with a hundred test rows can crawl once a table holds hundreds of thousands. Test against production-sized data and you get an honest answer about how a query will behave for real users. When everything feels slow, check the infrastructureIf every action you run is slow, the problem is probably not one query. That pattern points at the infrastructure underneath the application. Check that your environment is set up correctly and has enough resources for the load you expect. Our reference architecture documentation describes what a healthy setup looks like.To tell whether a slow screen is the database&#039;s fault or the web server&#039;s, use Server Timing. Indicium returns Server-Timing metrics on most of its responses, so in your browser&#039;s developer tools you can open the slow request, go to the Timing tab, and see how much of the round trip was spent in the database versus in Indicium itself. One thing it will not show is the client: if the delay is in the browser rendering the screen, that does not surface here, so rule it out separately. See Indicium troubleshooting in the Thinkwise documentation for how to read these timings.A blocked-up database also slows everything down over time. Indexes fragment as data changes, and fragmented indexes cost extra reads on every query. Rebuilding them regularly keeps that overhead from creeping in.Tip. Schedule tsf_optimize() to run regularly on SF, IAM and Application databases. It rebuilds your indexes so fragmentation does not quietly slow the database down. See System flow schedules in the Thinkwise documentation to set the schedule. If the whole database is slow and you have no idea where to start, reach for a diagnostic toolkit. Brent Ozar&#039;s free First Responder Kit is a well-known set of scripts that inspects a SQL Server instance and points you at the worst offenders: missing indexes, expensive queries, and configuration problems worth a closer look. Understanding predicate pushdownPredicate pushdown decides how fast almost every database query in your application runs. Take a Customer overview subject prefiltered on status = &#039;Active&#039;: if status is indexed, the database applies that filter at the base table and reads only active customers. Base that same prefilter on a query with a DISTINCT instead of a column condition, however, and pushdown breaks: the database has to build the entire deduplicated result set before it can apply the filter, so the query touches every customer regardless of how many are actually active. It is worth understanding this once, because the same rule also explains why a heavy expression field or a view behind a subject can quietly turn slow as the data grows.When pushdown works, filtering a view costs proportionally less than reading all of it. When pushdown is blocked, filtering can cost nearly as much as selecting the entire view, because the engine has to process every row before it can discard the ones the filter excludes. The difference between a pushdown-friendly view and a blocking one is often a single line:-- blocking: customer_id is not in the partition bycreate view v_customer_rank asselect customer_id, region, order_total,       rank() over (partition by region order by order_total desc) as region_rankfrom orders;select * from v_customer_rank where customer_id = 42;  -- scans everything first-- pushdown-friendly: the filter column is in the partition byselect * from v_customer_rank where region = &#039;EU&#039;;     -- pushes down cleanlyThis is exactly the trap in a view primary key built with ROW_NUMBER(). If the ID a user filters or joins on is not part of the PARTITION BY, every lookup by that key scans the full view first.A handful of other SQL constructions block pushdown too, and which ones depend on your RDBMS, so verify on your own execution plan rather than assuming:DISTINCT always blocks: the engine has to build the full deduplicated set before any filter can apply on top of it.	UNION blocks because it deduplicates. UNION ALL has no dedup step, so many optimizers can push a filter into each branch on its own.	Aggregates: filtering a grouping column is safe, but filtering an aggregated value blocks, because the aggregate does not exist until the whole group has been processed. So a cube that lets users filter on a measure like total revenue over 1000 has to aggregate every group first, then discard the ones that fall short, on every drill-down.	Outer joins: a filter on the preserved side pushes down, while a filter on the nullable side has to wait until after the join.	CTEs usually inline like a subquery, but some engines materialize them (for example, DB2 for i), which blocks pushdown.Not every slow view is a pushdown problem. Missing indexes on the base tables, non-sargable filters (wrapping a column in a function so the index cannot be used), and stale statistics all cause the same symptom: a view that is fast with a handful of test rows and unusably slow in production. Work from the outside in to tell them apart. Check the HTTP requests to see which call is actually slow, look at server-side timing to confirm the delay is in the database round trip and not the client, then pull the execution plan to see whether the filter is applied at the base table or only after the full view has been built. A blocked pushdown shows up there as a full scan on a table where you expected an index seek. Start with the smoke testsBefore you spend a single minute tuning a view or rewriting a control procedure, run the smoke tests. They will catch several classes of issues that would surface as slow or broken screens in production, and give you a good idea of where to start.Smoke tests check every SQL query your model generates and will warn you about a lot of issues: malformed queries, editable views that lack the RDBMS support to actually be edited, outdated parameterization, and stale dependencies between views, triggers, and stored procedures. Make sure to resolve all findings before you continue.One signal is worth watching closely: a smoke test step that times out after 10 seconds. In the current release this raises a warning rather than an error, but it is worth watching these closely. In practice, an unusually slow smoke test is often the first hint that a view or procedure needs attention.All smoke tests should pass for your application Fix slow subjectsMost subjects are backed by a table, and a well-modeled, properly indexed table is usually fast to begin with. A subject can also be backed by a view, and when one turns out to be slow, that view is often the reason. Either way the same fundamentals decide how fast the grid, the lookups, and the filters on top all feel: a sound primary key, indexed base tables, lean expression fields, and sensible prefilters. The Thinkwise performance guide in the documentation collects these fundamentals in one place.Index the base tablesA subject is only as fast as the tables under it, and the biggest single lever there is indexing. SQL Server and the Software Factory indexes some things for you and leaves the rest to you, so it pays to know which columns almost always earn an index in a typical application database.Primary keys are indexed automatically, as a clustered index by default. Indexes for foreign keys and default sort columns are automatically generated by the Software Factory.Those automatic foreign-key indexes also cut down on locking and blocking during cascading deletes and updates on the parent table. Beyond the foreign keys, index the columns your queries lean on: the columns in join conditions, the selective columns in WHERE clauses that users (pre)filter on such as title, status, order number, or SKU.When queries filter on several columns together, a composite index is often worth more than several single-column ones. Order matters: put the most selective, most commonly-filtered column first. The include checkbox when adding new index columns turns an index into a covering index, so a lookup never has to jump back to the table for a handful of extra columns.Indexing is a trade-off, not a free win. Every index speeds up reads but slows down every insert, update, and delete, and it takes storage, so do not add one just in case. A bit column, or a column with two or three distinct values, rarely helps on its own unless it is a filtered index or a trailing column in a composite. And avoid a random GUID as a clustered primary key: new values insert in random positions and fragment the table, so prefer an int or bigint identity columns, or keep the GUID as a nonclustered key while something sequential clusters the table.Over-indexing has a second, less obvious cost. Once a query gets complex enough, building the query plan itself can take real time, and the more indexes the optimizer has to weigh for the tables involved, the longer that step can take. Push it far enough and the plan-building can run into the optimizer&#039;s own timeout, so you get hit twice: a long wait just to get a plan, and a sub-optimal plan because the optimizer gave up early.Do not guess at any of this. SQL Server keeps its own diagnostics: sys.dm_db_missing_index_details lists indexes the optimizer wished it had, and sys.dm_db_index_usage_stats shows which existing indexes are actually used and which only cost you writes. Add what the missing-index view suggests, drop what nothing reads, and measure against a production-sized dataset rather than a handful of test rows.Do: Index the join columns, and the selective columns your users (pre)filter, sort, and group by.	Do: Prefer a composite index with the most selective column first over several overlapping single-column indexes.	Do: Use sys.dm_db_missing_index_details and sys.dm_db_index_usage_stats to decide what indexes to add and which ones to drop.	Don&#039;t: Add an index just in case; every index slows down writes and consumes storage.	Don&#039;t: Use a random GUID as a clustered primary key; rows insert in random order and fragment the table.Expression fieldsAn expression field is calculated during runtime, so its cost is paid for every row the user sees. That is fine for a light calculation, and it keeps the value up to date without storing anything extra. It stops being fine when the expression hides a heavy subquery or a lookup that runs once per row on a grid of thousands.When an expression field turns up in a slow subject, ask what it really costs per row, and whether the value has to be live. If it does not change on every read, a stored column maintained by handler logic, or a calculated database column, moves the work out of the runtime. The Thinkwise performance guide compares these options and their trade-offs. The smoke tests also validate expression fields, so a broken or timing-out expression shows up there first.Do: Keep expression fields cheap; they run once per row on every selection.	Do: Move a heavy or rarely-changing calculation to a stored column or a calculated database column.	Don&#039;t: Hide a per-row subquery or lookup inside an expression field on a large grid.	Don’t: Use expression fields in a view, those should be regular columns and part of the view itself.PrefiltersA prefilter is one of the cheapest ways to make a slow screen fast. It limits how much data the database has to read and the UI has to render before the user does anything at all. Default a data-heavy subject to a sensible prefilter, for example only open orders from the last year, or only currently employed staff, so the screen opens with a workable set instead of the entire table.It is tempting to show the user everything everywhere all at once, but that is rarely what they need. Most users work with current data and only reach for history now and then, and when they do, they can switch the prefilter off themselves. Default to what matters now, and you spare the database most of the work.Keep the prefilters themselves fast too. Base them on indexed columns wherever you can, and prefer a plain column condition over a query when a column condition will do the job.Do: Default data-heavy subjects to a prefilter so the screen opens with a workable set, not the whole table.	Do: Base prefilters on indexed columns and prefer a column condition over a query where possible.	Don&#039;t: Open a subject on hundreds of thousands of rows with no default filter and count on pagination to save you. Fix slow viewsA view that backs a subject deserves the same discipline as a table, and that starts with the primary key. The smoke tests flag a view with no unique key, or a key that allows NULL values, but passing that check is only the first bar to clear.The most reliable primary key for a view is one carried over from an underlying table, or a combination of the base tables&#039; keys when the view spans several of them. Resist the urge to bolt on a random GUID just because nothing else looks unique. It satisfies the check, but it tells a reader nothing about the data, and it has no relation to any index that already exists on the base tables. If no combination of base-table keys is unique, that is usually a sign the view&#039;s grain is not what you expect, so fix the grain rather than papering over it with a GUID.Calculating a key inside the view, for example with ROW_NUMBER(), is possible but carries a real cost. That window function is one of the constructions that can block predicate pushdown, covered under views and cubes below, so a key generated this way can force the database to number every row in the view before a filter on that key is even applied.A few other habits pay off quickly. First, leave heavy views out of reference filtering when the filter is not essential, because filtering a large view can cost far more than filtering the table underneath it in your view’s control procedure. For example, if an Order subject has a lookup reference to a heavy Customer Statistics view, and the users adds a reference filter on this heavy view, it will slow down the query that loads the main subject because it now also has to check a filter condition against that heavy view. Prevent users from adding filters on heavy details by disabling the reference for filtering.Second, index the base tables for the filters your users actually apply. Even a well-built view has to scan the whole table when there is no index to support the query.Indicium also resolves a single row two different ways, and the two do not cost the same. A lookup or detail screen that reads a row by its key uses the entity&#039;s by-key segment (table(key)), which asks the database for exactly that one row and is essentially always fast. The same row fetched through a filtered query, such as $filter=id eq 42, runs the full view definition first and only then applies the filter, so it lives or dies by the same predicate pushdown rules covered above.A view with a solid, indexed key resolves lookups through the by-key segment; a view whose key is calculated, for example with ROW_NUMBER(), or is otherwise not sargable, forces even a single-row lookup back into a full filtered query, so it ends up scanning the whole view to return one record.Do: Derive a view&#039;s primary key from the base table&#039;s key, or a composite of the base keys for a view that spans several tables.	Do: Index the base-table columns your users actually hit: the join columns, the default sort, and the columns they filter on most, including the columns used in prefilters.	Don&#039;t: Bolt on a random GUID as a primary key just to satisfy the uniqueness check.	Don&#039;t: Calculate a primary key inside the view with ROW_NUMBER() or similar; it can block pushdown for every query that filters on that key.	Don&#039;t: Use a query-driven lookup as a grid&#039;s presentation field when a (calculated) column from the base table would do.Realtime view or a table with prepared dataIt starts with a question about data volume: does the user really need to see everything at once? Making years of history available in every view is rarely necessary. Defaulting the range to the current period covers most use cases and cuts the work the database has to do on every open.The advantage of a view is that it is always realtime. Sometimes, though, a view simply cannot be made to perform, because the calculation behind it is too heavy. In that case an option is to precompute the result and store it in a table instead of reading a realtime view. The table is refreshed on a schedule using a system flow, and you can give the user a task to force a refresh on demand.A table with prepared data is faster, but the data is no longer realtime. Reach for it only when a view genuinely cannot be made to perform, and confirm that a slightly stale result is acceptable for that screen. Cube performance in UniversalA Windows GUI cube loads the view&#039;s data once and does all grouping and aggregating on the client. That is heavy on memory and network for a large dataset, but it makes free-form re-pivoting fast because everything already sits in local memory. A Universal cube delegates grouping and aggregation to Indicium and the database, loading data on demand per subcategory as the user drills in.There is a good reason for that split. A browser tab has far less memory headroom than a desktop process, it talks to the server in JSON rather than a lean binary protocol, and it often sits behind a corporate firewall that kills an idle HTTP request after about thirty seconds. Loading on demand, subcategory by subcategory, exists precisely so a cube over hundreds of thousands of rows does not fall over once several users open it at once.How predicate pushdown affects the performance of cubesPredicate pushdown can significantly affect the performance of your cube. The clearest way to show explain this is with an example: a cube drill-down. That is what happens when a user opens a category in a cube to see the level beneath it. A sales cube might start grouped by region; expand EU and you drill into its countries, expand Germany and you drill into its months. Every expand step asks the cube for a smaller, more specific slice of the data.Predicate pushdown is what the database does with the filter that a drill-down implies. A predicate is simply a filter condition, such as region = &#039;EU&#039;. Pushing it down means the optimizer applies that filter as early as possible, right at the base table scan, so the query reads only the rows it needs. When the filter cannot be pushed down, the database builds the entire view first and only then discards the rows the filter excludes.In a cube the two meet on every click: each drill-down becomes a filtered, aggregated query, and predicate pushdown decides whether that query touches a narrow slice or scans everything before narrowing it down.A Universal cube does not load a view once and pivot on the client the way the Windows GUI does. Every time a user expands a subcategory, Indicium sends a freshly filtered, aggregated query straight to the database. Whether that query is fast comes down almost entirely to predicate pushdown: the optimizer&#039;s ability to move a filter down to the base table scan instead of building the whole view first and throwing rows away afterward.The practical consequence is that the pushdown-friendliness of the underlying view now decides how snappy every drill-down feels, not just the first load, because the Universal UI only ever asks the database for the slice it currently needs. Back a cube&#039;s dimensions and measures with columns that stay pushdown-safe. A dimension driven by a window function or a DISTINCT will be slow on every subcategory a user opens, not only the first. For example, a customer-segment dimension built with SELECT DISTINCT forces the database to rebuild the full deduplicated set every time, so each drill-down pays for the whole view again rather than just the slice on screen.This is easy to overlook now that the Expand all button, added in 2026.1, opens every category and series in a single action. On a pushdown-friendly cube that is just a convenience. On a blocking one it fires every subcategory query at once, so a view that is merely sluggish per click becomes a full stall the moment a user expands the whole thing.If a cube really struggles to perform and you are running out of options, consider using a table instead of a view as (part of) the foundation of the cube. This has the downside of no longer always showing real-time data, but will perform well.Do: Back cube dimensions and measures with pushdown-safe columns; every drill-down re-queries the database.	Do: Default cubes to a limited range, such as the current period, instead of loading years of history.	Do: Read the execution plan before assuming a slow cube is a pushdown problem; rule out missing indexes, non-sargable filters, and stale statistics first.	Do: Use UNION ALL instead of UNION.	Don&#039;t: Have a cube dimension with a window function or DISTINCT column; it will be slow on every subcategory.	Don&#039;t: Filter on an aggregated column or a DISTINCT view and expect pushdown.	Don&#039;t: Reach for a persisted, precomputed table as your first fix; treat it as a last resort. Let AI be your performance buddyAI is good at the part of performance work that wears a human down: reading a long execution plan and spotting where a filter lands too late. Give it the view definition and the query plan, and let it ask you questions and suggest changes. It will point at the full scan you skimmed past and ask why the filter on that column is not pushed down.Keep the reins, though. An assistant does not know your data distribution, your indexes, or which screens actually matter, so treat every suggestion as a hypothesis to test against your own execution plan, not a fix to apply on faith. Paste the real SQL and the real plan rather than a description of them, and the answers get noticeably sharper. Keep it fast, keep it a habitPerformance is not a one-time fix, it is a habit. Run the smoke tests every release and read the slow steps as early warnings. Monitor the Slow query log in your production IAM. Discover what code actually gets run by a trigger or procedure using the application log. Watch the execution plan when a cube starts to drag. Keep the logic concepts you do not need switched off. None of these moves is heroic, and together they keep an application fast as it grows.Start by picking your slowest screen this week and walk it through this list, top to bottom. When you find the culprit, please also share it in the Thinkwise Community. Someone else is fighting the same issue in a slow query right now.</description>
            <category>News &amp; Blogs</category>
            <pubDate>Thu, 27 Aug 2026 08:51:28 +0200</pubDate>
        </item>
                <item>
            <title>User Simulation in User Menu</title>
            <link>https://community.thinkwisesoftware.com/ideas/user-simulation-in-user-menu-6953</link>
            <description>Can the Start/Stop User Simulation task be added to the User Menu?  </description>
            <category></category>
            <pubDate>Thu, 27 Aug 2026 08:31:03 +0200</pubDate>
        </item>
                <item>
            <title>Better filter control for source_branch_type_of_object on merge_conflict_overview</title>
            <link>https://community.thinkwisesoftware.com/ideas/better-filter-control-for-source-branch-type-of-object-on-merge-conflict-overview-6928</link>
            <description>Having countless of program object types makes it kind of a pain for filtering when dealing with merge conflicts (especially merge sessions with numerous conflicts).  Long long list of object typesIn my instance I know a majority from the conflicts originate from Translations. Now I have to manually scroll all the way down to the ‘T’ area and still look around there. Would be nice if I could just type and search instead.</description>
            <category></category>
            <pubDate>Thu, 27 Aug 2026 08:19:28 +0200</pubDate>
        </item>
                <item>
            <title>Make column filter more user-friendly</title>
            <link>https://community.thinkwisesoftware.com/ideas/make-column-filter-more-user-friendly-6954</link>
            <description>I find the filter on the Object type column on the Merging &amp;gt; Active conflicts screen in SF a bit clunky to use: the list under the filter button (the funnel icon) contains dozens, if not hundreds, of options. There&#039;s no search field, and the list doesn&#039;t respond to typing the first letter. So I can only scroll and visually look for the object type I need.The list also includes options that don&#039;t appear on my screen. I&#039;d suggest adding a search field and/or limiting the list to values that would yield at least 1 search result if this filter were the only column filter applied.</description>
            <category></category>
            <pubDate>Thu, 27 Aug 2026 08:19:28 +0200</pubDate>
        </item>
                <item>
            <title>Update for solution &#039;Logging data available in the GUI&#039; (2026.2) &amp; Data Encryption error in IAM</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/update-for-solution-logging-data-available-in-the-gui-2026-2-data-encryption-error-in-iam-6956</link>
            <description>Hi all,Following our upgrade from Thinkwise 2025.3 to 2026.2, we need to update the community solution: &#039;Logging data available in the GUI&#039;.To pull the latest solution files from the Thinkstore, we attempted to configure the Personal Access Token (PAT) under Applications &amp;gt; General settings &amp;gt; Web connections (thinkstore_connection) in IAM. However, when entering/saving the token, we receive the following error in IAM:&quot;This environment has not been configured to allow data encryption. Detailed information about configuring data encryption prerequisites can be found in the online documentation.&quot;What we already configured in appsettings.json (Indicium): We added the DataSecuritySettings configuration and verified that the IIS Application Pool user has full permissions on the folder:JSON &quot;DataSecuritySettings&quot;: {  &quot;Storage&quot;: {    &quot;Mode&quot;: &quot;LocalSystem&quot;,    &quot;LocalSystem&quot;: {      &quot;StorageLocation&quot;: &quot;C:\\Thinkwise\\DataProtectionKeys&quot;    }  },  &quot;DataProtection&quot;: {    &quot;Active&quot;: true,    &quot;EncryptionKey&quot;: {      &quot;Name&quot;: &quot;thinkwise--data-protection-encryption-key&quot;    }  }}Despite this configuration and restarting Indicium / the App Pool, the error persists when saving the PAT.Questions:	Immediate workaround / Code update: Could anyone share the updated 2026.2 definitions/code for:			Dynamic model: meta_view_history						Control procedure: view_history						Template: view_history					IAM Data Encryption issue: What additional step or prerequisite are we missing in Indicium / IAM to get data encryption working properly for storing secrets/tokens?	Any guidance or shared code would be greatly appreciated!</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Thu, 27 Aug 2026 07:44:38 +0200</pubDate>
        </item>
                <item>
            <title>Change ApplicationUrl source from IAM to SF for custom components depending on the environment</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/change-applicationurl-source-from-iam-to-sf-for-custom-components-depending-on-the-environment-6948</link>
            <description>I am working on a custom component that receives a payload from Thinkwise containing an ApplicationUrl.The custom component uses this ApplicationUrl to fetch data from Thinkwise. However, the ApplicationUrl that is provided in the payload currently points to the IAM metasource by default, while my custom component needs to fetch data from the SF metasource in my development environment.For example, the payload contains something like:ApplicationUrl: https://.../indicium/iam/...but for my custom component I need:ApplicationUrl: https://.../indicium/sf/...I don&#039;t want to hardcode or manually replace /iam/ with /sf/ in the custom component, because the component should be reusable across different environments.Is there a Thinkwise configuration or setting that determines which metasource (sf or iam) is used when generating the ApplicationUrl in the payload?If so, what would be the recommended way to configure this so that the custom component receives the correct ApplicationUrl for the environment it is running in?Or is there another recommended approach for custom components to determine which Indicium metasource they should use when fetching data?</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Tue, 25 Aug 2026 16:16:49 +0200</pubDate>
        </item>
                <item>
            <title>Styling update of the Universal GUI</title>
            <link>https://community.thinkwisesoftware.com/product-updates/styling-update-of-the-universal-gui-5150</link>
            <description>Now that customer success is the focus of the Universal GUI, we can prioritize User Experience too.This blog is the first step, introducing quick win UI Styling updates that require no Model changes or changes in User Experience. Later, we&#039;ll introduce and discuss Data Density improvements and more comprehensive UX &amp;amp; Universal Theme implementations.In the past years a lot of features have been added to the Universal GUI, but in the meantime the visual side of this interface hasn’t changed a lot. Comparing our Universal GUI to other enterprise applications, we do notice that our interface lacks a little conviction. We want to improve on this together with you, to ensure that our ideas support you and your users. So please, join in the conversation and let us know what you think.We took the Insights application as a benchmark.The Projects screen in the current Universal GUIThere is a lot going on in this screen, which means our users have a lot of elements to visually look through.We think we can do better.Based on the Material UI components and the 10 Usability Heuristics we altered the UI styling, bringing us to the following design:Styling update of the Universal GUIThis is the same Projects screen in the Insights application, with only visual alterations. Let us take you through it, so you know what is going on.Styling update with subject indicators	Menu	Currently, the background color in the menu has the same color as the general background of the rest of the application, which can distract the user in their navigation through an application.Menu designWe want to introduce the primary color as background of the menu.This provides a better visual hierarchy and helps the user focus on the data. With this change, we also introduce a lot more color in the application.We also want to change the alignment of the Open Documents (aligned with the submenu items) and the badges in the menu (make them stick to the right). Prefilter buttonsThe current setup of the Prefilter buttons is based on an icon, with a primary-colored underline when the prefilter is active.Prefilter buttons with solid background Like you, we think this can improved by making the Prefilter button a more distinctive button, by introducing a solid background in a round shape.When the prefilter is active, the background could get the primary color or secondary color. Which do you prefer, the primary or the secondary color for active prefilter? 	CRUD and Task/Report buttons	Like with the prefilters, we introduce a solid background for the CRUD and Task/Report buttons.By making these button backgrounds square, they are better distinguishable against the round prefilter buttons.Default CRUD and Task/Report button styling Also, we would like to know what your stance is on introducing the primary/secondary color to the Task buttons to make it a clear Call To Action button.Concept of button with color What do you think of introducing the primary or secondary color to the CRUD and Task/Report buttons? Conditional layoutThe current setup of the Conditional layout colors the entire cell. We want to improve on this visual cue, highlighting the text only.Conditional layout around text With text fields and an icon, we could encapsulate the icon with the text highlight:Icon in Conditional Layout highlight Or we could give the icon the conditional layout color (if it’s an SVG icon of course) and place it outside the text highlight.Icon in Conditional Layout color Which one do you prefer?  Lookup controlEspecially in read-only Grids, the lookup control needs a little love.To make the Universal GUI more consistent with other controls like the email, map, URL or phone number control, we want to change the current lookup control into a hyperlink. This way we follow behavior the users expect from other platforms.Evergreen, Kim Wilde, Country building and Budget office are the Lookups in this image. In this idea, the underline in the grid is only shown on active row/hover, to prevent a grid full of underlined data. Column headersVertical space is a great challenge in the Universal GUI.The grid headers now demand a lot of vertical room compared to the rows, and the styling of the header text make them fall into the background.In this design, we want to introduce a lower header bar and a bold font style. Subtle vertical dividers between the columns in the header and the active row are also added to emphasize column width.Column headers design What do you think of this Column headers design? Form fields – Outlined styleOne of the major elements in this design is changing the Filled style to the Outlined style form fields.We think the Outlined style holds a lot of answers for data density, control alignment, conditional formatting, visual hierarchy, focus indication, etcetera.To give you an impression, we put the current Filled style next to an Outline style setup. The field content and setup are the same.On the left the current Filled Form Field styling, on the right the Outlined Form Field style Because this will be a major change, this is not exactly a ‘quick win’. We want to get rid of the Form field background color setting and implement this idea. This also means that forms in non-edit mode have no background nor outline.Forms in non-edit mode without background color What do you think of the Outlined Style for Form fields replacement? Active row colorUniversal uses grayscales to draw the attention of the user, we think that color is a better guidance and looks nicer.While using a hint of the primary color (a pass through of 12% to be precise), the active row would stick out a lot more.Active row indication in Primary colorWhat do you think of coloring the active row? ConclusionAs stated in the intro, these Design changes are predominantly focused on visual changes. They will have an impact on how the Universal GUI looks and feels, but not on its behavior.To react to the designs, use the number of the subject and place your comment next to it, so we know which subject you are referring to.We look forward to your opinions!  </description>
            <category></category>
            <pubDate>Tue, 25 Aug 2026 14:26:36 +0200</pubDate>
        </item>
                <item>
            <title>Deep Hyperlink in Form is not executed yet?</title>
            <link>https://community.thinkwisesoftware.com/questions-conversations-78/deep-hyperlink-in-form-is-not-executed-yet-6941</link>
            <description>Hi,I wanted to know if it is still the case as mentioned in Harm’s post that while deep hyperlinks to process flows work in Grid, they do not work in Forms. I have tried it myself and it only works in form if I hold CTRL and click it, but then it also opens a new tab. (Universal GUI  2026.2.12.0.0 )He created a TCP ticket. What is the status of this?We are using it to replace the “open folder” functionality. By changing the browser policy we have made it possible to open links to folders in your file explorer. So, we are close to recreating the folder link exactly as before. The only thing left is that deep hyperlinks do not seem to work in Forms. So then users would have to change to using a task button.</description>
            <category>Questions &amp; Conversations</category>
            <pubDate>Tue, 25 Aug 2026 13:24:11 +0200</pubDate>
        </item>
                <item>
            <title>File link and Universal: open files directly</title>
            <link>https://community.thinkwisesoftware.com/ideas/file-link-and-universal-open-files-directly-6473</link>
            <description>Hi all,In several applications within our environment, we use File link-domains in the Windows GUI to open files stored on a shared network drive. For example DWG drawings, but also PDFs: Drawings that open in AutoCAD / DWG True ViewIn the Universal GUI this does not work in the same way, because the GUI always downloads the file instead of opening it directly in the default application for the specific file type.As we move from the Windows GUI to the Universal GUI, I am curious to learn what other customers have done to address this.</description>
            <category></category>
            <pubDate>Tue, 25 Aug 2026 13:20:21 +0200</pubDate>
        </item>
                <item>
            <title>Thinkwise Summit 2026: what to expect on 30 September</title>
            <link>https://community.thinkwisesoftware.com/news-blogs-21/thinkwise-summit-2026-what-to-expect-on-30-september-6950</link>
            <description>The Thinkwise Summit is getting closer. On 30 September, we’ll bring the Thinkwise community together at NBC in Nieuwegein. And this time, we can tell you more about what to expect.The programme is now live, with customer stories, platform developments and live demos across the business and tech tracks.A few highlights:See in live demos what AI can already do within the Software Factory.	Huuskes, Antea Group and EAU share how they develop their business-critical applications around their own processes.	Discover what MCP means for developing and using Thinkwise applications.	Dive into topics including MQTT, AI and digital sovereignty.And of course, the Summit is also a chance to meet other Thinkwise customers, exchange experiences and catch up with the Thinkwise team.Curious about the full programme?View the programme and register for Thinkwise Summit 2026</description>
            <category>News &amp; Blogs</category>
            <pubDate>Tue, 25 Aug 2026 10:56:01 +0200</pubDate>
        </item>
                <item>
            <title>Show parent nodes on search in Tree structures</title>
            <link>https://community.thinkwisesoftware.com/ideas/show-parent-nodes-on-search-in-tree-structures-6949</link>
            <description>When nodes are filtered using the combi filter, the parent nodes of the matching results should always remain visible. Otherwise, the context of the filtered nodes is lost, making it hard to understand where the results belong within the tree structure.Example and desired behaviour:As an enhancement, we would like to see a model setting that allows developers to control this behavior. For example, an option such as &quot;Show parent nodes when filtering&quot; could be added to the Tree View configuration. When enabled, all parent nodes of matching results would automatically be displayed, preserving the hierarchical context while searching.</description>
            <category></category>
            <pubDate>Tue, 25 Aug 2026 08:57:21 +0200</pubDate>
        </item>
                <item>
            <title>Opening a second instance of a screen from Open documents</title>
            <link>https://community.thinkwisesoftware.com/ideas/opening-a-second-instance-of-a-screen-from-open-documents-6947</link>
            <description>Usability suggestion for the Universal version of SF: if you, for example, [Ctrl]+click on Subjects under User interface, a new instance of the Subjects screen opens. However, doing the same on Subjects under Open documents does nothing.Because of this, I have to look up the Subjects option again under User interface, even though I usually want to open a second instance of a screen at exactly the moment the first one is already open — and therefore already shows up under Open documents.Please make eCtrl]+click work under Open documents as well.</description>
            <category></category>
            <pubDate>Mon, 24 Aug 2026 13:17:55 +0200</pubDate>
        </item>
                <item>
            <title>Lookup control option for grid filter</title>
            <link>https://community.thinkwisesoftware.com/ideas/lookup-control-option-for-grid-filter-6781</link>
            <description>Hello!I created this idea as result of this post: Basically, what we suggest is that there should be an option to specify the lookup control for grid filters, we received feedback from users about this and since that can be changed for form/tasks, will be nice to have it also in here.Regarding performance mentioned in the post, one solution can be to have the sort defined and then pick top 100 for example and if you don&#039;t have what you want there to still be able to type and search it.  </description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 16:37:20 +0200</pubDate>
        </item>
                <item>
            <title>🚀 Platform improvements for week 34, 2026</title>
            <link>https://community.thinkwisesoftware.com/product-updates/platform-improvements-for-week-34-2026-6944</link>
            <description>Hi everyone!We’ve released the following platform improvement this week: SF 2026.2.12, 2026.220260820 - Deployment folder path registration fix			Platform version 2026.2 introduced the capability to download a deployment package from within the Software Factory. To be able to download a deployment package, the folder location of the Deploy folder is required. Due to an oversight, the registration of the folder location only succeeded for file locations using backslashes (&#039;\&#039;). This has been fixed. Now, back and forward slashes are properly handled.			IAM and SF 2026.2.1220260813 - Validation sharding fix			During the validation process, errors could occur indicating non-unique primary keys in the dataset on refresh. This has been resolved.			SF 2026.220260813 - Domain double-byte length upgrade fix			An incorrect error could occur when upgrading a SQL Server datatype. Error: Domain &quot;..&quot; already exists with a different datatype configuration.						This would only occur on nchar/nvarchar datatypes. This has been resolved.</description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 15:27:02 +0200</pubDate>
        </item>
                <item>
            <title>Have domain control &quot;Copy to clipboard (form)&quot; support multiline visualisation</title>
            <link>https://community.thinkwisesoftware.com/ideas/have-domain-control-copy-to-clipboard-form-support-multiline-visualisation-6943</link>
            <description>The function of the domain control “Copy to clipboard (form)” is fine and does support multiline data. It is only unfortunate it has no ability to make a multiline visual in the GUI.Probably it would require a different component to also have a scrollbar available for the longer texts, but it would help a user to be able to see the text and decide to copy it with the control. Copy to clipboard (form) control Multiline control</description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 14:48:59 +0200</pubDate>
        </item>
                <item>
            <title>Increase performance by reducing queries for details</title>
            <link>https://community.thinkwisesoftware.com/ideas/increase-performance-by-reducing-queries-for-details-6833</link>
            <description>When you have a main subject with a detail page, I noticed the GUI executes the following query on each row selection in preparation for loading the detail (GUI &amp;amp; Indicium version 2026.1.15). SELECT t1.1REF-COL1], t1.1REF-COL2]FROM MMAIN-SUBJECT] t1WHERE t1.1PK1] = @p0 AND t1.1PK2] = @p1When you have 4 details, it executes 4 of these queries, even when the reference columns are the same. When this is executed on a table, the cost of this query is insignificant since it can always use the primary key index to retrieve exactly one record. But when the main subject is a view, this could be a different story depending on the view code. Could this behaviour be improved so it doesn’t have to access the main subject so many times? It seems that it should at least be possible to gather all reference columns for all references with one query at once. But it would be even better if it could use the data from when the main subject was loaded itself. </description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 14:00:10 +0200</pubDate>
        </item>
                <item>
            <title>Mandatory Filters</title>
            <link>https://community.thinkwisesoftware.com/ideas/mandatory-filters-6917</link>
            <description>Thinkwise already offers Open without data, but this is an all-or-nothing approach. There is currently no way to require specific filter fields before data can be retrieved.I would like to see the ability to mark filter fields as mandatory in the Software Factory.Suggested behaviorDevelopers can mark one or more filter fields as mandatory. (Subjects&amp;gt;Data&amp;gt;Filter)	Mandatory filters are indicated with an asterisk (*) in the UI in both the filter form and the corresponding column header.	No data is retrieved until all mandatory filters contain a value.	Once all mandatory filters are populated, data can be loaded normally.ExamplesA transaction history where a date range is required.	A stock movement overview where a batch and/or pallet is required.	A financial journal where users must first select an accounting period.	An audit log where users must specify a date range before searching.BenefitsPrevents expensive unfiltered queries.	Improves performance.	Eliminates the need for custom logic to enforce filtering requirements.	Gives developers more control over data retrieval conditions.Open without data determines if data is loaded when accessing the subject. Mandatory filters would determine under which conditions data may be loaded. </description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 13:54:17 +0200</pubDate>
        </item>
                <item>
            <title>Show code group when doing code review</title>
            <link>https://community.thinkwisesoftware.com/ideas/show-code-group-when-doing-code-review-6919</link>
            <description>Within the code-review screens there is no way to see what code group the template you’re reviewing belongs to. If you don’t name your procedures something like def_do_this or ctx_do_that then there is no way of knowing what code group the template belongs to. Easy fix is to show that field in the code-review screen.</description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 13:53:24 +0200</pubDate>
        </item>
                <item>
            <title>Custom scrollbar size as accessibility option</title>
            <link>https://community.thinkwisesoftware.com/ideas/custom-scrollbar-size-as-accessibility-option-6920</link>
            <description>Our user finds the scrollbar too thin to easily drag with the cursor, especially when doing horizontal scrolling.Of course there are options like using the scroll wheel, but many users aren’t accustomed to horizontal scrolling shortcuts.For people with disabilities it can be especially difficult to get the cursor on narrow spots.The compact/comfortable option currently does not affect scrollbar size.It seems that in browser settings it is not possible to adjust scrollbar size.We could apply custom CSS but (application wide) custom CSS is not preferred.</description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 13:52:31 +0200</pubDate>
        </item>
                <item>
            <title>Some improvements on visibility of open documents</title>
            <link>https://community.thinkwisesoftware.com/ideas/some-improvements-on-visibility-of-open-documents-185</link>
            <description>In the universal GUI opening (a lot of) documents can make the navigation panel cluttered and even push the menu out of sight:

Some suggestions to improve this:
 
Split the navigation panel in two panels with seperate vertical scroll-bars as soon as the number of open documents exceeds a certain treshold 
Add levels for detail-documents beneath open documents and collaps them the same as the menu tree with (automatic) collapsing and expanding 
Add context (part of the breadcrumb) to the title or mouse-over of detail-documents to prevent having to open a document to see wich one is the right one 

Another suggestion:
 
An option to lock an open document, so that it is available the next time I login to the application</description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 13:52:08 +0200</pubDate>
        </item>
                <item>
            <title>Open documents show active tab and display column</title>
            <link>https://community.thinkwisesoftware.com/ideas/open-documents-show-active-tab-and-display-column-6921</link>
            <description>When opening a menu item multiple times, they all get listed in &quot;Open documents&quot;. It would be helpful to see which one you have currently open, especially when having multiple tabs with the same name.Can the active tab be highlighted? For example here, indicate which of the three tabs is the active tab,and maybe even make it possible to choose a display column to show behind the subject name.</description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 13:52:08 +0200</pubDate>
        </item>
                <item>
            <title>Tick-box on records in merge impact screen</title>
            <link>https://community.thinkwisesoftware.com/ideas/tick-box-on-records-in-merge-impact-screen-6924</link>
            <description>Improve quality of merge results by making it easier to track which merge impact item has been checked.  I check merge impact before effectuating a merge session. Most natural would be to do that by functional segment, but I tend to do it by type of object: I sort the merge impact by type of object, and then check all records of type kind of object and then turn that type off in the filter. After iterating over all types of object, all impact has been checked. The filter is transient though, so when there’s reason to reset the filter, I lose track. It would be handy to have a tick box available that I can tick after checking a record of impact. </description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 13:50:51 +0200</pubDate>
        </item>
                <item>
            <title>multiple menu themes</title>
            <link>https://community.thinkwisesoftware.com/ideas/multiple-menu-themes-6925</link>
            <description>I would like to have the abillity to make more themes for Universal. because i have a scanner menu and a back office menu which i for example would like to give diffrent colors/images. So i would like make a Theme Universal - deafult menu: scanner → red with white background but also a theme Universal → defeault menu: back office → blue with picture And i know the option exists within the IAM to change this per person. However i would also like to be able to switch between menu’s as a certain envoirment change.</description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 13:47:50 +0200</pubDate>
        </item>
                <item>
            <title>Direct Table Schema Modifications in Software Factory</title>
            <link>https://community.thinkwisesoftware.com/ideas/direct-table-schema-modifications-in-software-factory-6927</link>
            <description>During development, we wish it would be possible to make table schema changes directly in the active development database from within the Software Factory. For example, adding, modifying, or removing table indexes without requiring a complete creation routine.This will significantly accelerate the development process. </description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 13:44:57 +0200</pubDate>
        </item>
                <item>
            <title>Have task confirmation messages use the lookup value of the parameter</title>
            <link>https://community.thinkwisesoftware.com/ideas/have-task-confirmation-messages-use-the-lookup-value-of-the-parameter-6929</link>
            <description>When I use a specific message and have it refer to a parameter with a lookup, it will show the “id” value instead of the “name” value of the lookup.Ex:translation of messageCurrent result:showing the “id” valueDesired result:using the actual “name” value of that parameterIt would be nice to have it use this “name” value, so I do not need to add another parameter to get the result I desire.</description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 13:36:33 +0200</pubDate>
        </item>
                <item>
            <title>Mitigate security risks by evaluating added permissions for existing objects in existing roles</title>
            <link>https://community.thinkwisesoftware.com/ideas/mitigate-security-risks-by-evaluating-added-permissions-for-existing-objects-in-existing-roles-6933</link>
            <description>When permissions are added to a role by a developer in a branch, there are 4 types of situations:The object is new for the branch and permission is added to a new role	The object is new for the branch and permission is added to an existing role	The object existed at the start of the branch and permission is added to a new role	The object existed at the start of the branch and permission is added to an existing roleI consider the first 3 situations happy-flow use-cases in which no extra risk is involved because either the role is new or the object is new. The 4th situation is different because the developer has changed permissions of something that already existing without creating it. This is mostly done as an exception when ‘fixing’ permissions that were initially forgotten. The risk for this situation is bigger because maybe the object permission was not forgotten but deliberately left out for that role. Specially for column rights this could be the case. Also a developer who added a new field could use the assign permissions task on table level with the checkbox for all columns, not noticing that there were columns left out previously. Currently it is hard to filter on just the 4th situation. When merging a branch it does give an impact overview of added permissions, but the other 3 situations generate the same type of mutations an thus a lot of noise to go through.For us a quick win with a new prefilter on the merge impact screen that would filter on all types of access rights mutations that are added to existing objects in existing roles would be enough to integrate this in our process. Of course a new role review screen would be even better of course.To clarify: with ‘existing’ I mean that it existed when the branch was created.</description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 13:27:14 +0200</pubDate>
        </item>
                <item>
            <title>Parameterized form-tooltip translation</title>
            <link>https://community.thinkwisesoftware.com/ideas/parameterized-form-tooltip-translation-6935</link>
            <description>The parameterized translations is a great tool for making certain fields more understandable for the end-users of the application.Especially with the return of the HELP function in the Universal GUIwe have some great tools to ‘explain the application logic’ to the user. What would be great is when the form-tooltip would be separated from the grid-tooltip, allowing the form-tooltip to be parameterized. (Not showing an ‘ugly’ curly bracket translation in the grid).Why?Hoovering over a field would allow us to explain to the user how a certain value is filled in. Giving room to a explanation with the values of the current row.This would greatly improve the understanding of certain fields for our users, especially ones that are ‘filled in by the application’.It is a step closer to the application than reading a help page or documentation about it, and provides a ‘live’ explanation without having to ‘calculate’ it yourself.For example:We have a couple of fields in a sales order line:currency_id, quantity, quantity_unit, price_per_unit, total_priceIt would be great if the form-tooltip of the total_price could be explained by hoovering over it, allowing us to fill this translation with the following:{quantity} {quantity_unit} * {currency_id} {price_per_unit} = {currency_id}{total_price}As an exampe filling the values currency_id, quantity, quantity_unit, price_per_unit, total_price in as follows:$, 100, PCS, 2.50, 250Would result into a form-tooltip for the ‘Total price ($)’ being filled with 250 as:100 PCS * $2.50  = $250</description>
            <category></category>
            <pubDate>Fri, 21 Aug 2026 13:26:26 +0200</pubDate>
        </item>
            </channel>
</rss>
