Propose your fantastic ideas regarding the Thinkwise Platform to our Product Team.
When searching for code in the screen 'Code search', inactive control procedures (and their templates) are always included. Most of the times, however, I want to search/analyze impact in active control procedures because they have an actual effect on your end product. Results for inactive control procedures then only distract me.I propose to add a new checkbox to this screen, making this an optional feature: "Extend search to inactive control procedures". This checkbox should be empty by default, in my opinion.
Wouldn’t it be nice to send a link via email to allow for password Reset instead of a token. Additionally for the IAM operator to be able to set a template for the Reset password email that will be send to the user.Scenario:User presses the forgot password. Receives an email, provided the email or username entered exists under an IAM user. The User upon pressing the link it is redirected to Reset password page The User enters only new password and verifies password, provided it meets strength and complexity.Cons: We avoid the sending of tokens and the User needing to copy/paste or memorize it to enter it in the existing reset password.Pros: The Reset password becomes simpler, as the token can be already enbedded in the link send in the email.
If we want to check a field on a valid input value (and prevent saving) we need to create a default, a layout and a trigger procedure.We regularly use a combination of a default + trigger because the user will see an error message as early as possible and the trigger would prevent the insert the record.The default will validate the field after leaving it (@cursor_from_col_id) and return an error message. The trigger will also validate the field with the same code (but with the inserted of course).There’s a problem with this combination when a user fills in the field and saves the form without leaving the field first. In this case the error message (see screenshot below) will be shown twice. Once for the default and once for the trigger. A solution could be to add a layout procedure that also validates the field with (again) the same code. The layout procedure could disable the save button when it determines that the field value is incorrect. But this result in a default, layout and a trigger with the same validation check. Not exactly low code.What if the TSF offers a field validation option? A screen to create one or multiple validations per field. It could range from simple checks like: field is empty, field value must be unequal to 0 or the option the add a query. We could also add a desired result to a configured field validation like showing an error message or placing a conditional layout.These new field validations need to be executed in the GUI before saving/inserting a record and could act as a default because the validation is linked to a field. They can also be used for dynamically creating the validation within triggers.
We appreciate having the Simulate User functionality available in Indicium/Universal GUI nowadays! It is a quick and easy way to reproduce issues our end users encounter. There is however one thing we noticed, which to us is a risk in terms of logging. It should always be clear that it is a Simulation done by another User. Therefore I believe the tsf_usr functionality should always retrieve the originally logged in User. Due to the fact that that is currently not happening, our Trace field logic (based on this ThinkStore article https://community.thinkwisesoftware.com/user-interface-88/trace-your-changes-by-adding-trace-fields-1107) actually registers the Simulated User as Insert/Update user, instead of the originally logged in user. This is a risk, since we use these Trace fields (icm with system-versioning on certain tables) to be able to see who did what and when.As per suggestion from @Vincent Doppenberg: Could a separate function be introduced for the Simulated User?
I work on a huge project for a client and the data model contains 1200+ subjects. Every branch we make works on other subjects, for example a Project branch works on Project related subjects and the CRM branch works on the CRM subjects. These branches currently both have the same subjects (1200+) and this makes the branch (data model) pretty big. What would be great to have is that we could define a Module; or a part of the data model specific for that branch. Probably the CRM module doesn't need all 1200+ subjects but only needs around 300 or so. If that Module would only have in it those 300 subjects needed to develop the CRM, then it would save a lot of space, time and most importantly synchronization time (syncing to IAM). What do you think about this Community? Would love to hear more about this.
We are running a development platform with about 30 developers and thus we are often bothered with a slow working SF, which primarily happens when someone is either generating definitions,validating definitions or executing a merge. But it also can happen sometimes just by trying to save a template or a new table column.The root cause of this, in my opinion, is the fact that all of our transactions within the SF are executed on one single SF database. Especially during generation or merging a lot of data is being read, deleted or created in that single database, which often results in a slow performance or even processes being assigned as deadlock victim.I believe the performance of the SF could largely be improved if we were able to run multiple instances of the SF database, maybe even across multiple database servers, and be able to merge branches from different databases. A couple of great benefits are:Whenever I work in a branch I am only bothering people that work in the same branch as I do or at least people that work in the same SF database that I do. It greatly improves scalability, especially when it supports multiple database serversEspecially the first benefit is great for a performance improvement.With about 30 people developing there are several merges happening in a week. Consider the trunk to have it’s own SF-database and executing a merge to the trunk. This merge will then primarily lock access to the SF-database that belongs to the trunk and not slow down performance of the other 29 developers still developing in their own branches.
Currently if I open the application (directly to the SF) it'll open with the given project version. In my case I put in 'null' so it will open the latest development version. When I do an upgrade in the Software Factory and then make a new project version, I have to close my application to open the same application again, just to change the project version of the application. What I would like as developer is that when I press the 'Refresh model' task (only available to developers) that the GUI (application) will look if there's a newer development version available. Then if so, that it will give me a message saying if I would like to instead switch my application project version to the newer project version; a simple yes/no would do the trick. That would mean I don't have to close my application anymore and it is always running the latest project version. It will ensure I'm never making changes in a wrong version because I didn't notice that the project version I'm working in (in the SF) is not the same version (in the application) I'm looking at. Side note: When a new project version is made and the old one has been made 'Inactive', the GUI will actually freeze upon refreshing the model
When maintaining multiple instances of one application (for different companies), the value of automating the upgrade proces increases but it also becomes more complexe, especially if there are many different project versions within the project. With the current possibilities of the Software Factory it is a pain to create an upgrade package of a cumulative upgrade (multiple versions). The only proper way is to create an incremental upgrade script for each version to the next version so the dataconversion is always applied at right state of the model (as was stated here). But to create suchs a package, you need to generate all code for each version one by one and then you can combine all the 020 scripts (because for the other code files you only need the ones of the latest version). To make this process more simple and to reduce manual steps, an improvement could be that when generating code from version 1.00 to version 1.30, you could mark an 'incremental upgrade' checkbox so that the SF generates multiple (smart) 020 scripts (1.00->1.10, 1.10->1.20 and 1.20->1.30) instead of 1.00->1.30.
Imagine the following situation:Version 1.27 is on the test database Version 1.28 got an upgrade script functionality, assigned to ug_after_1_27_to_1_28 This works perfect and I will create version 1.29 after upgrade. After developing and testing version 1.29 I want to deploy 1.29 to the production Production is version 1.27, so in the SF I will put 1.27 as previous project version. When upgrading from 1.27 → 1.29 I will loose the upgrade script ug_after_1_27_to_1_28I can imagine that this works the same with branching and merging.Ususally I will attach these upgrade functionality to ug_after_always to prevent this situation, but then I have to cleanup upgrade scripts after a while. It would be nice if we can prevent this and the SF would recognise that between 127 and 1.29 there is an upgrade script that needs execution.
Just a small idea.. There is no way to see in Universal what Indicum verison is running. Would be handy to see it together with the version of the GUI.
For the performance of a process flow we would like to have the possibility to open a document with an empty list. For many process flows you first open a document and in the next step you will change the filters (see example below).The setting ‘start with empty filter’ is available for a subject to set this up for a table or view, but this setting isn’t available for the process action ‘open document’.For our case we had the possibility to solve this with a new variant for the concerning subject (view) with ‘start with empty filter’ to yes.Process Flow Example
Related to the topic in question Is it possible to save a value to a session cookie and access it via a function?It would be very beneficial when doing encryption/decryption to have the process actions as also functions to be used inside of views/IOF etc… so it is easier to view and modify sensitive data. Please go throught the Topic to get more details on the need of the above.
I would really like to be able to see in IAM whether a process flow ran successfully or not, and if not, what error was thrown during the executing of this flow.Also, I would to be able to assign an email address to which a notification can be send when a specific flow fails during execution.SQL server agent jobs provide this kind of logging and tracing, there for clients of mine that we used to running this system automations through SQL agent are currently having difficulty to determine whether their system flows are running correctly or not.
I would like to show multiple cube views on one screen. With the ability to relate each cube view to a screen component (e.g. view group, like detail group for details). The data should only be retrieved once from the database (performance, like switching between cube views).
During development with the Software Factory, we usually work in branches. With every branch we make, a database would need to be created so I can test my changes in action.It would be awesome if the Software Factory could either:Copy an existing database, based on a selected runtime configuration, or; Create a new database, based on the data model of the Origin of my branch.Of course, this copy or create of a database should be run in the background.Additionally, a great nice-to-have would be that I can list base data for my tables in the data model. This would look similar to Mock data, or Data sets used for Unit tests. But this can be left out of scope for the original idea.
I would like indicium to have support for managed identity in Azure. Managed Identity is a way to prevent to have usernames/passwords in the appsettings.json and therefor to have less risc of hacking. For those unknown with Managed Identity, documentation is on this page: https://docs.microsoft.com/nl-nl/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-sql and https://docs.microsoft.com/nl-nl/azure/active-directory/managed-identities-azure-resources/overview
The Generate Report proces flow connector is able to generate a report, but the report to be generated is fixed. It would be very helpful to be able to choose the report to be generated through a variable. The corresponding parameters could be passed using json, pretty much like we can do already using the http connector.This would be helpful for instance when building a system flow to process records from the reporting service.
We are using Azure AD as authentication method for Universal however it is currently not possible to use that same authentication method to connect PowerBI to the oData endpoints.It would be very nice to be able to do so, currently you get this error when clicking “Aanmelden”
We have currently tried and have added on a Cardlist in Universal GUI an html link.This link is dynamically created from the SQL in the view and an HTML link is displayed.The problem with it is that once the link is clicked it opens the page in same window instead of the defined new window or tab.From the above issue reported we got an answer to use instead of HTML the URL domain type. Doing that though means we will see the entire URL on-screen which is not desirable.The idea is to have a way to mask the URL behind a smaller text or image.
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.