Do not forget to Subscribe to this area with the button at the right.
An issue has been fixed where the precision of the datetime used by the GUI did not match the precision of the datetime returned by get_gui_cache, which could result in the cache not correctly refreshing.
A hotfix has been created to remedy a situation where unauthorized access to gui_advice was possible through indicium. A prefilter has been added to the gui_advice and gui_advice_property views which limits access to authorized users only. The prefilters will be automatically applied by Indicium.
Hello everyone, we have a special treat for you: Universal is production ready. This release is version 1.0 so we're no longer in the release candidate phase. Some customers already used Universal in production, and now you can too. We can't wait to hear your thoughts and ideas. As always, we've made a demo for you: try it here. Before trying it out, press 'Clear Cache' on the login screen. You can read the GUI user manual to get familiar with Universal. We'll keep you updated regularly about Universal's progress. Universal version 1.0 Like with every blog, we've released a version so you can test Universal out for yourself. Don't forget the documentation and be sure to keep the following in mind: Edge has been updated to use Chromium, which greatly changes the way it works under the hood. We now also recommend this browser to be used for Universal. Universal must be deployed on the same server as Indicium or it should be an allowed origin in appsettings.json. Universal only works with version 2019.1 and up of the Thinkwise Platform. Furthermore, make sure you run all hotfixes on the IAM and SF that you plan to use for Universal. Make sure you are on the latest version of Indicium Universal. Download Universal version 1.0 here Finding the saved record When you save a record, there might be changes that cause the record to be filtered away. This might be because you have a prefilter active, because you searched for a phrase that is not in the new record, or the record falls outside the number of rows we show. The number of records we show used to be hard-coded, this now also listens to the SF setting max no. of records of the subject. To make sure you can find the record easily again, we show a notification informing you that the record you just saved can't be show in the current screen. We also have a button to show that record. This will open a new document that's zoomed in to that record. Finding a record that falls outside the current filters Unit tests In the past three weeks we've added another 55 unit test cases to the components and inner workings of Universal. This brings us up to 1565 test cases in total. Lots of minor fixes/tasks Bugs All CRUD buttons no longer become visible when they shouldn't be if a task popup is open Mandatory field errors now correctly show up when there is a TSFMessage present The multiline control now has a scrollbar again Fixed a bug where details would sometimes not load Years in the graph are now sorted correctly Fixed a bug were tabs wouldn't show in breakpoints UI/UX We now support model-defined hotkeys for tasks on the top-level document Dates/times/datetimes are now correctly formatted using the preferences of the user's browser When starting Universal with an unsupported browser we now show a page suggesting to use a modern browser The HTML control now opens links in a new tab Breakpoints no longer activate when in edit mode, since you do not know if you have a form in the breakpoint Performance Fixed a bug where the data would be loaded multiple times, causing the screen to flicker Multiple performance improvements Technical Universal now uses the table model settings to decide how many rows to display (maxNoOfRows) We did the groundwork for the maps component What we'll be working on next sprint The next sprint we'll be working on: Grid edit mode groundwork 2FA groundwork Grid multirow selection groundwork Search in listbar / tree menu Research on how to make loading lookups more efficient Improved combo/suggestion controls
Recently we introduced a new GUI feature, which was also highlighted in the SF 2020.2 release notes: see this URL. When no project, project version and runtime configuration are provided in the INI-file, the Windows or Web GUI will load all active runtime configurations for the current user from the Software Factory. This hotfix improves the way of determining what is an active runtime configuration, preventing too many runtime configurations from getting started by the GUI. The conditions for an active runtime configuration are now: The project is a work project The project is not a base project The project version status is not ‘Inactive’
When synchronizing a project to the Intelligent Application Manager, a grid column that was explicitly marked to be in a new, empty group would incorrectly join the previous grid column group. This has been resolved with a hotfix for the Software Factory versions 2019.1 to 2020.2. For the change to take effect on incorrectly joined grid groups, re-synchronizing after applying the hotfix is necessary.
A hotfix has been been made for IAM 2020.1 and 2020.2. It corrects 2 system flow situations: The gui_appl_system_flow view is altered, which makes it possible again to disable system flows. An index has been added to process_flow_schedule_log. This index prevents a table scan which could cause locks. The index now forces a seek instead.
In the Universal GUI badge settings for table variants were ignored. The GUI only used the settings defined at table level. This hotfix activates the badge settings for variants.
To start this blog post off, I’m sure the state of affairs the last few months has presented everyone with many challenges. Fortunately for us, after a very short adjustment period, we’ve managed to adapt to working from home and went back to working on this release at full speed. In this release we’ve taken our first steps to implement AutoML. Right now it’s possible to start training models based on data from your application. Eventually, these models can be used to make predictions about future data. We’re looking forward to bringing you the full power that AutoML has to offer in the future so keep your eyes peeled for updates. AutoML trainingFeatures in this release Besides AutoML there are loads of other features packed into this release including: Breakpoints for screentypes Logging and auditing in IAM Meta files in the database Send e-mail when generating Automatic license renewal Unit testing for subroutines Post synchronization code execution And many, many more features and fixes which can be found in the release notes The Thinkwise Platform 2020.2 release is available for download from TCP right now! Lastly, we want to take some time to wish everyone good health. Take care and stay safe!
When you synchronized your project to IAM, sometimes action Synchronize roles took a long time. The cause of this was a slow view, i_sync_role_col. This hotfix improves the performance of this view a lot.
While synchronizing to IAM, it is checked whether IAM contains more roles than the Software Factory. If this is the case, a message will be displayed saying that first the roles should be imported from IAM. This hotfix resolves the issue that an error message would occur when there are more than 255 roles present in the SF or IAM.
Hello everyone, as you know we're in the Release Candidate phase. This means our main focus is on stability. This sprint we've worked very hard on making Universal ready for production and we've implemented a few popular features. We'll keep you updated regularly about Universal's progress. Universal version RC3.2 Like with every blog, we've released a version so you can test Universal out for yourself. Don't forget the documentation and be sure to keep the following in mind: Edge has been updated to use Chromium, which greatly changes the way it works under the hood. We now also recommend this browser to be used for Universal. Universal must be deployed on the same server as Indicium or it should be an allowed origin in appsettings.json. Universal only works with version 2019.1 and up of the Thinkwise Platform. Furthermore, make sure you run all hotfixes on the IAM and SF that you plan to use for Universal. Make sure you are on the latest version of Indicium Universal. Download Universal version RC3.2 here Tooltip in search It would be nice to know which columns are including when you're searching in a document. We've made just that: A tooltip shows in which columns you're searchingThe title will be translated via a meta hotfix as usual. Unit tests In the past three weeks we've added another 28 unit test cases to the components and inner workings of Universal. This brings us up to 1510 test cases in total. Lots of minor fixes/tasks Bugs Mandatory field errors are now reset so they no longer appear when adding a new record after cancelling when having errors Universal now correctly recovers after report execution fails so you can keep working The grid no longer erroneously removes the initial sorting when the sorting column isn't visible Fixed a bug where no data would load and a spinner would remain visible because lookups weren't properly loaded Details of the previous active record are no longer visible when adding a new record or filtering all records away Nested details no longer come up unfiltered when opened directly (TCP issue 76202) Fixed a bug where some details kept loading forever The chart no longer crashes when encountering a calculated field Tasks and reports now also execute correctly when not executed on a record Fixed a bug where not all columns were visible in the grid in a lookup popup UI/UX Removed the clear icon for the suggestion control and made the dropdown icon consistent with other dropdown icons The tooltip now only appears in the grid and form when the content actually is too large to fit The width of form columns now listens to the Field width and Label width settings in the SF Decreased the cell padding in the grid The spinner no longer flickers with a scrollbar The initial sorting when opening a lookup for the first time is now correct Technical Added support for 2020.2 breakpoints Upgraded our coding language (Typescript) What we'll be working on next sprint In the upcoming sprint, we are fully committed to improving stability so that we can release a version that can be used safely in production environments. The goal is to ensure that all features that the Universal GUI now offers work flawlessly and that it can recover from any unexpected errors without becoming unstable. It also means we'll be working on the features that are essential for the production release like: Improving the way errors are handled and presented to make it easier for the user to understand what went wrong Providing a mechanism to find a record if it falls outside a filter after saving Fixing the way dates and times are formatted Making sure you can still continue if the screen changes due to a breakpoint when editing in a form Performance improvements Squashing a few more bugs
As the version bump to 2020.2.10 may already have suggested, our main focus last month was to get everything ready for the upcoming Software Factory 2020.2 release. One of its main new features is that application resources such as images and reports are now stored in the model itself rather than on the file system. This presented an opportunity for us to develop something which has been high on our wish list for a while: file uploads from the grid. Another new feature we’re excited about is that both developer tool windows (the debug console and the location path window) can now be docked somewhere. Other improvements include: Values in the active row are now refreshed after saving without modifications. This resolves a bug in the form list control. As always, saving a row without modifications does not send a PATCH request or UPDATE query to the back-end. The appearance of tile menus in the Software Factory modeler is now more similar to what it will look like in the modeled application. Correctly resize some images in the grid. (Web GUI) Improved support for some types of pool user credentials for DB2 and Oracle. (Web GUI) Fixed read-only checkboxes in the default editable form where they should be editable. (Windows GUI) Fixed accidental German translations in the Dutch translation set of the rich text hotspot manager. (Web GUI) Language native names in the ribbon are now properly capitalized. (Web GUI) A reply_to parameter has been added to the report mailer. This works only for the Outlook mailer. (Windows GUI) File and image upload in the grid In the Windows GUI, you can now upload files and images in the grid. It works like file and image upload editors in the form. Upload image in the gridIf the grid cell is editable and active, a red cross icon appears which will remove the current file, after which a new file can be selected and then uploaded. Dock developer tool windows We’ve enriched the application debugging experience by allowing some tool windows to be docked like normal windows can. See below screenshot in which the debug console is docked to the right: Docked debug consoleAll docking features are available to it, such as auto hiding or docking it as a tab page.
Hello everyone, this sprint we've worked on making Universal much more robust. We also added some features like restoring the default sort order and some visual improvements like changing the spacing in the form and number formats. As always, we've made a demo for you: try it here. Before trying it out, press 'Clear Cache' on the login screen. You can read the GUI user manual to get familiar with Universal. We'll keep you updated regularly about Universal's progress. Release Candidate 2.1 Like with every blog, we've released a version so you can test Universal out for yourself. Don't forget the documentation and be sure to keep the following in mind: Edge has been updated to use Chromium, which greatly changes the way it works under the hood. We now also recommend this browser to be used for Universal. Universal must be deployed on the same server as Indicium or it should be an allowed origin in appsettings.json. Universal only works with version 2019.1 and up of the Thinkwise Platform. Furthermore, make sure you run all hotfixes on the IAM and SF that you plan to use for Universal. Make sure you are on the latest version of Indicium Universal. Download Universal Release Candidate 2.1 here Push new version Universal can be installed as a PWA so you can use it as an app on your devices. A version of Universal is then installed locally on your device. But if Universal is updated, your local install isn't updated automatically as well. It would be really nice to get a notification with the option to update your local install. That is exactly what we've built. This is what it looks like: Notification with the option to update UniversalYou'll get a notification informing you that there is a new version available. You can update immediately from that notification. If you want to finish up before updating, you can close the notification. The the user profile icon in the top right gets a dot to signify an action can be performed. If you click the profile menu and go to ‘about’, you have the option to update Universal from there. Restore default sorting You can change the sort order, but sometimes you want to go back to the way things were. We've implemented a feature to restore the sort order to the default. It looks like this: Restoring the default sort orderUnit tests In the past three weeks we've added another 19 unit test cases to the components and inner workings of Universal. This brings us up to 1482 test cases in total. Lots of minor fixes/tasks Bugs Disabled suggestion controls now properly load lookups Fixed bug where parent grid would keep loading if there were details visible (TCP issue 75811) UI/UX Increased the space between columns in the form Fixed calculation of spacing between fields in the same line in the form The popup icon in the multiline has been hidden Fixed a bug where the form layout would sometimes be incorrect, leading to fields bleeding into each other Removed the extra paper around the loading spinner when there already is a paper The lookup combo now uses the proper space for the text so it no longer overflows into the icons Numbers are now properly formatted in the form (TCP issues 75817 and 75818) Technical Unknown errors no longer cause a crash Fixed multiple security issues in our dependencies What we'll be working on next sprint In the upcoming sprint, we are fully committed to improving stability so that we can release a version that can be used safely in production environments. The goal is to ensure that all features that the Universal GUI now offers work flawlessly and that it can recover from any unexpected errors without becoming unstable. It also means we'll be working on the features that are essential for the production release like: Improving the way lookups are resolved (this solves multiple issues with screens that keep loading for example) Improving the way details are filtered Support for 2020.2 Dealing with records that are filtered away after saving Squashing a few bugs Starting with the research and design on how grid edit mode should work
Having Indicium Universal running in an environment has been optional since Thinkwise Platform version 2019.2, to be able to run the Universal GUI. For Thinkwise Platform version 2020.1, Indicium Universal was also required to be able to leverage the scheduling feature. Starting with Thinkwise Platform version 2020.2, an active Indicium Universal will be mandatory for the platform to function correctly. Indicium & Indicium Universal Indicium comes in two flavors, which are both actively supported: The Indicium runtime component has been in service for a long time. This variant is used as back-end for the Mobile GUI and 3-tier Windows GUI. However, the required runtime component will be Indicium Universal, currently used for scheduling and as a back-end for Universal. When providing api's to external parties, this runtime component is best suited for the job as well. Note: Both an Indicium and Indicium Universal runtime can be active at the same time for a Thinkwise Platform environment without any problems. Thinkwise Platform 2020.2 The upcoming new version of the Thinkwise Platform will leverage scheduling and some other autonomous mechanisms, which will be executed by Indicium Universal. Indicium Universal will be required for both development environments running the Software Factory as well as end-product environments running an Intelligent Application Manager and end-products. Infrastructural requirements Indicium Universal typically runs on a webserver connected to the internet or as a managed web app in the cloud. However it is not required that this webserver is exposed to inbound traffic from the web. An internal server would work just as well. However, an integrated licensing renewal mechanism (which will be detailed in the upcoming release event) will require Indicium to perform outbound web calls. Indicium Universal will also require this level of connectivity when scheduling http connectors calling web resources are used by your product. Version 2020.2 of the Thinkwise Platform is scheduled to be released in June.
While executing a merge session, it possible to get this message: Cannot delete this row due to related ‘Comments’. This message occurs when a control procedure that was in review, is now deleted in the branch or the trunk. This is hotfixes in 2020.1 by temporarily removing the constraint. In 2020.2 this is fixed by changing the order in which actions are removed. Also, the constraint will be added again and incorrect data will be corrected. Merge execution message
Hello everyone, this release we have improved breakpoints, added the option to have a backplate for the tiles menu, added grid sorting and lots of stability improvements. We went from from a beta version to release candidate 1 this release. This means we are getting closer than ever to recommending Universal to be used in production environments. As always, we've made a demo for you: try it here. Before trying it out, press 'Clear Cache' on the login screen. You can read the GUI user manual to get familiar with Universal. We'll keep you updated regularly about Universal's progress. Release Candidate 1 Like with every blog, we've released a version so you can test Universal out for yourself. Don't forget the documentation and be sure to keep the following in mind: Edge has been updated to use Chromium, which greatly changes the way it works under the hood. We now also recommend this browser to be used for Universal. Universal must be deployed on the same server as Indicium or it should be an allowed origin in appsettings.json. Universal only works with version 2019.1 and up of the Thinkwise Platform. Furthermore, make sure you run all hotfixes on the IAM and SF that you plan to use for Universal. Make sure you are on the latest version of Indicium Universal. Download Universal Release Candidate 1 here Improved breakpoints One key aspect of Universal is that it enables the developer to define breakpoints. A screen can have different components based on the width of Universal. Having a grid and a form next to each other will work fine on a desktop, but not on a small mobile device. This greatly improves the flexibility of applications, but it also holds one key problem: breakpoints were activated based on the width of Universal. This worked perfectly when we first created breakpoints, but now it no longer was sufficient. What if the screen is a detail that has much less space than the entire width of Universal? What if the screen is a popup, also with much less space? We now look at the width that a screen has available to it. So a breakpoint for a detail can also change when you move a splitter: The breakpoint of a detail changes when moving a splitterOr when you resize a popup: The breakpoint of a popup changes when resizing the popupTiles menu background image It is now possible to have a background image for the tiles. This image is the backplate as set in the Universal type theme in the SF so you can have different images for the dark and light themes. Be mindful that the tiles menu is responsive, so any important information in the background image might be covered by a tile or otherwise not visible. It looks like this: A background image in the tiles menuGrid sorting You can now press on the header of a column in the grid to sort the data. This will toggle between ascending and descending. An arrow will indicate the sort order. If you hold the shift key, you can sort on multiple columns. (You do need a keyboard for this) The sort for any additional columns can also be removed. This is what it looks like: Grid sortingTask / report mandatory field error handling When a mandatory field is not filled in the task or report parameters, you now also will get a descriptive message and the relevant fields will be highlighted: Mandatory error handling in a report popupUnit tests In the past three weeks we've added another 28 unit test cases to the components and inner workings of Universal. This brings us up to 1463 test cases in total. Lots of minor fixes/tasks UI/UX Scrollbars now have the correct background color in dark mode when hovering over them Series in the chart (e.g. dates) are now sorted correctly Use the correct translation key for Refresh The unsaved changes indicator now has the correct color based on the background color The Open documents header for tiles now looks the same as the listbar The lookup popup will now correctly open when there is no value yet When typing in the lookup combo, the value now is automatically selected Fixed alignment of lookup combo arrow icon Technical Lookups are now correctly filtered by lookup prefilters Fixed white screen when opening a subject that was already open Lookup combos are now properly refreshed when going into edit mode Fix a bug where the form wouldn't be visible when going into edit mode after switching breakpoints What we'll be working on next sprint In the upcoming sprint, we are fully committed to improving stability so that we can release a version that can be used safely in production environments. The goal is to ensure that all features that the Universal GUI now offers work flawlessly and that it can recover from any unexpected errors without becoming unstable. It also means we'll be working on the features that are essential for the production release like: Support 2020.2 Making sure Universal doesn't crash when any Unknown error occurs Correctly filtering nested details on reference columns Dealing with records that cannot be found due to prefilters after saving or opening a lookup Restore sorting Push a new model version to the Universal PWA Bugs and stability improvements
Considering the breadth of changes introduced in 2020.1.12, it made sense to allow ourselves a cooling down iteration and see where we could improve and refine. That being said, we did add three new features: Tile background scaling Minimal and full versions (Windows GUI) Tools for online documentation (Software Factory) Other improvements include: When a background task is started, the Running tasks panel is now opened automatically. It is not assumed anymore that each SQL Server installation allows people to log in using Windows authentication. This applies in particular when an application is deployed in Azure. When a default stored procedure includes a parameter from a password control, its value is now obscured in the debug console. The Started at column in the debug console now shows the full time stamp of each event, including its date. Scheduler improvements for edge cases. Fixes for the preview control in the Windows GUI. IMPORTANT: As detailed in the Thinkwise Lifecycle policy, support for Software Factory version 2017.1 has ended in July 2019. Following this policy, support for this version will end in the Windows and Web GUI’s too in their next release. Tile background scaling Both GUI’s now support three tile background image scaling types. To use this feature, you’ll need to add the extended property TilesmenuBackgroundScaling to your project, Available values are: stretched - The image is stretched to fill the available space. This is the default and current behavior. centered - The image is centered with respect to the available space. tiled - The image is anchored to the top left, and tiled to fill the available space. Minimal and full versions As the inclusion of the Chromium web browser engine for the preview control adds about 270 Mb to the required disk space of the Windows GUI, we’ve decided to make it optional. If you delete the CefSharp subdirectory from the Components directory (see below screenshot), the GUI will still work, but with a limited set of file types that can be shown in the preview control. Files that can still be previewed are: Images: .jiff, .jpg, .jpeg, .bmp, .png, .ico Text: .txt, .cs, .java, .ini, .log, .bat, .sql PDF: .pdf, .ps To accommodate this change, we’ve also distinguished between minimal and full downloads of the Windows GUI in the Thinkwise Community Portal. The full download includes the CefSharp directory, the minimal download does not. Tools for online documentation The Project ribbon tab in the Software Factory development environment now contains two new tools: Online Documentation - Opens the online documentation in the default web browser. Community - Opens the Thinkwise Community in the default web browser.
Hello everyone, we have a new update with quite some changes we think you'll like. As always, we've made a demo for you: try it here. Before trying it out, press 'Clear Cache' on the login screen. Note: From the next release we'll change how the releases and this blog are done. While our development cycle doesn't change, we're going to publish each release a few days later to give us time for regression testing and to fix any issues we find. What this means for you is that the blog and release will no longer be on Friday but on the next Tuesday. We'll keep you updated regularly about Universal's progress. Beta version 0.80 Like with every blog, we've released a beta version so you can test Universal out for yourself. Don't forget the documentation and be sure to keep the following in mind: Edge has been updated to use Chromium, which greatly changes the way it works under the hood. We now also recommend this browser to be used for Universal. Universal must be deployed on the same server as Indicium or it should be an allowed origin in appsettings.json. Universal only works with version 2019.1 and up of the Thinkwise Platform. Furthermore, make sure you run all hotfixes on the IAM and SF that you plan to use for Universal. Make sure you are on the latest version of Indicium Universal. Download Universal beta version 0.80 here Open documents in the tiles menu The tiles menu now also has open documents, it looks like this: Open documents in the tiles menuEditable image combo The image combo control was available as readonly. We've now made it editable as well: The editable image comboForm responsiveness The number of columns in the form is now responsive. You can set the number of columns in the SF. If there is not enough space for that many columns, Universal will start dropping columns so you can comfortably work in the form. There will never be more columns than the amount specified in the SF. It looks like this: Responsive number of columns in the formMandatory field validation When trying to save a form with empty mandatory fields, you now get a nice error explaining what the problem is. These new translations need to be added to the SF The fields in questions will also be marked red: Field validation for mandatory fieldsLookup popup styling We've made several improvements to the lookup popup, it looks like this: Lookup popupWe changed the lookup icon You now have the subject title and active record in the header. When you open the lookup popup in non-edit mode, the option to select the value has been removed When you open the lookup popup in edit mode, the select value is disabled until you actually change the value. Unsaved changes are indicated by a dot next to the subject title in the header Grid autosize based on content The option to have the grid size its columns based on the content has been added, it looks like this: Autosize columnsLogout when unauthenticated When the user lost authentication (e.g. by logging out in another browser tab), a cryptic message used to be shown by Universal. We now show a message and redirect the user to the login screen to login again: Logout when unauthenticatedUnit tests In the past three weeks we've added another 57 unit test cases to the components and inner workings of Universal. This brings us up to 1435 test cases in total. Lots of minor fixes/tasks UI/UX Multiline text in the grid is now properly truncated with an ellipsis Numeric controls now properly show the numeric keyboard on mobile Page up and down now properly activate the correct record in the grid The default font is now properly loaded in production builds Universal now uses the native combo control on mobile; This prevents several issues like getting the wrong value after selecting an option or the keyboard obscuring the values. You can now type in the combo to select records Universal now gives you a message when trying to log out if any document has unsaved changes Fixed the color of the toolbar overflow menu's The text colors in the topbar now properly adjust themselves to contrast with the background Fixed a bug where a double-tap would be necessary to switch documents on iOS Made the action button tooltips (save, cancel, etc.) translatable You can now use space to fill in the current date/time in date/time controls. The time now also defaults to 12:00:00 We disabled word wrap for multilines in the grid We removed the detail buttons in the action bar since you can reach them via tab pages or detail tiles Technical Made field percentage mandatory to avoid errors where the width of form controls isn't passed properly There no longer is an error when trying to save a datetime control with only the date filled We've added an action for open document success to help with process flows later on We added a build command to easier test on many devices on BrowserStack. We changed how breakpoints are handled internally to be able to send better requests to Indicium What we'll be working on next sprint In the upcoming sprint, we are fully committed to improving stability so that we can release a version that can be used safely in production environments. The goal is to ensure that all features that the Universal GUI now offers work flawlessly and that it can recover from any unexpected errors without becoming unstable. It also means we'll be working on the features that are essential for the production release like: Making Universal compatible with the Thinkwise platform version 2020.2 Grid sorting on a single column, restore default sort, header-sized columns Being able to locate a record after save if it falls outside the filtered set of records Breakpoints based on size of the container for breakpoints in details and popups Finishing the first version of Universal as a Progressive Web App (PWA) with, among other things, pushing a new version of Universal to the service worker, having the correct icons, contructing the manifest Stability
Hello everyone, this sprint we've made some great improvements to Universal we think you'll like. Among other things, we've added lookup popups and the tiles menu. Read on to get all details. As always, we've made a demo for you: try it here. Before trying it out, press 'Clear Cache' on the login screen. We'll keep you updated regularly about Universal's progress. Beta build Like with every blog, we've released a beta build so you can test Universal out for yourself. Don't forget the documentation and be sure to keep the following in mind: Edge has been updated to use Chromium, which greatly changes the way it works under the hood. We now also recommend this browser to be used for Universal. Universal must be deployed on the same server as Indicium or it should be an allowed origin in appsettings.json. Universal only works with version 2019.1 and up of the Thinkwise Platform. Furthermore, make sure you run all hotfixes on the IAM and SF that you plan to use for Universal. Make sure you are on the latest version of Indicium Universal. Download your beta build here Lookup popups In the previous blog we promised you lookup popups for the next release. We had to do quite some work with styling and actually selecting the chosen record. We did just that, so here it is: Working with lookups was a bit cumbersome in Universal, it was difficult to quickly open a lookup and make some changes. We've now made that a lot easier by implementing lookup popups. Before we continue, here's what they look like: Lookup popups in actionWhen you open the lookup popup the correct record is selected and you see only the records you'd be able to select. This seems obvious of course, but did need to be implemented. Details are hidden in the toolbar of lookup popups. If you'd open a detail via the toolbar, it would open a new document. That document is below the popup, so it would be unusable. Since we support screen types, you can still access your details via a tab page in a popup. There are some improvements we'd like to do. For example making breakpoints work better in lookup popups and indicate when there are unsaved changes. You'll be seeing that and more in a future release. Tiles menu We've created the first version of the tiles menu. This is what it looks like: The tiles menu in actionSwitching between two applications, one with, and one without a tiles menuTiles will not scroll horizontally, but will arrange themselves neatly on the screen. While the tile sizes aren't responsive yet, they to respond to the available width: Tiles menu responsivenessAs you can see in the images above, badges also work for tiles! Next up we'll be adding open documents to the tiles menu. Grid improvements We've made some improvement to the grid. Now it listens to the column size as defined in the SF. Also we now support locking columns, it looks like this: Fixed columns and custom column width in the gridBesides that, we now also indicate the sort order in the grid: Arrows indicating the sort order in the grid headersIt is not yet possible to change the sort order by pressing a column header, this will follow in another release. Form improvements Earlier we implemented that you could change the width of form fields. That is a nice feature on its own, but only become truly powerful when you can put form fields next to each other. This sprint we've made just that. This is what it looks like: Form fields next to each otherChart improvements We continue to work hard on the chart. This sprint we've added positioning the chart labels (inside or outside). That looks like this: Labels can now also be placed inside the graphAlso we've implemented legend positioning, this is best explained by an image: The legend position can be changed nowhe chart used to crash when a category or series datapoint didn't exists. That is fixed now. We now also clean up the cube nicely when the document is closed. This is more of a technical change that helps keeps things nice and organized under the hood. Groundwork for process flows We've been working hard on the base architecture for process flows. This is a complicated feature involving multiple products. We'll keep you up to date on the progress. Unit tests In the past three weeks we've added another 32 unit test cases to the components and inner workings of Universal. This brings us up to 1378 test cases in total. Lots of minor fixes/tasks UI/UX The active record in the tree now changes when navigating with the arrow keys Fixed a bug where the CRUD toolbar expanded through the toolbar next to it We now disable the login button if the username or password fields are empty Fixed a bug where you'd see an old value after putting the form in edit mode when previously entering wrong data in the form The browser tab icon and text now reflect the current application Technical There no longer is an error when moving through the rows in a grid with file uploads Fixed a bug where no data would load when there was no prefilter bar Deletes are no longer done directly on the state; this could cause errors. Performance Removed unused translation key and language files Stability We now send readable data to Sentry so we can fix bugs faster We've implemented a feature that stops Universal from starting in our development environment when vulnerabilities are discovered in third party dependencies. This ensures we fix any such vulnerability whenever it shows up. This has proven effective; we already found and fixed a vulnerability in a third party dependency in the few days after we've implemented this functionality Universal now gives a nice error message on the login screen when trying to use an unsupported platform version. What we'll be working on next sprint In the upcoming sprint, we are fully committed to improving stability so that we can release a version that can be used safely in production environments. The goal is to ensure that all features that the Universal GUI now offers work flawlessly and that it can recover from any unexpected errors without becoming unstable. It also means we’ll be working on the features that are essential for the production release like Responsive form columns Grid column autosizing Mandatory field validation Being able to locate a record after save if it falls outside the filtered set of records. Finishing the first version of Universal as a Progressive Web App (PWA) with, among other things, pushing a new version of Universal to the service worker, having the correct icons, contructing the manifest
Two hotfixes have been released for IAM and SF regarding scheduling. The first hotfix resolves some issues regarding the way schedules were picked up on by Indicium. This hotfix restructures some scheduling-related information under-the-hood. This change will require an Indicium update in order to take effect. Schedules will become active with the next Indicium Universal release, version 2020.1.6. A topic will be posted in this subforum once this new version of Indicium Universal is released. Until then, schedules can be configured and activated but will not yet be executed. The second hotfix resolves an issue when synchronizing certain models containing schedules.
The upcoming Thinkwise Platform version 2020.2 will no longer officially support SQL Server 2012 and SQL Server 2014. The official minimum supported version of SQL Server will be 2016. As of version 2020.1 of the Thinkwise Platform, the minimum version of SQL Server was already 2016 for the Software Factory. The Intelligent Application Manager, Indicium service tier and the GUI's did not leverage SQL Server 2016 features with the 2020.1 release. With the upcoming release of Thinkwise Platform version 2020.2, this will change, and therefore the entire platform will require SQL Server 2016 or higher. Impact on development environments As of version 2020.1 of the Thinkwise Platform, the minimum version of SQL Server was already 2016 for the Software Factory. Impact on production environments Version 2020.2 of the Intelligent Application Manager will leverage temporal tables. This immediately brings the minimum required version of SQL Server to 2016 upon release. The Deployment Center will prevent installation or upgrade of the Intelligent Application Manager to version 2020.2 when the SQL Server version is below 2016 or the database compatibility of the Intelligent Application Manager database is below SQL Server 2016. Existing products will no longer work on SQL Server 2012 and SQL Server 2014. We advice to upgrade your production environments to SQL Server 2016, before upgrading the Thinkwise Platform to 2020.2. Timing Thinkwise Platform version 2020.2 is planned to be released in June 2020. The changes in SQL Server version support will be reflected in the lifecycle policy. SQL Server In our blog language features several new T-SQL features in SQL Server 2016 and 2017 are described.
A new hotfix has been made for the SF 2019.1, 2019.2 and 2020.1 to improve the performance of the Get GUI for table variants. This will speed up the start-up time of your end products.
Maybe it's the current Dutch stormy weather inspiring the Thinkwise WinWeb Engineering Team, because we sure felt some fresh wind when we picked up a couple recurring tough issues and managed to put them behind us. We hope that the new features and improvements in the latest 2020.1.12 release will inspire you just as much, and increase your productivity. Highlights include: Totals for grid groups (Web GUI) Preview control (Windows GUI) Better FILESTREAM support Indicium connection (Windows GUI) Mail reports with Microsoft Outlook (Windows GUI) Aborted default procedures As usual, some general ease-of-life and quality improvements are included as well: The Ctrl A hotkey in the Web GUI selects all records in a grid. Support for the DATETIME2 data type on SQL Server is now complete. This is particularly useful in the context of temporal tables, where foreign keys on DATETIME2 columns are commonplace. The “Accept” HTTP header is properly supported in the HTTP process connector. SQL expressions for GUI calculated fields can end with an end-of-line comment without generating errors in GUI queries. Improved error handling in the file storage converter task of the model. The “All values” checkbox in the Excel style filter in the Windows GUI has been fixed. Support for basic authentication headers, in which an IIS server supplies known user-password values to the Web GUI, allowing it to log in automatically. Non-critical security updates for the Web GUI. Code creation on Azure and the Azure file storage back-end have received bugfixes. We have also been actively researching some Community Ideas. Be sure to keep an eye on this blog to find out what's coming. Totals for grid groups Sometimes an image says more than words: Group totalsThe Web GUI now supports totals per group in a grid. In the screenshot above, group header rows contain sums of values (e.g. amounts) of items contained in that group. Other supported aggregation types are Average, Count, Maximum, and Minimum. Preview control The Preview control has received the love it deserves, and underwent a major upgrade. The Windows GUI now uses the Chromium browser engine for previewing files. This increases the size of the download from the Thinkwise Community Portal. But as the previewer is now an essential component of most applications, it is a small sacrifice for some significant gains: Support for a broader range of file types to display. More efficient use of memory while going through several files in a set. All of the performance benefits of one of the best Javascript engines out there. We're convinced that the previewer has the expected level of stability, but as this is a major change we cannot completely ignore the chance of new issues. Test results are promising, but please do let us know if you experience any unusual new behavior. Better FILESTREAM support This SQL Server data type is an interesting mix between a large object and a regular file storage. For instance, it turns out that the semantics of copying existing file stream values to a new row (Ctrl Alt +) needed more fleshing out. This also affects tasks and reports with file stream parameters, when they are applied to a selection of multiple rows. Here, too, we have chosen for a mix. With the constraint in mind that files are allowed to be referenced by at most one record, each copy action now invokes a separate upload of the same file object. This is done automatically, which removes some work which would otherwise have to be done manually. It involves a download action right when copying to a new row. Should this new behavior not be acceptable, it is advisable to turn off the “Include in copy” flag in the model. Indicium connection We are continuously investing in improving the connection between the Windows GUI and Indicium, to make it fully compatible, and bug free. The latest 2020.1.12 GUI release contains a couple important bugfixes, and a new feature as part of this ongoing effort: Invalid files are now correctly ignored. User Preferences quality review. You can now change your password when connected to Indicium. The regular settings are applied as expected (e.g. “Allow change password” for a user in IAM). Change password when connected to IndiciumWe have also resolved an issue in which a grid would get out of sync with a row which has just been added to it. The TL;DR is that a rare combination of three Leaky Abstractions caught us off guard. For those interested, the technical explanation is that while the GUI is waiting for a web request to Indicium to return, the UI thread which is responsible for drawing items in the grid is not completely blocked - as is the case with other back-ends such as SQL Server or Oracle. So, when clicking on another row in the grid, a chain of events unfolds with a surprising result: (1) the added row is deactivating → (2) a web request is sent to Indicium to insert the new row → (3) the UI thread is unblocked which draws the grid → (4) the grid sees the incomplete row change and aborts it, so it is in a valid state when it draws itself → (5) the Indicium web request returns successfully → (6) the GUI enters a limbo state in which it simultaneously thinks the row change happened, and did not happen at all. It also turns out that this scenario only occurs if the web request checks for a proxy configuration, which makes the issue especially hard to reproduce: nothing extraordinary happens when running Indicium on localhost. At least the fix was easy. Mail reports with Microsoft Outlook Interoperability with different Microsoft Office versions to automatically e-mail your generated reports has been improved by changing the way the GUI invokes Outlook. With this update, errors resulting from version conflicts, Outlook processes that may or may not be running already, and a couple of other issues are finally resolved. This applies only to the Windows GUI. Aborted default procedures create procedure [dbo].[def_my_tab]( @default_mode tinyint, @import_mode tinyint, ...)asbegin exec tsf_send_message 'invalid_value', null, 1end When a default stored procedure is called in edit mode with a changed value and then aborted (see example code), its effect is that the change is undone. What's new is that this value reset now happens immediately after returning from the stored procedure call. In particular, a subsequent layout stored procedure receives the value as it was before the change. This removes the difference between what the user sees, and what the layout stored procedure thinks the user sees. Please be advised that this may affect the behavior of your existing layout stored procedures, but in the best way imaginable: it enables you to throw away value checking code in layout stored procedures which is now redundant, for free quality and performance gains.
Hello everyone. It's time for another Universal development update. This sprint we've been working on the navigation tree, many stability, performance and UI issues. We've also kept working on cubes and did the groundwork for lookup popups. As always, we've made a demo for you: try it here. Before trying it out, press 'Clear Cache' on the login screen. We'll keep you updated regularly about Universal's progress. Beta build Like with every blog, we've released a beta build so you can test Universal out for yourself. Don't forget the documentation and be sure to keep the following in mind: Edge has been updated to use Chromium, which greatly changes the way it works under the hood. We now also recommend this browser to be used for Universal. Universal must be deployed on the same server as Indicium or it should be an allowed origin in appsettings.json. Universal only works with version 2019.1 and up of the Thinkwise Platform. Furthermore, make sure you run all hotfixes on the IAM and SF that you plan to use for Universal. Make sure you are on the latest version of Indicium Universal. Download your beta build here Cube We've added support for charts where there is no row dimension. Something like this: Cube set without a row dimensionThe resulting chart in Universal looks like this: The resulting chartWe started doing the groundwork for pivot grids so we can implement them soon. We now use the cube field translation rather than the column translation. And we also fixed a bug where the chart crashed when there was no data Navigation tree Besides the listbar, we now also support the navigation tree (tree menu). This enables developers to have multiple levels in their menu: The navigation treeGroundwork for lookup popups We've come a long way for lookup popups. We added the button and the popup that loads the lookup subject. Since we have to do some finishing touches and styling, we won't show it just yet. We'll enable the buttons soon so you can see it. Unit tests In the past three weeks we've added another 50 unit test cases to the components and inner workings of Universal. This brings us up to 1346 test cases in total. Lots of minor fixes/tasks UI/UX We now hide tab headers when ShowTabHeader is set to false in the SF, or there is only one component tab visible We now only show the toolbar when the tab page has components that need the toolbar Fixed a bug where the action bar would slide out of view on some iPads Fixed a bug where the checkbox would skip over the indeterminate state when it was unchecked Suggestion control options now have the correct color Fixed wrong translation (sf_version should be platform_version) The search overlay now can be cancelled and closed with escape and closed with enter Form fields now have the width as defined in the SF by field_percentage We now show the actual badge number, rather than displaying 99+. The style of the 'Open documents' text is now consistent with Tab Page headers. Removed hidden links in email, phone and url controls that appeared when they had no value. The required asterisk for the HTML control is now also colored red. The checkbox no longer moves a few pixels up when it's selected for the first time. It's no longer possible to scroll the text of the tab page headers away. Horizontal scrolling in the grid is now possible Technical We upgraded typescript so we can use new features when developing Universal We now interpret a breakpoint of 0 as the default screen type since omitting the breakpoint would lead to problems in the future. Refactored the way the application id is stored within Universal Bugs that would cause a crash in production now also cause a crash in our development environment so we can see them more easily without needing to create a production environment Made the build console output in our CI more readable Fixed a console error that we should return an empty object rather than null Performance Refactored away a separate request to Indicium to get PK's Refactored the way responsive detail tiles are calculated Stability Fixed a bug where detail tab pages were duplicated Fixed a bug where tab pages had the wrong content Fixed a bug that caused Universal to crash after layout procedure errors (TCP issue 74580) When you open an already opened document, the screen is no longer blank Fixed bug where Universal would sometimes crash when closing document (TCP issue 74813) Fixed bug that the execution of layouts failed due to an unknown error. What we'll be working on next sprint We're working towards a version with all essential features. For next sprint this means: Making lookup popups available for you Doing more groundwork for the pivot grid Doing research into process flows Creating the first version of the tiles menu Allowing fields in the form to share the same line Grid: fixed columns, fixed size columns Some further chart improvements
We start off the year with the release of 2020.1 for the Thinkwise Platform! Process flows can automate many tasks that would require a lot of manual work. However, they still require a person to be present to “push the button”. In this release we’re introducing system flow scheduling to help with that. A system flow can be defined as any process flow that can run autonomously without user input. Users can now create a schedule to automatically run system flows at any time. Which means, no more waking up in the middle of the night to generate those sales invoices! Besides this cool new feature, we’ve worked on many other features and fixes, such as: Requirements and Design: Improved Kanban board Work linking and history Unit tests for triggers Temporarily approve validations Temporal tables OpenID configuration Application preferences in IAM Sort domain elements by translation More features and fixes can be found in the release notes. The 2020.1 release can be downloaded from TCP here. Upgrade notes With the introduction of temporal tables in the 2020.1 version of the Software Factory, the required minimum version of SQL Server will be 2016. For more information, see https://community.thinkwisesoftware.com/blogs-21/end-of-sql-server-2012-2014-support-820.
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.