Skip to main content

Idea pipeline (top 25)

Filter by idea status

Filter by product

1967 Ideas

Expression list to complement or replace current expression fieldsOpen

We all know and use expression fields in tables to display additional information from other tables (for example a customer name in an order containing only the customer number). This works fine for a limited number of rows but as the list grows expressions hurt performance. This idea is to solve this performance hit by making set-based expressions without having to resort to views.Disclaimer: I haven't thought this through 100% but I think it could work. ;)Suppose you have a table “order” and a table “customer”. The orders contain a customer number but not the customer name. Now to add the customer name in the order list I imagine I could define table “customer” as an addtional entity under table “order”. In this entity I choose customer number as the reference column. In the next step I then add colums from table “customer” to table “order” where these columns don't physically exist in table “order”. Just like existing expression fields they could be marked in blue or some other color. In this particular example I’d add column “customer.customer_name” to table “order” as an expression.Under water the GUI adds table “customer” to the query of “order” using a left join. It might use alias t2 for “customer”. Then t3, t4 etc for additional defined entities. So in this case this would be select t1.*, t2.customer_name from order t1 left join customer t2 on t2.customer_id = t1.customer_id for the GUI.There probably should be a check on these defined entities to prevent duplication of rows from the main table within the grid.The reason for this idea is that we often use views for longer lists of data instead of tables with expression fields, for performance reasons. But this has obvious downsides too such as additional required functionality to make the data editable.Additional:After writing this I realized the idea could basically be seen as an expansion of lookup tables. Currently a lookup has a 1 on 1 column relationship: a column in a table is displayed with the value of a column in another table. This could be expanded to displaying additional columns of the lookup table. So in this example the order-customer reference would allow to add additional columns from lookup table “customer” to the data model of “order” in the form of expressions.

Make better use of multiple browser tabs with UniversalOpen

IntroductionUsing the Universal GUI in multiple browser tabs can be really powerful. For example to make use of multiple monitors or not to clog the 'Open documents' when you want to open multiple rows of the same subject. When using a html field that points to a deeplink proces flow, it is already possible to make a clickable link in the grid to open a subject row in a new window. This is beneficial over double-click tasks because it works with a single click and it shows as a hyperlink making it intuitive for the user. However there are a few things that could be improved.Suggestions1. Make the title of the website page dynamically and configurable per subject. For example as default I want to use 'subject_name lookup_field' (Product P65434), but for subjects that have a recognisable name I just want to use 'lookup_field' (PO-32423). This would also be very useful for floating-documents.Optional:-Make it possible to include the application name.-Make it possible to use the tab icon as page icon.-Use a similar configuration to show the title in 'Open documents' (Open document title in combination with lookup | Thinkwise Community (thinkwisesoftware.com)).  2. Make it possible to use html fields as a lookup field for foreign keys. Currently it doesn't work when the lookup field of a table is a html field (even when the reference field in the target table also is a html field). The only way around this seems by using an extra html expression field in the list and the just the actual lookup field in the form (but this limits the use of add/edit in grid). 3. For proces flow action ‘Open document’, add an extra option to open as a new browser tab page.4. Make it easier to setup html links (this could probably be done already with dynamic code): Add a checkbox to a table column to enable ‘link to page’. When this is enabled for one or more columns in a table (or variant), in the background a process flow should be created to open the document (form) as a deeplink. Another effect of this checkbox should be that the enabled column should be displayed as a html link that points to the process flow deeplink on the same server/application.An alternative (in combination with suggestion 3) could be to add a single-click option to tasks. This should underline the single-click-field and show it as a hyperlink so the mouse cursor is changed making it more intuitive for a user). Screenshot Example expression field lookup that links to the source table in a new browser tab.

Option to allow selected row to move out of sight after refreshOpen

In a new barcode scanning screen we’re constantly adding items to a list by scanning many barcodes in a barcode view. This barcode view receives updates at every scanned item which results in an insert statement to a table via an instead of update trigger on the view. The effect is that every action with the barcode scanner results in a new item in the list. New items are added from the top of the list.The problem is that as soon as the selected row reaches the bottom of the grid it stops going further down at consecutive scans. New items are still added but they aren’t visible without scrolling up. Because we want to minimize mouse actions during the scanning process to maintain workflow this effectively keeps new items invisible.This issue was already described in https://community.thinkwisesoftware.com/questions-conversations-78/barcode-input-2822 where an animated gif illustrating the issue can be found as well.The solution I would like to propose is an option in subjects to allow for a selected row to appear outside the view of the grid after a refresh. With that option enabled the selected row would effectively keep moving down in our case and new items would keep appearing at the top of the grid.Please note that I tried a process flow to move the row selection to the top after every refresh. This is not an option here as it moves the cursor away from the form in the barcode scanning tab. Scan actions need to be possible without workflow interruption and with minimal user action in the end-product.

Ability to stash branch changesOpen

New idea in consultation with Dave, written by Mark Jongeling:I would like to be able to stash any changes I made to a branch similar to how Git does it: Git - git-stash Documentation (git-scm.com)One way of achiving this is an additional option in the Revert branch task with which I can indicate that I want to revert my branch to a point in time, and that the current state of the branch is stored, or Stashed; for example as a new branch. This new branch is in essence a copy of my branch with all the changes, then after that branch is created, reverting my original branch to the indicated point in time. That will leave me with two branches; the original one which is reverted and the stashed one which has all of the changes I originally made.At a later time, I can then merge the stashed branch into my original branch, effectively applying my changes again.  Old idea:Long story short, I'd like to be able to set the origin model version during the creation of a merge sesion.Casus:Let's say I have a branch A. I've made some development during the period X->Y. Let's say I want to park my changes by creating a branch B and reverting branch A to timestamp X.Then, when I eventually want to merge branch B into A, the merge session wrongly assumes that all my changes are deleted in branch A, because branch A is relatively in the past to branch B. So we want to have both model A and B to have a same base origin model version for the merge. That way, the merge sees the delta actions for branch B as additions from B->A instead of A->B.