Mendix Studio pro

10.4.0
Stable
October 31, 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: October 31, 2023** ### New Features #### Redesigned Logic Editors We are releasing the Beta version of our redesigned logic editors. We have enhanced the usability of the MxAssist Logic Bot, added more support for keyboard navigation, and invested in more developer experience details to make the interaction with the canvas even more fluent. For more information, see [Logic Editors Beta](https://docs.mendix.com/refguide/logic-editors-beta/). #### Creating New Microflows and Nanoflows When selecting a microflow or nanoflow for the [call microflow](https://docs.mendix.com/refguide/on-click-event/#call-microflow) or [call nanoflow](https://docs.mendix.com/refguide/on-click-event/#call-microflow) client action, you can create a new one from the selector as well. In this case, a dialog box is shown where you can now choose the data view, snippet, page parameter, or available selection from which the parameter must be created in the new microflow or nanoflow. #### Adding Workflow Activities We added a feature for adding an activity to a workflow from the activity's context menu. We also added pop-up animation to workflows for quickly adding an activity. For more information, see the [Adding Elements to a Workflow](https://docs.mendix.com/refguide/workflows/#add-elements-to-workflow) section in *Workflows*. ### Improvements #### Performance Improvements * We made some performance improvements to the versioning logic of the workflow engine. (Ticket 189343) * We improved the performance of the **Build deployment structure** step when building an app, especially for those apps that contain many expressions referring to a variable other than `$currentObject`. The time needed for **Exporting pages** has decreased up to 95%. (Ticket 196806) #### Pluggable Widget Selection Improvements Selections of pluggable widgets (such as [Data Grid 2](https://docs.mendix.com/appstore/modules/data-grid-2/) and [Gallery](https://docs.mendix.com/appstore/modules/gallery/)) can now be used by widgets elsewhere on the page. You can pass the selection as an argument to a microflow or nanoflow (single and multi-selections) or to an **Open page** action (single selections only). It is also possible to select a pluggable widget as the **Listen to** data source of a data view. If the pluggable widget is inside a repeater (like a list view), its selection is only available to widgets that are also inside that repeater. Otherwise, the selection is available on the entire page. This improvement really simplifies the modeling of pages where part of the page needs to update when a selection changes. We also made the **Delete** action configurable. You can now specify which objects you want to delete, which can be an available selection, any surrounding data view, or a page or snippet parameter. For more information, see the [Delete Object(s)](https://docs.mendix.com/refguide/on-click-event/#delete-objects) section in *On Click Event and Events Section*. #### Other Improvements * We added support for the following languages: Afrikaans (South Africa), Southern Ndebele (South Africa), Southern Sotho (Lesotho), Southern Sotho (South Africa), Southern Sotho (Zimbabwe), Swati (Eswatini), Swati (South Africa), Tsonga (South Africa), Tsonga (Zimbabwe), Tswana (Botswana), Tswana (South Africa), Tswana (Zimbabwe), Venda (South Africa), Venda (Zimbabwe), Xhosa (South Africa), Xhosa (Zimbabwe), and Zulu (South Africa). (Ticket 198107) * We made the [Data Grid 2](https://docs.mendix.com/appstore/modules/data-grid-2/) configuration easier by automatically creating columns with filters and create, edit, and delete buttons when an entity is selected. * When excluding design properties from modules, we no longer generate consistency errors for every usage of those design properties. Instead, a consistency warning is raised for your app modules. For [Marketplace modules](https://docs.mendix.com/appstore/modules/), no consistency error or consistency warning is raised when excluded design properties are being used. * We improved the UI for microflow and page URLs. You can now copy the example URL, the dialog box has been made fully resizeable, and error descriptions have been made more helpful. You can also now use the `{MyObjectParam}` syntax instead of having to write `{MyObjectParam/Id}`. * We improved the layout of the **Version Control** > **History** view by adding a new icon and specific information about merge commits. * We added a feature where you can indicate that you want to locally create and update the objects of external entities, even when the service does not support create or update. * We now show the string length and enum name for the attributes on the **Business Events** document and on the dialog box for editing and adding business events. * We added a prefix to the name of a business event entity that is created. If you decide to implement both the publishing of and subscribing to an event, there are two entities created automatically, and one of the entities is automatically renamed to **{eventName}\_2**. With a prefix, this name will be more meaningful. * We now always display the default entity image in the domain model editor and in the **Image** property in the **Properties** pane when a custom image is not specified. * We now ignore the non-writable attributes of objects that are passed to OData actions as parameters. This is now in line with the behavior of updating entities through the OData protocol. Before, an action call that contained values for non-writable attributes (such as auto-numbered or calculated attributes) failed the request. * When adding a new microflow to a published OData service, Studio Pro now adds a microflow that has entity access enabled. * We added validation for the **Default value** property of Integer, Long, Decimal, and AutoNumber attribute types in dialog boxes and the **Properties** pane. * We added support for opening a properties dialog box in read-only mode in the **Properties** pane. * The text input fields in the **Properties** pane now respect the max length constraint (for example, the `Summary` in a published OData service and the default value in a domain model entity attribute with the `max length` specified). * We improved the layout of pop-up windows by correctly placing and aligning the elements on the form. * We improved the layout of some dialogs boxes. * We slightly improved the deployment bundle size by removing unnecessary web files. * We optimized server responses and prevented the returning of unnecessary data. * We now support XPath variables as the second argument of the `contains`, `starts-with`, and `ends-with` functions. * We added a validation error to disallow the legacy XML attribute `AllowNonPersistableEntities`, since it does not do anything for pluggable widgets. * We improved the runtime error message that may be received after adding certificates. * We improved the property types detection in the JSON structure by taking into account all the possible types and chooseing the biggest one (for example, `decimal` is bigger than `integer`). * We added support for PostgreSQL 16. ### Fixes * We fixed a [known issue](https://docs.mendix.com/releasenotes/studio-pro/10.2/#ki-2202) that occurred where selecting a container widget in **Structure mode** made it appear that it did not have any properties. * We fixed an issue where queued tasks (including scheduled events) got stuck in the **Running** state when database connection issues occurred. (Tickets 176015, 177221, 181767, 184886, 193669, 195602, 195879) * We fixed an issue where queued tasks got stuck in the **Running** state if a `StackOverflowError` or `InterruptedException` occurred during the execution of the task. (Ticket 187973) * We fixed an issue where an H2 heading tag had an empty `id` attribute when [exporting documentation](https://docs.mendix.com/refguide/app/#export). (Ticket 188128) * We fixed an issue where double-clicking the close button of a pop-up window while multiple pop-up windows were open also closed the underlying pop-up windows. (Ticket 188414) * We fixed an issue where branch lines were not sorted alphabetically during a [branch merging operation](https://docs.mendix.com/refguide/merge-dialog/). (Ticket 192492) * We fixed an issue where the action for closing a pop-up window did not work correctly if it targeted an [action button](https://docs.mendix.com/refguide/button-widgets/) and there were multiple instances of that button in the app. (Ticket 192989) * We enabled the `latestHttpResponse` parameter in responses from web services in case of failure. (Ticket 193998) * We fixed an issue where the session ID was incorrectly `null` in websockets. (Ticket 195691) * We fixed an issue in the metadata of published OData services that occurred when publishing associations as object IDs. When the user has access to the association but not to the other entity, the Mendix Runtime `$metadata` now no longer filters out the property. (Ticket 195835) * We fixed an issue where message transmission optimization mechanism (MTOM) requests included the `Content-ID` of the main SOAP payload without the required square brackets. (Ticket 196343) * We fixed an issue where startup synchronization failed when some files were missing. (Ticket 196961) * We removed the resource path and parameter details from the "400 bad request" error message to avoid cross-site scripting vulnerability false-positives for published OData services. (Ticket 197293) * We mitigated [CVE-2022-1471](https://www.cve.org/CVERecord?id=CVE-2022-1471), [CVE-2022-25857](https://www.cve.org/CVERecord?id=CVE-2022-25857), [CVE-2022-38751](https://www.cve.org/CVERecord?id=CVE-2022-38751), [CVE-2022-38752](https://www.cve.org/CVERecord?id=CVE-2022-38752), [CVE-2022-41854](https://www.cve.org/CVERecord?id=CVE-2022-41854), and [CVE-2022-38750](https://www.cve.org/CVERecord?id=CVE-2022-38750). These CVEs do not pose any apparent risk for Mendix customers. * 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 a [reference set selector](https://docs.mendix.com/refguide/reference-set-selector/) widget when the configured attribute path did not start from the direct enclosing data container. * We fixed an issue where existing page URLs threw a "onflicting URL" consistency error when upgrading due to a backwards compability problem. This is now fixed and all existing page URLs work again. * We fixed an issue where changing the type of a page or microflow parameter caused an error when navigating to it via a URL after doing a hot reload. * 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. * We fixed an issue where excluded microflows publishing business events caused a buildtime error. * We fixed an issue where disabled microflow activities for publishing business events caused a buildtime error. * We fixed an issue where calling a microflow as an unauthorized user did not show the login screen or throw an error (depending on whether the user was anonymous). * We fixed an issue in the microflow properties dialog box where it was not possible to toggle the **Expose as microflow action** and **Expose as nanoflow action** options. * We fixed an issue with the [end event](https://docs.mendix.com/refguide/end-event/) form where the deletion of the entity used as a return type crashed the form. * We fixed an issue in the Workflow Engine that caused the Mendix Runtime Server to run out of memory after deploying a new version of a workflow that had many parallel splits. * We fixed an issue in the MxAssist Logic Bot where it created a non-unique variable when a **Retrieve from Database** recommendation was selected. * We improved how the MxAssist Best Practice Bot handles invalid sequence flows so that recommendations can still be shown for [MXP012](https://docs.mendix.com/refguide/performance-best-practices/#mxp012) and [MXP14](https://docs.mendix.com/refguide/performance-best-practices/#mxp014). * We fixed an issue where configuring invalid delete behavior was allowed on associations with external entities. Studio Pro now only shows the valid options. We also added a consistency error to apps that already contain incorrectly configured delete behavior for external entities. * We fixed an issue where deleting an entity used in an import mapping led to an error coming from the import mapping **Properties** pane. * We fixed an issue in which the consistency check for the correct ownership of an association was not applied to pluggable widgets with association properties that were not linked to a data source. * We fixed an issue where parameters for OData actions were lost when using custom authentication. * We fixed an issue where revisons were not sorted correctly on the **Version Control** > **History** view. * We fixed an issue where an error was shown if a user immediately committed after a synchronization of managed dependencies had been started. * We fixed an issue where the errors list did not get refreshed when an error occured while downloading a module from the Marketplace. * We fixed an issue where SVG files were not pre-cached in a progressive web app. * We fixed an issue with the creation of a new database from Studio Pro when using MySQL or MariaDB. * We fixed an issue where extraneous directories created by the Gradle build tool were included in an exported deployment package *.mda* file. ### Deprecations * Starting with version 10.5, we will drop support for PostgreSQL 11, as it is no longer supported by the vendor. ### Known Issues * A finished parallel split branch that is removed from a running workflow instance wrongly leads to a versioning conflict.