Skip to main content
  • 587 Product updates

Universal Development Update March/April 2020

Universal Development Update March/April 2020

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

Related products:Universal UI
Universal Development Update March 2020

Universal Development Update March 2020

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

Related products:Universal UI
End of SQL Server 2012, 2014 support for entire Thinkwise Platform

End of SQL Server 2012, 2014 support for entire Thinkwise Platform

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.

Related products:Software FactoryWindows GUIIntelligent Application ManagerUniversal UIIndicium Service Tier

What's New in WinWeb 2020.1.11 and 2020.1.12

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.  

Related products:Windows GUI
Universal Development Update February 2020

Universal Development Update February 2020

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

Related products:Universal UI
Universal Development Update - January 2020

Universal Development Update - January 2020

Hello everyone! We've got some exciting updates for you. We've been working hard on improving the cube charts and tab pages and kept working on the stability of the Universal GUI. 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: Universal is currently actively tested on the internet browser Edge. Edge has been updated to use Chromium, which greatly changes the way it works under the hood. Once our testing is done, we can recommend Universal to be used on this browser as well. 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 charts We're continuing to improve the cube, this sprint we've added support for all chart types and constant lines. Here are some examples of the new charts: Stacked bar graphColumn graphDoughnut graphChart with a constant lineLine chartMultiseries line chartComplex graph with cumulated axesThe message when cube rows or columns are missing is now translatable. Signature control We have added a signature control, it looks like this: The signature control in actionTab page improvements We now only show the assigned details in each detail tab page container or detail tile rather than all visible detail in all detail tab pages. This makes the screen much more clean and quiet. When a detail goes into edit mode, its parent is now also locked. The unsaved changes indicator now also appears when a detail has unsaved changes. Details are now also updated if the parent becomes empty, for example by filtering. This is what tab pages look like now: Tab pagesUnit tests In the past three weeks we've added another 88 unit test cases to the components and inner workings of Universal. This brings us up to 1296 test cases in total. Lots of minor fixes/tasks Miscellaneous Added support for the 2020.2 platform Universal now loads applications in the order IAM prescribes Tree images now also work when the image is from a domain We now support the default expanded level for hierarchy and attribute trees UI/UX The text in the about dialog is now translatable. Fixed a bug where the chart didn't fill out the height nicely. Technical We fixed several fatal Unknown errors by changing how errors were generated and handled. When logging in or switching application, we now send a warmup request for the end product to Indicium. By doing this, data from the end product can be loaded faster when opening a subject. Added the unit tests for the charts. We did the groundwork for the tree menu Performance We no longer load tasks and reports on every tab page change What we'll be working on next sprint We're working towards a version with all essential features. For next sprint this means: Improve charts more Lookup popups Hierarchical menu Fix a few bugs Research and ground work for the pivot grid Research for process flows

Related products:Universal UI
Universal Development Update - December/January 2020

Universal Development Update - December/January 2020

Good day everyone. We're excited to start the new year off with some awesome additions to Universal. And to give you a small look under the hood, every few months we have a wildcard day. This means that we can work on anything we want for the day. These days often lead to very interesting projects, a few of which you'll find in this blog. 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: Universal isn't actively tested on the internet browser Edge at the moment. Edge will be updated to use Chromium, which greatly changes the way it works under the hood. Once this is done, we will be testing on Edge too. 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 Keyboard shortcuts (wildcard) We've added keyboard shortcuts to Universal. You can use them when you are working in the form. The following shortcuts have been implemented: Add: Ctrl + + Cancel: Esc Copy: Ctrl + alt + + Delete: Ctrl + - Edit: Ctrl + e Save: Ctrl + enter The shortcuts have been added to the tooltips in case you want a reminder: The shortcut is in the tooltip  Confirmation messages (wildcard) Since it's even easier to accidentally delete a record with shortcuts, we've also added confirmation messages. Translations for these confirmations will be added to the SF shortly. We have confirmation messages for deleting and cancelling. It looks like this:   A confirmation when deleting a record  A confirmation when cancelling a record that has been edited  Movable splitters (wildcard) At times you want a little more space for a component like the grid than the developer intended. In Universal you could make the screen smaller to activate a different breakpoint, but this doesn't always have the desired result. We now made the splitters movable so you can adjust the screen to your needs. Be aware that the adjustments you make to the screen are not saved for now. It looks like this: Movable splitters in action  Hierarchical tree We already had an attribute tree, and now we've also implemented the hierarchical tree. Here's a reminder about the difference between two: An attribute tree creates a level in the tree per column. So if you have table with employees, and sort on the column department. You'd get a node for each department, with all the employees in that department below it. A hierarchical tree creates a level for each relation. If you have the same table with employee, you'd group the data on manager_id. You'd get a node for each manager, with all the employees they manage below it. This is what the hierarchical tree looks like: The hierarchical tree  We also implemented images for and improved styling to both the hierarchical and the attribute trees.   Progress bar We've added a progress bar control to Universal. It's available in the grid, cardlist and form. It looks like this: The progress bar in the grid and form  Tabpages and details We now support all tabpages and details are now loaded directly into the tab, rather than just showing a button that allows you to open the detail in a new document. It looks like this: Tabpages with details loaded right into the screen  Note that we for now show all details in all tab, rather than just the detail assigned to the detail group. This will be implemented next.   Build onto Universal We added the option for developers to add functionality to Universal. You can add a website to the same subdomain as where Universal is running and load that via the preview component. This allows you to communicate with Indicium via a custom page that is loaded into Universal, it looks like this: Universal has been loaded into Universal, which in turn has been loaded into Universal again  Cube charts The first step for implementing cubes is showing simple graphs. We now support the following types of cube views: 1 or more data fields, no categories (rows) and no series (columns) 1 or more data fields, 1 category and no series 1 data field, 1 category and 1 series We do not support computations yet (e.g. year of a datetime field) Now to the awesome part, here's what charts look like: Charts in UniversalSync indicator We now indicate in the topbar when the GUI is processing updates to the form. This helps the user see that things might still change in the form (default and layouts for example): The sync indicator in the blue top bar  Unit tests In the past three weeks we've added another 43 unit test cases to the components and inner workings of Universal. This brings us up to 1208 test cases in total.   Lots of minor fixes/tasks   Miscellaneous Fixed several bugs that occurred when Universal tried to perform an action for a document that was already closed. GUID's no longer get sent with quotes around them   UI/UX Universal no longer briefly shows a message that The screen type cannot be found when first opening a screen. Fixed a bug where the sidebar would be open on small screen when loading Universal and would close when you tapped anywhere on the screen.   Technical Fix console bug that impeded development speed Added easy way to enable proxy, making it easier for us to debug any application Removed a lot of unused legacy code   What we'll be working on next sprint We're working towards a version with all essential features. For next sprint this means: Improve the charts Multi-language about dialog Ground work for the tree menu Tree component default expand level Performance improvements Stability improvements Signature control

Related products:Universal UI
Universal Development Update - November 2019 pt. II

Universal Development Update - November 2019 pt. II

Hello everyone. This sprint we've focused on laying a lot of ground work. While this is not immediately visible, it enables to do start working on a lot of features. 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: Universal isn't actively tested on the internet browser Edge at the moment. Edge will be updated to use Chromium, which greatly changes the way it works under the hood. Once this is done, we will be testing on Edge too. 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   Tree (Attribute-based) We've implemented the tree component. This version works for attribute-based trees, hierarchical trees (parent-child relations) will be implemented later. So what's the difference between the two? An attribute tree creates a level in the tree per column. So if you have table with employees, and sort on the column department. You'd get a node for each department, with all the employees in that department below it. A hierarchical tree creates a level for each relation. If you have the same table with employee, you'd group the data on manager_id. You'd get a node for each manager, with all the employees they manage below it. It looks like this: The tree component in action  The styling of the tree will be looked at next. Think icons, margins, conditional layouts etc.   Ground work This sprint we've been working on a lot of ground work. Ground work is perhaps the most important part of implementing new features, but it unfortunately isn't very visible. We still didn't want to keep this from you so you'll know what to expect soon.   Cube chart We're preparing to add cube charts. This sprint we've researched what information we'll need from the Thinkwise Platform and in what form to create charts. We also researched what components we might be able to use. We eventually came up with a shortlist and made Proof of Concepts for each.   Tiles menu We've created the underlying architecture to be able to create tiles menu. We now have the definition of tiles menu's available and prepared the current menu for the upcoming change.   Tab navigation in the screen We already have tab navigation on the root level of the screen, now we have the architecture to support any type of tab navigation. We have the structure of each tab available and store what each tab looks like. With this change we can start building any tab component, anywhere on the screen.   Details When we encounter a detail in a tab page, we now show a button to open it in a new document. We created the underlying architecture and state to show the actual detail itself.   Unit tests In the past three weeks we've added another 34 unit test cases to the components and inner workings of Universal. This brings us up to 1165 test cases in total.   Lots of minor fixes/tasks   Miscellaneous Added support for Thinkwise Platform 2020.1 The correct hour is now shown when DateTime values have high millisecond precision   UI/UX Fixed radio buttons misalignment Changed the label for the dark mode toggle in the User Preferences menu   Technical Refactored all actions to be type-safe   What we'll be working on next sprint We're working towards a version with all essential features. For next sprint this means building on the ground work we've laid in this sprint: Hierarchical tree component and styling the trees Figuring out how to fetch the data for cube views and loading the cube view definitions Showing details in the screen, rather than a button to open a new document Implementing all tabpages Creating a component that loads other web applications into Universal Testing and completing the work done on the wildcard day. More on this in the next blog

Related products:Universal UI
Universal Development Update - November 2019

Universal Development Update - November 2019

Hello everyone, these past three weeks we've put the finishing touches on tasks, started with reports, added canvas navigation, and more! As always, we've made a demo for you: try it here. 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: Universal isn't actively tested on the internet browser Edge at the moment. Edge will be updated to use Chromium, which greatly changes the way it works under the hood. Once this is done, we will be testing on Edge too. 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 Video control We've added a readonly video control so now you can watch video's in Universal. It looks like this: A video control in Universal  Canvas navigation Canvas navigation is about tab pages on the highest level of your screen (we call those canvasses). Now you can switch between canvasses. You can have component and detail canvasses, just like you're used to with tab pages. It looks like this: Canvas navigation in action  When you go into edit mode, the first canvas that has an editable component (i.e. a form) will automatically be activated. All other canvasses will be disabled when in edit mode. The first tab with a form gets activated when going into edit mode (all other tabs get disabled)You can control the visibility (regular, read only, hidden) of detail canvasses using context procedures. Detail canvasses for now contain a button that allows you to open the detail in a new document. The next step for canvasses would be to actually load the detail in the current screen. Tasks We've put the finishing touches on tasks. Now you can execute tasks from the menu, and you can get a confirmation popup when executing a task. A confirmation for a task that has been executed from the menu  Reports You can now execute and view reports. They work quite similarly to the way tasks work. This is what it looks like: A report being executed from the menu and viewed  User preferences We've created a user preferences screen. This is where all user preferences will be managed. For now we've moved the theme mode (dark/light) to this screen. You can find it here: User preferences in the topbar  And it looks like this: The user preference screen  We also made the topbar more responsive, on small screens the name of the logged in user moves to the overflow menu and the dropdown array disappears:   The topbar on small screens  Unit tests In the past three weeks we've added another 65 unit test cases to the components and inner workings of Universal. This brings us up to 1131 test cases in total. Lots of minor fixes/tasks   Miscellaneous Universal uses only the login options from config.json when the login options on the login screen are disabled. Technical Refactored where we store the current application and how it is used. This helps us implement tasks and reports executed from the menu. Upgraded our user interface toolkit, Material UI, from version 3 to version 4. Use context path for executing badges We no longer use the current application id when working in form fields What we'll be working on next sprint We're working towards a version with all essential features. For next sprint this means a lot of ground work: Creating the tree component (grouped on columns) Making the breadcrumb responsive Starting the ground work for charts Starting the ground work for non-canvas tabs Starting the ground work for showing the content of details in their tab, rather than a button to open the detail

Related products:Universal UI
End of SQL Server 2012, 2014 support

End of SQL Server 2012, 2014 support

Thinkwise Platform version 2020.1 will no longer officially support SQL Server 2012 and SQL Server 2014.The official minimum supported version of SQL Server will be 2016.Impact on development environmentsVersion 2020.1 of the Software Factory 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 Software Factory to version 2020.1 when the SQL Server version is below 2016 or the database compatibility of the Software Factory database is below SQL Server 2016.Impact on production environmentsThe Intelligent Application Manager, Indicium service tier and the GUI's will not immediately leverage SQL Server 2016 features with the upcoming 2020.1 release.Existing products will continue to work on SQL Server 2012 and SQL Server 2014 for now. New database versions of products built using the Software Factory 2020.1 will not require SQL Server version 2016, unless temporal tables are leveraged or version-specific language features are used in business logic.Future impact on production environmentsFuture versions of the Thinkwise Platform will eventually require SQL Server 2016 as minimum version for the Intelligent Application Manager and product databases. Future releases of the Indicium service tier and the GUI's will eventually cease to support SQL Server 2012 and SQL Server 2014 as well.Please plan the upgrades of SQL Server environments accordingly.TimingThinkwise Platform version 2020.1 is currently in the final stages of development and is planned to be released in January 2020.The changes in SQL Server version support will be reflected in the lifecycle policy.

Related products:Software Factory
Universal Development Update - October 2019 pt. II

Universal Development Update - October 2019 pt. II

Hello everyone. Rather than a trick let us give you a treat! The past few weeks we've been working on tasks, an image upload control (and a progress indicator in all upload controls), we've added an about popup to give you more information about which meta version and Universal version you're using. Of course, we also squashed a couple bugs and did some minor tasks. 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: Universal isn't actively tested on the internet browser Edge at the moment. Edge will be updated to use Chromium, which greatly changes the way it works under the hood. Once this is done, we will be testing on Edge too. 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   Tasks with parameters You already could execute tasks from Universal, as long as that task had no visible parameters. That restriction is gone, so you can execute tasks with parameters now. When you click a task with parameters, you get a popup that holds a form so you can fill those parameters in. It looks like this: A task with parametersWhen a task gets executed we might need to wait for it to finish. This is visualized like so: A task is executingImage upload control After the file upload control we now also have an image upload control. It's similar to the file upload control, but shows a preview of the image and by default only allows you to upload images. It looks like this:   Image upload controlFile upload control with progress When we implemented the file upload control, we thought it would be awesome to show the upload progress in the control itself. This became a side project which now has been implemented in Universal. The image upload control also shows progress. It looks like this: File upload control with progress  About popup It can be useful to know exactly what SF version you're running. It's even more useful to know which version of the Universal GUI you're running (since it changes more often). We've implemented an about popup to show you exactly that. It looks like this: The about popup  You can find the about popup in the profile menu (we know it has no translation yet): Where to find the about popupUnit 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 1066 test cases in total. This is less than what we started with because we removed 70 test cases by removing the old non-responsive implementation of the action bar which wasn't in use anymore. That implementation had its own tests, which were removed too. Lots of minor fixes/tasks   Miscellaneous We now show the user's first name in the top bar rather than the user id (if the first name is filled in) The login button now gets disabled after submitting the form to prevent double logins Performance Fixed duplicate requests for prefilters Set page size to 100 rather than 1000 Technical Removed the old action bar code Save context path into state Use context path for adding and copying records Execute layouts and context using a navigation path What we'll be working on next sprint We're working towards a version with all essential features. For next sprint this means: Upgrading material UI Single-level canvas navigation (top-level tab pages) Finishing up tasks (starting tasks from menu, confirmation message) Start on reports A lot of behind-the-scenes technical work to prepare for coming features

Related products:Universal UI

[Breaking] Crystal Reports Service Pack 21+

Context About two years ago, Service Pack 21 of Crystal Reports was released. This new service pack required applications such as the Windows GUI to update to a new version of Crystal Reports. Furthermore, the required .NET Framework version for this Service Pack was updated to to 4.7.1. Updating to the new version would mean that the previous service pack would no longer be supported and older .NET Framework versions would no longer be supported. To keep supporting the status quo, we set the maximum supported version of Crystal Reports to Service Pack 20. Since only one version of Crystal Reports can be installed on a client machine, this meant all other applications using Crystal Reports were also limited to Service Pack 20 or earlier. Breaking change We will be upgrading the following Thinkwise Platform components to only support Service Pack 21+ of Crystal Reports: Windows GUI Web GUI Indicium Indicium Universal Reporting Service The required .NET Framework version for these components has already been updated to match the Crystal Reports Service Pack 21+ requirements, with releases dating back to december 2018. Timing The new versions of these applications which become available around November 18th, 2019. The changelog will clearly indicate this breaking change. Impact Web servers and desktop environments using Crystal Reports Service Pack 20 or earlier will have to be upgraded to Service Pack 21 or higher. This will have to be done in concert with the upgrade of the Thinkwise Platform component(s) running in this environment. Continued usage of the Thinkwise Platform component(s) supporting Service Pack 20 and earlier after the Crystal Reports upgrade to Service Pack 21+ may result in failure to execute reports using Crystal Reports. Environments using Crystal Reports Service Pack 20 or earlier that will not be upgraded can no longer receive updates of Thinkwise Platform components. Doing so may result in failure to execute reports using Crystal Reports. The Intelligent Application Manager uses Crystal Reports. Environments used to run this report will need to be upgraded. Update: As mentioned in the comments - Crystal Reports Service Pack 26+ introduced a new incompatible change. This means that the Thinkwise Platform does not support service pack 26+ until further notice.

Related products:Windows GUIIndicium Service Tier