Mendix Studio pro

9.11.0
Stable
February 23, 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: February 23rd, 2022** ### New Features * We added the option to enable [Dark mode preview](https://docs.mendix.com/refguide/preferences-dialog#dark-mode) to the **New features** tab in **Preferences**. Note that not all screens support dark mode yet, and some parts of Studio Pro can be displayed in light mode when dark mode is enabled. This is based on an [upvoted idea from Marcus Groen](https://forum.mendix.com/link/ideas/80) in the [Mendix Idea Forum](https://forum.mendixcloud.com/link/ideas). Thank you for thinking along, Marcus! * In [published OData resources](https://docs.mendix.com/refguide/published-odata-resource), you can now override the default behavior of the update capability by specifying a microflow. You can use the [Validation feedback](https://docs.mendix.com/refguide/validation-feedback) activity to report custom validation errors in that microflow, for example. ### Improvements * We improved the reaction time of an idle [task queue](https://docs.mendix.com/refguide/task-queue). * We added the new [MxAssist Logic Bot](https://docs.mendix.com/refguide/mx-assist-logic-bot) best practive [MXP013 – Negating XPaths in Access Rules](https://docs.mendix.com/refguide/performance-best-practices#mxp013). * We prioritized the **Check if object exists** decision recommendation after the retrieve-object operation in the MxAssist Logic Bot menu. * We improved the text input focus behavior in native apps. Previously, tapping outside the input committed the value but did not blur the input or call the on-leave event. In some cases (for example, when the input was part of a form wrapped in a scroll view), the input could retake focus from any other element the user might have tapped, triggering unexpected platform-dependent behavior. From now on, tapping outside the input will trigger an on-blur event on the native component and trigger the on-leave event. This allows for more coherent platform-independent behavior when a text input is blurred by tapping outside of it. (Ticket 140065) * We added support to autocomplete XPath and OQL with the Tab key. * We improved security by removing microflow information from *metamodel.json*. Microflow information is now only available in the first session request (`get_session_data`) and only contains the microflows to which the user has access. * We improved the error message that was shown when trying to use a [Commit object](https://docs.mendix.com/refguide/committing-objects) activity on an external object. A suggestion is added to use the [Send external object](https://docs.mendix.com/refguide/send-external-object) activity instead, whenever the external entity allows for updates. * We added the possibility to specify the [BCrypt cost](https://docs.mendix.com/refguide/project-settings#bcrypt-cost) when configuring the hash algorithm via a custom setting. This will override the value from the model. To do this, use the value `BCRYPT:cost` for the setting `HashAlgorithm`, where `cost` can be a value from 10 to 30. If you only specify the value `BCRYPT`, a default `cost` value will be used. ### Fixes * We fixed a [known issue](9.7#ki-21022) where you could not copy, paste, or delete using keyboard shortcuts in the **Properties** pane. (Tickets 126003, 139441, 141303) * We fixed an issue where the target namespace in [XML schema import](https://docs.mendix.com/refguide/xml-schema-support) was not stored in the app, resulting in the failure of XML validation during import and export mappings in Mendix Runtime. (Ticket 123183) * We fixed an issue in consumed OData services for XPaths of external entities. XPaths that specified more than one filter on the same associated entity generated the wrong OData query. The result was that the XPath returned more objects than expected. (Ticket 129497) * We fixed an issue where the **REST Service** dialog box shifted upwards when adding a new resource. (Ticket 130238) * We fixed an issue where synchronizing objects in an offline-first progressive web app failed along with an "Autocommitted objects detected at end of transaction for long-lived user session" message that was logged. (Tickets 133154, 136135, 137319) * We fixed sorting by multiple attributes in an Excel export of the [data grid](https://docs.mendix.com/refguide/data-grid). (Ticket 136239) * We fixed an issue where selecting the bottom item in a tree led to selecting a wrong item due to auto-scroll behavior. (Ticket 136374) * We fixed an issue with retrieving a binary entity that has a binary attribute. Now, we can better differentiate between a binary OData property and the binary attribute that represents the stream. (Ticket 136937) * We fixed an issue where changes to an app theme with many files were no longer automatically reloaded in the client. (Ticket 137980) * We fixed an issue where changed objects that had a reference to a system attribute were not garbage-collected when no longer in use. (Ticket 138167) * We fixed an issue where you could not type a spaoce in a text box widget wrapped by a container widget with an on-click event. (Ticket 139090) * We fixed an issue where a trial license warning was issued when call-home licensing was configured. (Ticket 140289) * We fixed an issue in the page editor where an error was shown when changing the layout type of a page to a type for which there are no layouts. (Ticket 140450) * We fixed an issue where blocked users were unblocked too quickly. (Ticket 140549) * Refreshing a parameter mapping for a Java or JavaScript call action resulted in an exception. This has been fixed. (Ticket 141112) * We fixed an issue where Studio Pro became unresponsive if compiling the app's theme never finished. * We fixed a bug that allowed for setting null values to attributes with the **Can be empty** box cleared while performing an OData `PATCH` request. * We fixed a bug where the validation for creating branches in Subversion apps was not being called. * We fixed an issue where the context menu in the microflow editor to publish the microflow as a web service operation asked for a microflow to be selected rather than asking for a web service to be selected. * We fixed the missing Content-Type header in HTTP requests performed by the [Send external object](https://docs.mendix.com/refguide/send-external-object) activity. * We made the **Create Variable** dialog box resizable. * We fixed an issue where a double-click on the vertical scroll bar of a tree led to activating the selected item. * We fixed an issue where the passwords of demo users did not update when changing the password policy. * We fixed a bug that caused an error when trying to publish an entity as an OData resource while including system members `owner` or `changedBy` as attributes. We also made sure these system attributes are listed in `NonUpdatable(Navigation)Properties` in the service metadata XML. * We fixed an issue in updatable published OData resources for exposed system members. Now, these members are properly listed in the `NonUpdatable(Navigation)Properties` in the metadata, and the runtime gives a clear error message when a client attempts to update them. * We fixed an issue in the [Call REST service](https://docs.mendix.com/refguide/call-rest-action) activity where the data entered for a custom request template disappeared. * We fixed an issue where a pluggable widget data source having XPath-based constraints where a member did not have read access resulted in an error. * We fixed an issue with the [tab container](https://docs.mendix.com/refguide/tab-container) where its content was not updating upon switching tabs with visibility constraints. ### Breaking Changes * The [FeedbackHelper](https://apidocs.rnd.mendix.com/9/runtime/com/mendix/webui/FeedbackHelper.html) class now throws an exception when trying to open a form that does not exist. ### Known Issues * The stories shown in the [Related stories](https://docs.mendix.com/refguide/commit-dialog#stories) tab in the **Commit** dialog box are not currently being filtered by their completed status. Their text is also wrapped and aligned incorrectly. Finally, double-clicking a story in the [Stories](https://docs.mendix.com/refguide/stories-pane) pane does not show the **Story Details** pop-up window with the story information. * When you update a [consumed OData service](https://docs.mendix.com/refguide/consumed-odata-service) with a new version from [Mendix Data Hub](https://docs.mendix.com/data-hub/) but close the document without saving, the blue arrow icon will no longer be shown to notify you about the available update for that service. * Workaround: Closing your app and opening it again fixes this issue.