News and blogs on our products, services, and events
Recently active
One of the main goals for the Thinkwise Platform is to enable developers to focus on the functional aspects of software development instead of the technical aspects. To allow developers to leverage machine learning with minimal technical hurdles, we've added AutoML to the Thinkwise Platform in version 2020.2! Machine learning Machine learning combines software engineering with the field of mathematics and statistics to create algorithms that can learn from experience. To apply this in the field, data scientists use domain knowledge to apply these algorithms to create machine learning models that can make estimates and predictions based on the knowledge gained from experience. In applications built with the Thinkwise Platform, experience is often existing historical data. Machine Learning techniques in these applications are often leveraged for calculations that are difficult or impossible to express with regular code. Some examples include: Demand predictions over time Project cos
Most of us probably have been in the situation where you wrote a time-consuming SQL stored procedure for a task or designed a report that takes a long time to create, knowing that your users will have to wait until everything is done before they can continue working in the GUI. The same goes for tasks or reports that are executed on multiple rows at once. Waiting for an hourglass to stop spinning is very boring so users will lose their patience and look for alternative ways to finish their work. You can put a progress dialog on it showing the users how long they will need to wait. But what if a task will take minutes or even hours? Maybe we would start multiple GUIs at once to split the work that needs to be done and visit the blocked GUI occasionally to watch the progress. We could lose some valuable time here not knowing exactly when the time-consuming action will finish exactly. How cool would it be when the user could simply continue their work after starting their action, and st
The Thinkwise Platform has powerful functionality to connect to external applications using OAuth. Customers often use external applications, for example a payment system. In that case they often want to import the data to the Thinkwise database, as the external system is their single source of truth. We can use the Thinkwise Platform to synchronize this data. With the support of system flows we can even automate this to automatically collect the latest data.In this blog I will use Exact Online as the external application to synchronize the projects from Exact to a database.Creating the data modelI made a very simple model for demo purposes. As a developer you can extract a lot more data from the API.The data model contains two tables, the oauth_token_info table to save the OAuth access and refresh tokens. The project table contains the information we will extract from the Exact Online API.Data modelApp RegistrationTo call the API first we need to register an application in Exact Onlin
IntroductionSince the release of version 2020.1 of the Thinkwise platform, the combination of Indicium and IAM forms a full-fledged authentication provider that implements the OpenID Connect protocol. This means that third party applications can authenticate their users through the Thinkwise platform. Starting with the next release of Indicium Universal (2020.2.9), the Thinkwise platform also supports authenticating its users through third party authentication providers that support OpenID Connect. This makes it possible to authenticate users through Azure Active Directory, Google, GitHub, Facebook and many other authentication providers.What is OpenID ConnectOpenID Connect is an industry standard protocol that allows for applications to delegate the authentication of users to a so-called Identity Provider. Common examples of Identity Providers are Microsoft, Google and Facebook. Whenever you see that button “Sign in with Google” on a website or an app on your smartphone, it means that
A lesser-known feature of Indicium is its capability to automatically log to Azure Application Insights. This service can be used for monitoring Indicium live. You can, for example, inspect failed requests, monitor response times, or investigate exceptions.Read the example below to learn how Azure Application Insights can help you in the development process. Especially when you don't have direct access to Indicium's error logs, having such logging capabilities is extremely useful. But even when you have direct access to the log files, the extra features offered by Azure Application Insights make it worth enabling it. Setting up Azure Application InsightsThis feature is enabled by default, but to use it, you need a paid Azure account with Application Insights enabled as a resource.Once you have everything set up in Azure, the next step is to find your Application Insights instrumentation key and add it to Indicium's appsettings.json.Instrumentation key"ApplicationInsights": { "Instrumen
Too few developers create their own custom validations and solely rely on the default validations offered by the Software Factory. Though this default validation set is already great for higher quality, there is always room for improvement, especially in certain situations.Developers tend not to make custom validations for several reasons:The functionality is unknown Development itself has more priority Validations are not being used at all Developers think creating a validation is difficultTo stimulate the use of custom validations, we created a video in which we show an example. We hope this motivates you to create your own validations. Create a custom Validation in the Thinkwise Software Factory
The release notes have been moved to a new area: Product updates.Don't forget to subscribe there!
At Thinkwise, we strive to make development and maintenance of enterprise applications as easy as possible. But in the end, an operational application will have a lot of moving parts. Performance troubleshooting comes down to identifying and resolving a problem in one of those many moving parts.Unfortunately, most of the time it ends up in a witch hunt. Kick in every virtual door to find out what causes the curse. This makes performance troubleshooting very time- and resource intensive. Today, I’ll share a very focused approach to resolve performance issues.The title of this blog might as well be: How to avoid the red herrings! Performance troubleshooting processThere are many ways to approach performance troubleshooting. This blog uses a certain script that can be used and adapted for your own needs. The script assumes a single, agile development team working on an application.The script for performance troubleshootingI’ll go into detail for all the steps, but I’d like to start off wi
Your input and feedback are incredibly valuable to us. That is why we devote a significant part of our capacity to implementing the great ideas posted and voted on by our amazing community. But how many of your ideas are actually being taken up?In this post we want to give you some insight into the number of ideas and votes that we have investigated, worked on, and delivered in 2021.Quick statistics for ideasSome figures about the ideas and votes in 2021:61 ideas delivered 🚀 252 new ideas created 💡 563 votes delivered 🚛 2029 votes added 💗Since the start of the Thinkwise community in 2019, we have managed to deliver no less than 23% of all votes cast! And this percentage is still steadily increasing, as the great ideas keep coming in.So once again, a big thank you to everyone in the Thinkwise Community who shares ideas and votes for other customer ideas. We greatly appreciate the insights and feedback you give us about our platform.Thinkwise Community dashboardIdeas we deliveredThes
Update - jan-27The problem has been resolved.All new installations of the Thinkwise Platform will once again deploy properly on Azure databases.Platform upgrades from 2020.2 and up have been adjusted to not re-introduce the conflicting data type.Existing installations up until 2020.2 have a service fix available that will phase out the json user-defined data type.------------------------------------- An undocumented (or unintended) changeSomewhere around the start of this year, Azure has introduced a change to the managed SQL Server databases regarding user-defined data types. The change did not affect any existing databases but prevents deploying any databases which use a user-defined type named json as an Azure SQL Server database.The change has occurred overnight and we have yet to trace it back to a specific Azure Database update. So far, we have not been able to find any documentation regarding this change either. No versions of on-premise SQL Server databases seem to be affected
Hi everyone,We previously explained how the Thinkwise Platform version 2021.3 revised the way creation and automation works.In the Thinkwise Platform version 2022.1, we also revised the way the Synchronization to IAM (Intelligent Application Manager) and Deployment package screens work, allowing for seamless integration in CI/CD tools that many have been waiting for.The Synchronization and Deployment processes are the final two processes that now have been made to fully run via Indicium and therefore can be initialized via Indicium's API. More on that later in this blog.In the previous version, the steps in these screens were bound to a specific client. A developer would start to Synchronize to IAM and the synchronization would be orchestrated start-to-end by the user’s client. This also applies for the Deployment package process. This has served us well for many years, but there are some drawbacks that we’ve addressed in this release. The new approachAll ‘jobs’ are no longer performed
The Thinkwise Platform supports various types of report generation solutions. The choice for a certain type of reporting has functional implications. For instance, not all reporting solutions support the usage of sub-reports. Other reporting solutions may offer more features regarding the use of SVG images or HTML markup.There are also non-functional aspects to consider. License costs is often noted. Another important aspect is the portability of the reports. Not every type of report can run on both Windows and Linux environments.Quite some research has gone into the portability of the usage of Crystal Reports lately. We’d like to share some of our findings in this blog.Runtime installationAdministrators who have deployed applications using Crystal Reports know that it requires the installation of the Crystal Reports runtime. Either on the desktop clients when the Windows GUI is used or on the web server when the reports are generated by Indicium, the Application Tier, or the Web GUI.A
You have probably heard about the critical vulnerability found in the Apache Log4j library in the past few days, which is used by millions of Java applications for logging error messages. This vulnerability, CVE-2021-44228, is a Remote Code Execution (RCE) vulnerability that allows attackers to gain full access to a system.The Thinkwise platform does not use Java and is therefore not subject to this vulnerability.Thinkwise does advise its customers to check whether other applications or services use the affected library and to take appropriate steps to prevent abuse.At Thinkwise, we closely monitor the security of all third party libraries and components used in our platform, and notify our customers if any vulnerabilities are reported.
Written by Erik Brink/Diana Kuipers New developments require new knowledge and skillsets for Software Factory developers. For example, Thinkwise is constantly improving the process of troubleshooting unexpected behavior of our tooling.Since more and more organizations are using the Universal GUI, we would like to tell you more about the best practices in troubleshooting the Universal GUI in our 3-tier environment. So, in this blog, we will teach you about the tools that can help you solve possible problems in the logic executed by the Universal GUI's backend and its interaction with the Indicium data/service layer. The following tools and log files are available to support you:Extensive information on the tools and logs mentioned below is available in the Thinkwise Docs, chapter Tools for troubleshooting Universal GUI. The same manual also contains more information on Troubleshooting Universal GUI deployment.DevTools: the Universal GUI is a web application. Therefore, you can use the
Hi everyone,For the 2021.3 release, the complete Creation process has been overhauled to be fully run by Indicium. There was one other feature on the backlog that was very valuable to the Generate definition process, and now was the perfect time to implement it. When generating, all generated program objects would be dropped and re-created by the control procedures. This process costs performance and IO. It would be smarter if objects were not simply dropped and re-created, but instead created/changed/dropped only when that truly applies. StrategiesTo improve the Generate definition process, several generation strategies have been implemented. A Strategy is a defined way of how the Software Factory should generate the control procedure. For every strategy there can be reasons to choose one over the other, but it is recommended to use the Staged strategy due to all its performance benefits. Read on to see how to implement these new strategies. The following strategies are now available
The low-code market has developed quickly in recent years. Current events have put pressure on IT leaders to dramatically increase application delivery speed, even more than before. The COVID crisis has certainly demonstrated that the constant continued development of software is crucial.Want to know how you can improve the agility of your business and adapt quickly to changing circumstances and market opportunities using a low-code platform? Discover how Thinkwise enables you to modernize large, business-critical applications, with extremely high speed of development and flexibility, during our first Low-Code Summit on 13 October 2021.Time: 09:00 to 15:00 CEST Location: Online Admission: free of chargeSign Up NowWho should attend?Those new to low-code and looking to learn more about enterprise low-code for mission-critical systems (what is and how to get started). Business Executives: Hear directly from other business leaders on their approaches to adopting low-code for core systems f
In our previous blog, we discussed why we came to the conclusion that translating natural language into a formal language is the best approach for us to create linguistic interfaces for Thinkwise applications. It was mentioned that an existing project called Genie follows this approach and we decided to build a prototype to test whether or not Genie is the best framework for us. The purpose of this blog is to share our story about how we built our first prototype using the Insights demo application. The prototype is available at (https://nlpdemo.thinkwise.app/)To make it more formal, for our prototype we need to construct a neural semantic parser from the Insights data model using Genie.A semantic parser is basically a tool that can translate from natural language into a machine-understandable form. In our case, this will be a translation to the ThingTalk Virtual Assistant Programming Language (VAPL). The term neural refers to the fact that the generated semantic parser is a large neur
Delivering value for the business is what drives software development. Stakeholders are mostly interested in the functional aspects of our applications when it comes to delivering this value.However, non-functional aspects are just as important. Quality aspects described in ISO/IEC 25010 provide a great starting point for identifying which non-functional aspects are important to your business. The application may fail to meet the demands or could harm the business if these aspects are not considered.The Thinkwise Platform allows developers to quickly build enterprise applications. In doing so, the Thinkwise Platform not only allows the developer to rapidly deliver functionality but also offloads many of the non-functional concerns to the platform. As an illustration of this, the way in which the entire platform is designed to allow applications to survive technological changes comes with an intrinsic boost to portability. The model-driven development approach of the Software Factory I
In a recent Community platform update from Insided, the way URL's are constructed has changed. In a reaction Insided said the following: The URL’s of ideas were inconsistent to other content types, so we changed them to be consistent (this was required for conversions to work).If a user has copied an idea URL before April 19, then this URL is not going to work anymore. The URLs are not going to change in the future, so whenever a user copies an idea link from the Community now, they will always see the correct topic.We apologise for the inconvenience
In part one of this case we’ve outlined the general case and implemented several of the CRUD functionalities as well as response paginations.If you have missed part one, you can find it here:Case: A message protocol-independent web service (part 1 of 2)The final two endpointsWe now continue with the final two endpoints and we’ll test the service in part two.The final two endpoints are:Select license by applicationCode and productCode Select applications with an active license for accessSelect license by applicationCode and productCodeThis endpoint allows the caller to load a license based on an applicationCode and productCode.The swagger example call to load the license based on an application code and product codeNote that the applicationCode and productCode are mandatory and are placed as path segments, whereas additional filters are optional and are set as query parameters.Furthermore, the entire endpoint resides under a /check/ path. The routing logic has taken care of this by ensu
TL;DRThinkwise is ahead of the curve in terms of ridding the world of legacy software, and to keep it that way we have to look ahead. Right now, the Software Factory has the opportunity of becoming one of the first business software development platforms to offer interfaces working with speech or written text (linguistic interfaces). We believe that with state of the art methods, we will to be able to offer high quality linguistic interfaces to all applications made with the Software Factory, without much hassle.No extra modeling or development will be necessary to get started, though it will be possible to improve baseline systems. These baseline interfaces will be generable from existing applications' models and some examples from their databases. All this can be done while allowing customers to keep full control over their data. From there on out the system can improve based on user interactions. Our goal is to ship, in just a few releases, the ability to generate high quality lingu
E-learning Thinkwise PlatformWhen you want to become acquainted and learn how to work with our platform, then of course you want to start as soon as possible! We completely understand this, and this is why Thinkwise has developed a state-of-the-art e-learning program. This e-learning gives you the opportunity to gain a solid basic understanding of our platform. It also prepares you for the examinations that lead to the highly sought after Thinkwise Associate Certification.The number of users of the Thinkwise platform is growing fast, both internationally and nationally. And to gain the maximum benefit from the Thinkwise platform, it is obviously important to train yourself in its use. Thinkwise has therefore developed a state-of-the-art e-learning program that ensures that you can acquire this knowledge anywhere and at anytime. This English language e-learning program has been developed by the Thinkwise Academy, working in close cooperation with both the R&D department and our own
Indicium provides APIs for all kinds of back-end services, such as entities, tasks, reports and process flows. These APIs use the OData protocol.However, there are scenarios where integration in the application landscape requires applications built using the Thinkwise Platform to expose an API using a different protocol.Think of a SOAP service with a WSDL or a REST service which doesn’t conform to OData protocol. This can be an endpoint for a message bus or a high-level composite service to integrate in the landscape.Message protocol independent web servicesIn version 2021.1 of the Software Factory, Message protocol independent web services in a process flows were introduced to support this.This feature allows you to create entirely custom APIs, receive and process the HTTP requests on the database, and set the HTTP response as well.Note: These type of webservices provide a lot of freedom and flexibility. However, matters normally handled by Indicium such as routing, request/response p
Hello everyone, This week we like to share some tips & tricks on how to submit a support ticket.When you start developing your own application with the Thinkwise Platform, there is documentation and the community to learn everything you need to know. When the platform software isn’t working as it should, you can submit a ticket. The fastest way to get your support tickets resolved is to provide us with as much detail as possible. Besides product and version information you must include the steps to reproduce the issue. We cannot help you with bugs we cannot reproduce.In addition, you can use screen recording to demonstrate the problem and add a video to the Support Ticket. Here are a few suggestions to help you out: Screen recording in Windows 10Press your Windows Logo key + Alt + R to start recording. (This feature is part of the Xbox Game Bar function, Windows Logo key + G)You can also use MS PowerPoint. Here's how... Screen recording on your Android deviceDepending on you brand
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.