Mendix Studio pro

10.3.0
Stable
September 26, 2023
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 26, 2023** ### New Features * We added a new feature that allows you to reverse an association direction by right-clicking the [association](https://docs.mendix.com/refguide/associations/) and selecting **Reverse direction**. #### Java Dependency Management We released managed Java dependencies. This feature enables specifying *.jar* dependencies per module in your app, so that Mendix can automatically handle conflicts between modules for you. Specified dependencies are resolved through Gradle and downloaded from the Maven central repository or a custom repository. In the case of conflicting dependencies between modules, Gradle automatically selects the newest one, solving most compilation issues. The *.jar* dependencies are downloaded into the new Mendix-controlled **vendorlib** folder and are committed into version control. The **userlib** folder stays available for unmanaged dependencies. ### Improvements #### Performance Improvements * We improved the startup performance of Studio Pro. #### Microflow URL Improvement We added the option to define a URL [for a microflow](https://docs.mendix.com/refguide/microflow/#url). When you navigate to this URL, the microflow is executed during the client startup. The URL can contain both object parameters (just like page URLs) and primitive parameters. If the microflow contains a [Show a page action](https://docs.mendix.com/refguide/on-click-event/#show-page), this page is opened instead of the home page. Otherwise, the client opens the home page as usual after executing the microflow. #### Other Improvements * You can now use a **Share** URL from the [Catalog](https://docs.mendix.com/catalog/) to update a consumed OData service. * We made it easier to realign the [Call external action](https://docs.mendix.com/refguide/call-external-action/) activity with the changed contract of a consumed OData service. * Microflows published in an OData service can now take a parameter of type `System.HttpResponse`, allowing them to return errors. * We improved the resizing behavior of the [End Event](https://docs.mendix.com/refguide/end-event/) and [Decision](https://docs.mendix.com/refguide/decision/) dialog boxes in the microflow editor. * We added the possibility to define a [microflow decision method](https://docs.mendix.com/refguide/multi-user-task/#microflow) for workflow multi-user tasks. * A "current activity removed" conflict is no longer reported when a parallel split branch with currently executing activities is removed from a workflow. Instead, only a "parallel split branch removed" conflict is reported. * An external enumeration now shows the source of the enumeration and allows you to **Detach** it from the source. * A warning is now shown when a new document is created with a name that captures existing usages. * Mendix now updates the objects sent with the [Send external object](https://docs.mendix.com/refguide/send-external-object/) activity based on the reponse from the publishing side. * We now show an information bar in the [Edit External Action Parameter Mapping](https://docs.mendix.com/refguide/call-external-action/#edit-parameter-mapping) dialog box when the parameter is not allowed to be empty. * We corrected the validation of a new branch name and made it case insensitive, so now it is impossible to create a branch with a reserved name (for example, *MAIN*, *maiN*, or *MaIn*). * We improved the UX of the [Commit](https://docs.mendix.com/refguide/using-version-control-in-studio-pro/#pushing) dialog box for pushing when remote changes exist on the remote server. * We added a [module-import command](https://docs.mendix.com/refguide/mx-command-line-tool/module/#module-import) to the **mx** command-line tool. * Mendix no longer supports the old `{Id}` format in page URLs. All existing page URLs with `{Id}` will be converted to the new format of `{PageParameter/Id}`. * We added a log message to indicate that Mendix Runtime shutdown was requested through `ShutdownAction`. * We added the ability to change the return value of the end event for microflows, nanoflows, and rules through the **Properties** pane. * We added the ability to preview images in the **Properties** pane for [button widgets](https://docs.mendix.com/refguide/button-widgets/) and the [Image](https://docs.mendix.com/appstore/widgets/image/) widget in the page editor. * We made all association settings available in the **Properties** pane. * We added support for opening a properties dialog box in read-only mode in the **Properties** pane. Before this update, some read-only properties could not be opened from the **Properties** pane for more details. After this update, you can open the read-only properties and see their contents. * We moved the deployment settings to the new **Deployment** tab in the Studio Pro [Preferences](https://docs.mendix.com/refguide/preferences-dialog/). * We improved the UI for the page URL editing form. * We updated the [Batch replace](https://docs.mendix.com/refguide/batch-replace/) dialog box to support dark mode. * We added support for dark mode to the pop-up window that warns about existing usages when something is renamed. ### Fixes * We fixed a [known issue](https://docs.mendix.com/releasenotes/studio-pro/10.2/#ki-2644) where the input field did not receive initial focus when a [shortcut](https://docs.mendix.com/refguide/studio-pro-overview/#shortcuts) was used to access the [Go to](https://docs.mendix.com/refguide/go-to-option/) dialog box. * We fixed an issue where the drop-down filter in the [data grid](https://docs.mendix.com/refguide/data-grid/) widget was not closed when the page was scrolled. Starting with this version, multiselect filters in the data grid are closed as soon as the page is scrolled. (Ticket 163319) * We fixed an issue where importing large XML schema documents was too slow. (Ticket 170962, 185085) * We fixed an issue where a text area ignored a value autofilled in Google Chrome. (Ticket 176195) * We fixed an issue with calling a microflow action where retrieving a specialization over an association did not work if the other side was the generalization. (Ticket 187667) * We fixed an issue that caused the [Batch Update Button Icons](https://docs.mendix.com/refguide/app-menu/#batch-update-button-icons) dialog box to throw an exception. This includes addressing the scenario of adding an extra native icon selector when there are native documents and the selected icon is not supported on native. (Ticket 191511) * We fixed an issue in the `$metadata` of published OData services using OData v3 where a self-referencing association resulted in two roles with the same name. (Ticket 193467). * We fixed an issue where an XPath data source with a constraint that used the `id` attribute of a variable (for example, `[Module.Person_House/Module.House/id=$currentObject/id]`) resulted in an error during deployment. (Ticket 194055) * We fixed an issue where setting a new AuthToken was not applied until the native app was restarted. (Ticket 195005) * We fixed a crash that occurred when selecting **Edit** > [Find Usages](https://docs.mendix.com/refguide/find-and-find-advanced/#find-usages). * We fixed an issue where an “oops” pop-up window was displayed when you selected an entity through the context menu or dragged it from the **Connector** pane where a page or snippet parameter already existed. * We adjusted MxAssist Best Practice Bot recommendations [MXP003](https://docs.mendix.com/refguide/performance-best-practices/#mxp003), [MXP007](https://docs.mendix.com/refguide/performance-best-practices/#mxp007), and [MXP016](https://docs.mendix.com/refguide/performance-best-practices/#mxp016) to not recommend adding an index to an attribute that is uniquely constrained. * We fixed an issue where it was not possible to use the [constrained by](https://docs.mendix.com/refguide/reference-selector/#selectable-objects) functionality with the [reference selector](https://docs.mendix.com/refguide/reference-selector/) and [input reference set selector](https://docs.mendix.com/refguide/input-reference-set-selector/) widgets when the configured attribute path did not start from the direct enclosing data container. * We fixed an issue where dropping a [Call external action](https://docs.mendix.com/refguide/call-external-action/) activity in a microflow caused the activity to be placed at an incorrect location in the canvas. * Mendix now allows for the use of aggregate functions in XPath constraints, so you can use `sum`, `avg`, `count`, `min`, or `max` in a predicate. You should use these over a value over association (for example, `[sum(MyModule.OrderLine_Order/MyModule.OrderLine/Price) > 100]`). The aggregate functions support an optional second argument of the Boolean type to identify whether the values should be distinct by the database before applying the aggregate function. * Mendix now also allows for the use of calculations in the paths of XPath constraints, so you can use operators like `+`, `-`, `*`, `div`, and `mod` in paths. This allows for constraints such as, `[sum(MyModule.OrderLine_Order/MyModule.OrderLine/(Amount * Price)) > 100]`. * We fixed an issue that occurred with operators like `+`, `-`, `*`, `div`, and `mod` in client-side XPaths where Studio Pro allowed them to be used, but the Mendix Runtime Server rejected those XPaths. * We fixed an issue that occurred when using the `'+`, `-`, `*`, `div`, and `mod` operators in XPaths with at least one decimal operand where the result was an integer in HSQLDB and SAP HANA. * We fixed an issue that occurred when using the `+` operator in XPaths with at least one string operand and at least one non-string operand where the query failed in Microsoft SQL Server. * We fixed an issue that occurred when using the `+` operator in XPaths with at least one string operand and at least one operand that resulted in `NULL` where the result was `NULL` too. Mendix now uses the `CONCAT` function for string concatenation, and now the `NULL` value is ignored. * We fixed an issue that occurred when using the `div` operator in XPaths with integer/long operands where the result was a decimal in MySQL, MariaDB, Oracle, and SAP HANA. * We fixed an issue that occurred when using the `div` operator in XPaths with at least one decimal operand where the result was an integer in HSQLDB. * When consuming an external action, Studio Pro may add entities to the domain model. It now adds these entities to the domain model of the module that the consumed OData service is in, rather than the domain model of the module that the microflow is in. * We fixed an issue in published REST services where messages about import mapping errors were duplicated in the response body. * We now add a prefix to a [business event entity](https://docs.mendix.com/appstore/modules/business-events/#be-entities) name when it is created. If you decide to implement both the publishing of and subscription to an event, there are two entities created automatically. One of the entities is automatically renamed to **eventName_2** (by adding a prefix, you can make the name more meaningful). * We updated the HTTP response status codes for `POST`/`PATCH` on the publishing side depending upon the provision of the `Prefer` header in the request. * * We fixed a NullPointerException that occurred when passing `null` to the `getValueFromString` method of `MendixBinary` members. This method now returns `null` when passed `null`. * We fixed an issue where some properties in the **Properties** pane looked editable, but the value of the property was not changed.. * We fixed an issue where styling properties were not initially populated in the **Properties** pane. * We fixed an issue where the grid control did not highlight the selected row. * We improved the layout of some dialog boxes. ### Deprecations * Starting with version 10.5, we will drop support for PostgreSQL 11, as it is no longer supported by the vendor. ### Breaking Changes * We removed the **Build Using Gradle** option from the **Deployment** settings. We now always use Gradle for app deployment. ### Known Issues * When selecting a container widget in **Structure mode**, it can appear that it does not have any properties. This happens because clicking the border of the container selects the drop-zone instead of the widget. * Workaround: It is still possible to select the widget by clicking the left side of it. * A finished parallel split branch that is removed from a running workflow instance wrongly leads to a versioning conflict.