Mendix Studio pro
9.18.0
Stable
September 30, 2022
Mendix Studio Pro is our low-code IDE for professional developers. It's a powerful visual model-driven development environment to build apps on the Mendix Platform. With Studio Pro you can easily create, change, integrate, test and deploy your applications, all in one place. Moreover, you can manage branch lines and security as well as extend your app with custom code using the built-in editors.
Click 'Download Studio Pro' to get the installer for free (Windows OS required*). Learn more about the installation and the Studio Pro capabilities in our documentation.
Not a professional developer? Learn How Mendix supports different developer profiles
.Before installing, please read the Release Notes to learn about improvements, bug fixes, backwards compatibility, breaking changes and known issues.
*If you are using a Mac, check out these instructions first.
Release Notes -
**Release date: September 30th, 2022**
### New Features
#### Multiple Page Parameters
With this release, we improved our page-modeling language by adding support for multiple page parameters, which makes it easier to use multiple objects on a page that do not have associations. You can now pass multiple arguments when opening a page, just as you can with microflows and nanoflows! Previously, you had to use a non-persistable entity to bring them together, or use a data view with a microflow as the data source. Not anymore! Not only is this simpler and faster, but it keeps your domain model cleaner.
You can now also add multiple top-level data views, each connected to a different parameter. Page parameters can be referred to from the top level and nested data views, and a page parameter can also be used by multiple data views. Additionally, you can directly select the associations of a page parameter, reducing the need for an additional data view just to be able to follow the association, which reduces the complexity of the page.
Page parameters are created automatically when you select an entity for the contextual data source of a data view. You can also directly define parameters at the [page level](https://docs.mendix.com/refguide/page-properties/#parameters).
#### Page Explorer
We made page-building simpler and more powerful by introducing a new pane called [Page Explorer](https://docs.mendix.com/refguide/page-explorer/), which shows your page structure as a tree view. It provides a quick and clear overview of your page structure so that you can understand your page more quickly. Next to that, it makes it easy to drag-and-drop widgets, copy-and-paste widgets, and open widget properties.
We see the biggest value here for Design mode, as it gives this mode more control. However, it can be used in combination with Structure mode as well.
With a default Studio Pro layout, the new pane can be found on a tab next to the **App Explorer**. Alternatively, it can be activated in the **View** menu.
#### Widget Developer Console
We added a new feature called the Widget Developer Console for advanced widget development, which helps you debug the configuration code of your widget that is responsible for conditionally visible properties, custom consistency checks, and Structure mode preview. This console shows logs from the `getProperties`, `getPreview`, `check`, and `getCustomCaption` functions, which can be defined inside the new configuration module (for more information, see the [Widget Developer Console](https://docs.mendix.com/apidocs-mxsdk/apidocs/pluggable-widgets-config-api/#widget-dev-console) section of *Configuration Module API for Pluggable Widgets*).
The Widget Developer Console is located in the **View** menu. It can be turned on or off at any time, and it can be filtered on the widget that is logging as well as on the log level.
#### Validation Assist
With this release, a new Mendix Assist feature as [Validation Assist](https://docs.mendix.com/refguide/validation-assist/) is available in [Public Beta](https://docs.mendix.com/releasenotes/beta-features/). Before an object is committed, the [validation rule](https://docs.mendix.com/refguide/validation-rules/) conditions should be satisfied, and there are different ways to [set up data validations](https://docs.mendix.com/howto/data-models/setting-up-data-validation/) in Studio Pro. Currently, building data validations in microflows is a manual and repetitive task. Validation Assist helps you build these validation microflows in a more automated way using pre-built expressions.
These are the main features of Validation Assist:
* List of checks for all members for which the data type can be empty (for example, when a customer's name is not filled in a form)
* Prefilled dialog box with microflow and validation properties
* The ability to extract validations as a sub-microflow
* The ability to call an existing validation sub-microflow in a new validation microflow
* Auto-generation of a validation microflow
#### Other New Features
* We now use your default browser to sign in to Studio Pro. If you are already signed in to your SSO provider for Mendix, then you will automatically be signed in to Studio Pro. You can opt-out from the new features tab in the **Preferences** menu.
* We added a **Sign-in/Sign-out** menu (just like that which appears in the Studio Pro main window) to the **App Selector** window.
* We implemented a VS Code Command Palette-like window where you can quickly access all of Studio Pro's menu items. This window is reachable via Ctrl + Shift + P.
* The Git command line interface (CLI) is now automatically installed during Studio Pro's installation, which increases performance while using Git in Mendix
* You can now optimize your Git repository directly from Studio Pro to prevent a slow-down over time. This optimization calls the `git gc` command to execute a garbage-collection round (which requires the Git CLI to be installed on your device). The repo optimization runs automatically after 10 commits have been made and you push to a remote server, or it can be executed manually. For more information, see [Git Storage Optimization](https://docs.mendix.com/refguide/git-storage-optimization-dialog/).
* We now support modeling with [business events](https://docs.mendix.com/refguide/business-event-services/). Download and install the [Mendix Business Events](https://docs.mendix.com/appstore/modules/business-events/) module from the Marketplace to start creating published or consumed [business event services](https://docs.mendix.com/refguide/business-event-services/). To use these services, right-click your app module, then go to **Add other** > **Published Business Event Service** in the publishing app or **Add other** > **Consumed Business Event Service** in a consuming app.
* In the styling editor, we have added file and folder operations such as **Create**, **Rename**, and **Delete**. Simply right-click a file or folder to see the available options.
* We added the square root function `sqrt` to [mathematical function calls](https://docs.mendix.com/refguide/mathematical-function-calls/).
* We added [begin-of date function calls](https://docs.mendix.com/refguide/begin-of-date-function-calls/) and [end-of date function calls](https://docs.mendix.com/refguide/end-of-date-function-calls/).
* We added a rate limiter for invalid requests.
### Improvements
#### Performance Improvements
* We improved the **Open App** dialog box. It takes less time to open, and when loading apps from the Team Server takes a long time, a list is shown with the apps present on the local machine.
* We improved the initialization of Studio Pro when the network connection is off or there are connection issues.
* When working with large apps, the **Module Security** and **App Security** dialog boxes now open faster.
* We now use bulk copy when migrating data to a SQL Server database, making the migration much faster.
* For consuming OData services, we improved the performance of parsing large OData contracts in Studio Pro.
* When interacting with the REST service editor, the **Resources** data grid now responds faster. Previously, the editor became slower as more operations were performed in the editor.
#### Other Improvements
* We added support for the following languages: Mandarin, China; Tamazight, Morocco. (Ticket 160719)
* We improved how Studio Pro handles nested data view footers. Before Studio Pro [9.14](https://docs.mendix.com/releasenotes/studio-pro/9.14/), these were silently deleted. Since 9.14, there was a pop-up window asking if you wanted to continue. We have further improved this by no longer clearing the footer at all, and showing a consistency error instead. This enables moving a data view without losing the footer content, and you can also move the footer widgets later. This also fixes an issue where the footer content was not always properly cleared, resulting in widgets shown in the browser that could not be found in Studio Pro. (Ticket 163368)
* When duplicating a JavaScript action in Studio Pro, the JavaScript action is now saved before duplicating, which means the new clone will always contain the exact same data as the original.
* We added the possibility to select multiple items in the **Console** and **Errors** panes and to copy the information about multiple selected items.
* You can now add resources to published OData services by dragging entities or microflows to the list of resources.
* The OpenAPI contract for published OData services now indicates when basic authentication is enabled.
* You can now indicate whether published OData attributes are sortable and/or filterable.
* MxAssist Performance Bot now allows you to cancel an inspection.
* We improved the user experience of MxAssist Performance Bot when the recommendations are stale. The recommendations are still visible, and also a notice is shown that the inspection needs to be rerun.
* We revamped the window that allows you to select which attribute and associations will be exposed from published web service parameters and return entities. This now also supports dark mode.
* We now support resizing in the **App Security** dialog box.
* You can now open a specific branch of an app from the **Open App** dialog box by double-clicking the branch name in the list with branches.
* We added a parameter that can be used on `login.html` to redirect to another page after login.
* We improved trace logging in the file storage back-ends.
### Fixes
* We fixed an issue where a reference selector made an unnecessary request when one of the parameters of the selectable objects data source was empty. (Ticket 140056)
* We fixed an issue where an error pop-up message was shown instead of a validation feedback message on a widget displaying the invalid attribute. This happened when the widget was inside a list data widget that was reloaded at the same time the validation feedback was received. (Ticket 145008)
* We fixed an issue where conditionally visible input widgets inside a snippet were incorrectly hidden when the snippet was used multiple times on a page. (Ticket 151997)
* We fixed an issue that caused a data view to try to refetch its data source even after an unmount. (Ticket 152380)
* We fixed an issue where XML schema validation failed when there was an XML schema import element in the schema file. (Tickets 152436, 148726)
* We fixed an issue that occurred with `MendixBinary.storeValue` when the binary attribute was a member of a generalization. (Ticket 162481)
* We fixed an issue in published OData services using a custom authentication microflow where the error status codes set by a microflow were returned as a 404 error to the client. Now, Mendix Runtime returns the error status code from the microflow. (Ticket 162876)
* We fixed a scrolling issue for the grid control that was noticed mostly in the **Console** log grid where scrolling was no longer reset to the top of the grid. (Tickets 163587, 163629)
* We fixed an issue in the **Open App** dialog box where branch lines were not displayed correctly for apps that were created with an older version of Studio Pro.
* We fixed an issue where MxAssist Performance Bot showed stale recommendations instead of clearing out its list.
* We fixed an issue where the error message in the expression editor did not wrap when becoming too long for the editor.
* We fixed an issue in published OData services where services using OData v3 showed they had an OpenAPI contract (OpenAPI contracts for OData services are only for OData v4).
* We fixed an issue in published OData services where `POST` and `PATCH` requests on sub-paths were accepted. Now, a request like `PATCH /Products(1)/Category(2)` is always rejected, because `PATCH` requests over associations are not supported.
* We fixed a issue in published OData services where Studio Pro suggested adding a validation rule for entities that could not have validation rules (such as non-persistable entities).
* We fixed an issue where an unhandled client error crashed native mobile apps, causing them to close immediately. Now, such an error triggers an alert with a description and options to either restart or close the app.
* We fixed an issue where the attribution report generated an empty file.
* We fixed an issue where selection in a data grid or a tree control did not reset when you selected multiple rows and clicked the same row that had the selection earlier.
* We fixed an issue when a non-editable cell in a data grid received focus upon tab navigation.
* We fixed an error that appeared when a dialog box showed a validation error after closing.
* We fixed an issue for workflows in which an enumeration-based decision with an empty option failed if the empty path was not the last position.
### Deprecations
* Starting with version 9.20.0, we will drop support for the following databases, as they are no longer being supported by the vendors. For 9.18 as an MTS version, support for the listed databases will be dropped after version 9.18.2:
* PostgreSQL 10
* SQL Server 2017
### Breaking Changes
This release contains a behavior change that may affect existing offline-first native apps built with earlier versions of Studio Pro. Previously, any auto-committed object created during offline synchronization remained as-is. With this release, the synchronization will delete auto-committed objects. A custom Mendix Runtime setting is available to revert to the previous behavior. To learn more about this change, see [Synchronization and Auto-Committed Objects](https://docs.mendix.com/refguide/mobile/using-mobile-capabilities/offlinefirst-data/auto-committed-objects/).
### Known Issues
* When you try to deploy an app that has a microflow with two [published business event](https://docs.mendix.com/refguide/business-event-services/) actions, you will get an error that the deployment failed. A fix for this will be issued in Studio Pro 9.18.1.