News and blogs on our products, services, and events
Recently active
Dear Thinkwise Relation, First, I wish you and your loved ones good health in this very unusual and difficult time. In order to protect our employees and relations against contamination with the Coronavirus, Thinkwise has taken several measures that are in line with the recommendations made by the government. This means that: Work in our office buildings is being limited; Employees are working from home as much as possible using online tools and telephone; Our projects will continue as usual; Support is still readily available. Thank you very much for your understanding and cooperation. Moller Toma (community manager)
Have you ever had a system slow down and everybody waiting for you to fix it? Or wondered what happened in the database an hour ago? Or been curious what impact a change in your query had to the speed of execution? Or been confused about how to best monitor database performance? Let's talk about a way to answer the above questions using the Query Store that is being provided in SQL Server since SQL Server 2016. This is not going to be an in-depth view of all the features of the query store but merely to make you aware it exists, the way I use it and some of the key benefits. If you are looking for a detailed analysis of the complete feature set, please refer to the Microsoft documentation. First thing we need to do is enable the query store, fortunately, this is very easy. Navigate to database properties Select ‘query store’ on the left hand panel Set the operation mode of the query store to 'Read Write' Click OK Hit refresh on your database in the Object Explorer Verify there is an ex
Thinkwise Platform 2019.2 will ship with a new feature to aid independent software vendors in releasing applications using a module-based licensing model. A module is a bundle of functionality that can be released separately from other modules. They can be large such as HR, Purchasing or Production. Alternatively, they can be smaller modules with only a few tasks such as Promotions. Modules can also be add-ons to existing modules such as Purchasing analytics. There are no constraints imposed by the Software Factory when it comes to the size of a module or dependencies between modules. What defines a module? One of the major decisions we had to make was on how to limit the application based on a set of selected modules. We could limit the database objects to those relevant to the selected modules. But this strategy has some caveats: Developers would have to tag the module(s) for every single database object. Dependencies in the logic layer to objects of modules will cause confli
About a year ago we added SVG support to the Windows and Web GUIs. SVG images have the advantage that they can be scaled better than bitmap images and that it is easier to adjust, for example, the color of (parts of) an image. This is used extensively by the Universal GUI to match the color of icons to the chosen light or dark theme.Colored iconsWith the latest 2019.2 release of the Windows and Web GUIs, this feature has also been added to these GUIs.The Windows and Web GUI will now adjust the color of SVG icons to the theme color of the corresponding label, making it no longer necessary to add the same icon in different colors to the model. This was often done for tile menus or detail tiles, which usually use a dark tile color with light icons.SVG icons use the same color as their labelAdjusting the color is done automatically for elements in SVG images that have a fill style but no color set, or where the color is set to black (#000000).(And yes, we can do that, because it's never a
In my previous blog I showed you how you can create a neural network to predict the hardenability of steel. This was done with the help of R and Keras. I also showed you how R functionality can be integrated in SQL templates. This time I will cover the subject of forecasting and how this can be done using R. Since integrating R code in SQL templates always follows the same procedure, I will not be covering that subject again in this blog. The main goal here is to show you some of the possibilities R has to offer regarding forecasting. I will show you how to prepare a dataset, fit different types of models to your data, using those models to forecast, visualize your results, and calculate evaluation metrics. ForecastingForecasting is a method of predicting the future based on past data. For example, company X has kept track of all sales orders of product Y for the last 2 years and wants to predict next month's demand for Y. A simple method that company X can use is to sum up demand p
As some of you may have already noticed by looking at the Thinkwise products in TCP, we have recently decided to split Indicium up into two separate products. In this blog post I will give a short explanation of our reasoning and what this change means for you. Why did we split Indicium up into two products? The new Indicium product in TCP is called Indicium Universal. The name already implies that this version of Indicium is meant for our new Universal GUI, which is currently in development. The reason that the Universal GUI requires a different version of Indicium than our existing GUIs has to do with the new three-tier architecture that we envision and our goals regarding security and scalability. We do not want to compromise on our goals and ambitions for the next generation of the Thinkwise suite for the sake of keeping Indicium compatible with both the Universal GUI and our existing GUIs. At the same time, we also do not want to waste valuable development time on conceivin
You've got to catch them all! 🚀 Badges that can be earned in the subforum Ideas. Badges that can be earned in the subforum Installation. Badges that can be earned in the subforum Development.
When developing software, a certain level of quality is expected in order for the final product to be accepted. Unit testing is an important part of the process to ensure that the software lives up to that standard of quality. Unit testing focuses on taking the smallest testable parts of software and matching the actual results of that unit against the expected results for a given input. With the 2019.1 release of the Software Factory we have taken steps to automate this process. Unit testing has always been possible, but up until now involved a manual process. Developers had to manually define the test, execute it and compare results. With unit testing in the Software Factory we’ve aimed to make this process efficient, reusable, and easy to implement in new and existing projects. Logic conceptsAs mentioned in the intro, a unit is the smallest testable part of the software. The logic concepts in the Software Factory are an ideal candidate for this. They consist of small pieces
In last week's blog post we described how we moved the roles from IAM to the Software Factory. Eventually the model, including its roles and rights, must end up in IAM. This blog post addresses that, parallel to moving the roles, synchronization to IAM has now also been moved to the Software Factory. Just like database creation, synchronizing is part of the deployment process, which also belongs in the Software Factory. For this purpose, two new screens have been added under the Deployment menu group. Synchronization to IAM Just like in IAM, there are two options when synchronizing: directly to IAM, or by writing a file to disk. When executing these tasks, first a number of checks take place. For example, a check if the project version is validated completely. This way we can determine how many unsolved information messages, warnings and errors are present. These numbers will be displayed in the confirmation message before synchronizing. After the checks have taken pla
Hello everyone! Lately I get asked a lot which project I am currently working on at our Product Innovation department. I tell them I am working on moving the roles out of our Intelligent Application Manager (IAM) into the Software Factory. Most of the times they nod slowly and say “Right!”. Let me begin by clarifying that by saying roles, I actually mean the configuration of roles and their corresponding model rights. However, you can imagine that some extra explanation is still required. Roles are already an important working part of IAM. Why would we want to move them to the Software Factory? It is mainly because of the importance of these roles that we have decided to move them. We consider them as an important part of the model, which is the domain of the developer. Since the model belongs in the Software Factory, why not also the corresponding role rights? In our opinion moving the roles to the Software Factory is the next logical step to take the concept of Role Based Access Cont
With the arrival of SQL Server 2016 Microsoft added the R Services add-on, which enables the execution of R scripts directly from T-SQL. Starting with SQL Server 2017, R Services was renamed to machine learning services to reflect the fact that Python is now supported as well. Both languages are highly popular in data science and machine learning. Python is an easy to learn general purpose language, while R was developed mainly for statisticians. Although there is a large amount of overlap between the languages, people with a background in statistics seem to prefer R over Python. On the other hand people new to programming or without a sufficient background in statistics prefer Python because of it's easy to learn syntax. Personally I think it is more a matter of choosing the right tool for the job. I would use Python for creating complex deep learning models and use R to analyze the results afterwards. In this blog I will show you that it is actually possible to do both using R
With the upcoming 2017.1 release of the Thinkwise Suite, we have greatly increased the capabilities of process flows, including the addition of many frequently requested features. Stateful process flows and runtime configurable process actionsThe most frequently requested features for process flows relied on two distinct capabilities which, until now, had been absent from process flows. The first capability is to persist information produced by a process action throughout the entire process flow (stateful process flows). The second capability is to configure process actions at runtime to perform their corresponding action with a certain context (runtime configurable process actions). To illustrate the above, the Go to row process action, which is arguably the most requested feature, typically relies on both capabilities. A conceivable use case would be to have a process action that performs a task which inserts a record in the database, followed by a Go to row process action that
When we were young we all wanted to be a superhero, now it's our chance to become one! We believe that every member of the Thinkwise Community has the potential to become a superhero who saves the day. If you're a new member of the community, you're still a rookie, but that's no problem, right? It's your time to show the world your skills, and when you do, you choose the path of greatness and start your journey from apprentice to superhero. Superheroes are not afraid to ask questions or enter into discussions and to become a sidekick of a superhero, you also need to develop this skill. Your proactive attitude is appreciated within the community, make sure you give this appreciation to others as well, but remember a vanguard is a group of people leading the way in new developments or ideas, so make sure you do that, because that's your opportunity to become a warrior. A warrior never shy away from a challenge and beats every challenge our community faces. The more challenges the
This product roadmap provides an overview of the planned developments for the Thinkwise Platform in 2019. It highlights the main themes we are committed to and describes several projects related to these themes.The input from the Thinkwise community has been essential for the creation of this roadmap. Submitting your ideas and voting on ideas in the new Thinkwise Community will play an important role here, to gather and determine the value of new ideas. In addition, we closely monitor developments in the market, provide technology updates, conduct research into new technologies and innovations, and validate the roadmap with customers, Forrester and Gartner.This roadmap is not a comprehensive list of all new features but is intended to provide some visibility into our key investments. The mentioned feature sets and timeframes are current at the time of writing and subject to change. ThemesIn the past year, we have taken a slightly different direction at Thinkwise. Besides doing transfor
For as long as I can remember people have been expressing their wish for this new feature. If they could somehow quickly gauge whether or not they should open a tab page somewhere in their application to see if there’s data in there… wouldn’t that be great? With the increasing adoption of smartphones and mobile apps for businesses this need is becoming more manifest. This is why I’m excited to announce that such a feature is now an integral part of the Software Factory, as of version Pyxis – G9.8. Welcome to Badges! There’s this paradoxical thing about badges to me. They seem like such a small addition, but after I learned to identify them, they suddenly popped up everywhere, like little pixies: New private messages and pull requests on Slack There are two unread emails There’s an update for an installed app on an iPhone Visual Studio 2015 has three Extension and Product Updates If you’re wondering what tab page in your browser loaded an ad which just shattered your eardrum
For a long time we have offered features outside of our standard range as extenders; small files containing custom code that configure a range of properties which allow the use of an otherwise unavailable feature, such as the maps component or the resource scheduler. This was a great way to integrate new (and sometimes experimental) components, but it also introduced a lot of overhead and decreased maintainability of the GUI. Every little change to the extender meant changing the code, compiling it into a dll, and deploying it. Furthermore, changes to our codebase that impacted a certain extender meant going through the extenders for every customer and checking for errors. To address these issues we decided to create a way to model the extenders in the Software Factory. While it's still not a full integration of these features into the Software Factory it creates an easily accessible and maintainable way to implement the current set of extenders into your products. It also provides
With the upcoming release of 2019.1, we are discontinuing support for generating Java and C# service tiers. The Windows GUI will no longer be able to use these service tiers as a back-end. This blog describes the reasoning behind this and the (better) alternatives that are available. It is important to note that the generated SOAP service tiers have done a great job in advancing the Thinkwise Platform. At the time when these service tiers were released, they were state-of-the-art and solved some important challenges. Many applications have used these service tiers in production environments. But like any technology, it must eventually yield to a successor. The true power of the Thinkwise Platform lies in the fact that a technology switch like this can actually be made. Why get rid of them?The main reason to use the generated Java and C# service tiers was to support Mobile. Mobile GUI’s cannot directly connect to the database and needed the service tiers as proxy. Version 2017.
The Thinkwise Platform ensures that our customers do not have to worry about technological obsolescence of their applications. By separating model and technology, combined with our advanced runtime interpretation technology, we are able to update or replace technologies with minimal impact on existing applications. In order to adopt new technologies, however, it is sometimes necessary to drop support for older technologies.Such a moment has come with the upcoming release of version 2018.3 of the Thinkwise Platform. With this release, we stop supporting SQL Server version 2008R2 and lower, and require the .NET Framework 4.7 for the user interfaces and the Indicium application tier. By requiring SQL Server 2012 or higher we can use all kinds of cool “new” features regarding storage, SQL, performance, security, and more. By switching to .NET 4.7 we can, for example, use the latest Transport Layer Security protocols and improve high density display support.Thinkwise Lifecycle PolicyOur val
SQL Server 2012In case you missed part 1 of the new features. Window function framesThis feature is a really cool enhancement to window functions which fills a niche gap for queries of a cumulative nature. A window function can be applied on a limited set in regards to the partitioning, the ordering and the current row. Other language featuresThe parse function has also been added which can be used to parse data using culture-specific settings. The try_parse function will provide null-values when this fails instead of causing an error. New functions such as datefromparts, timefromparts make it very easy to create a date or time object by providing years, months, days, minutes, etc. instead of a date or time string The eomonth function provides you with the last day of the month based on a date in this month. It is possible to provide an extra parameter which SQL Server 2014SQL Server 2014 brought a lot of new cool features and performance to the table, but the
While SQL Server 2008r2 is currently the minimum version for SF and IAM, products created using the SF can use any version (up to 2017 at the time of writing). In this blog, I’d like to share some of the introduced language features in versions 2012 up to 2017 and explain how you can use them in your products. This blog focuses only on Transact-SQL syntax features you can use in your own application logic. Features such as new database management functions, new data types, new types of database objects or optimization features will be saved for another time. SQL Server 2012Eventually we will set the minimal version of SQL Server to SQL Server 2012. This provides us with the opportunity to use language features introduced in SQL Server 2012 in the Software Factory, the Intelligent Application Manager and in Indicium and the GUI’s when accessing the databases. The following features are discussed: FETCH OFFSET THROW TRY_CONVERT IIF CHOOSE CONCAT LEAD and LAG, FIRST_VALUE
Previously, you always had to have a form component on your screen to be able to add new rows. This is no longer necessary, because the grid now also supports adding new rows. This feature is released with version 2018.2 of the Thinkwise Platform (Windows GUI only). What’s new?When adding new rows is enabled for a grid, an empty ‘add row’ is displayed at the top of the grid. Be aware that only the values of columns that are visible in the grid can be filled in. The ‘add row’ is positioned directly under the grid column header, so it is clear which input field belongs to which column. It is also possible to only show the ‘add row’ while adding or copying. This can be configured in the Software Factory. A new row can be created by clicking on a cell of the ‘add row’ or on the ‘Add’ (Ctrl+Plus) or ‘Copy’ (Ctrl+Alt+Plus) buttons in the ribbon. If the screen type has both a grid and a form, make sure the grid has the focus! After filling in the mandatory values for the new row, it can b
The icons you use in your applications for tables, prefilters, tasks and reports often show up in multiple locations in the application, like the menu, tab pages, the ribbon, button bars and the context menu. These locations require different icon sizes, and the user interfaces would scale the supported Bitmap (.bmp) or Portable Network Graphics (.png) icons to the required size. This, however, causes the icons to become blurred. With the latest release of the users interfaces we’ve added support for two new image formats to solve this problem. Scalable Vector GraphicsScalable Vector Graphics (.svg) are images based on vectors instead of pixels, allowing them to be scaled to any size without getting blurry. Another advantage of SVGs is that, because SVGs are XML-based, it is easy to adjust the properties of the image. In the Universal GUI, for example, we will be able to adjust the color of an icon to the background, so that it will always be clearly visible. This is also why
With the introduction of Europe’s General Data Protection Regulation, it is more important than ever for companies that their IT environment is secure and meets the legal requirements for privacy protection. To help our customers comply with this new legislation, we added a new feature “Data sensitivity” to the Thinkwise Platform to automate the anonymization of personal data in any Thinkwise application. This feature can not only be used for personal data, but also for other sensitive data like passwords or credit card numbers. With this new feature, we enable you to set the sensitivity for each data column of your application in the “Data sensitivity” modeler. View-columns, calculated fields, and identity fields are not data columns and therefore are not shown. A prefilter is provided to suggest which columns are sensitive, based on keywords or because columns with the same name or domain are also marked sensitive. For sensitive columns, it is mandatory to select an anonymi
Starting from version 2018.2, the Mobile GUI is equipped with one of the most requested features: barcode scanning. This cool new feature allows you to fill in fields by scanning a barcode or QR code with the camera of your mobile device! How does it work?To enable this feature, set the Control of the field you want to fill to “Barcode scanner (mobile)”. The field can have any datatype, but will be displayed as a text field with a scan button in it. When you click the button, the camera is opened with an overlay indicating the scan area. Once the barcode scanner recognises a barcode or QR code inside the scan area, the encoded number or text will be instantly inserted in the barcode field. TechnologyThe barcode scanner control uses the Phonegap Barcode Scanner plugin: https://github.com/phonegap/phonegap-plugin-barcodescannerThe following barcode types are currently supported: External barcode scannersA couple of Thinkwise customers already use external barcode scanners. Th
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.