Mendix Studio pro

9.10.0
Stable
January 25, 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: January 25th, 2022** ### New Features * We added support for an automatic retry on [task queue](https://docs.mendix.com/refguide/task-queue#sp) tasks in Studio Pro. * We added the ability to set the platform for a [Javascript action](https://docs.mendix.com/refguide/javascript-actions#platform). This allows you to create JavaScript actions specific to web or native applications. * The merge/port fix feature has now been implemented for Git apps, and it is available available via **Version Control** > **Merge Changes Here** > **Port Fix**. ### Improvements * We added **Finished** and **Duration** attributes to **System.ProcessedTaskQueue** that capture the duration of the task's execution. * We added the new [MxAssist Performance Bot](https://docs.mendix.com/refguide/mx-assist-performance-bot) best practice **MXP012** for a repeatedly committed variable in a microflow. * We added a check command to the [mx tool](https://docs.mendix.com/refguide/mx-command-line-tool) to check your app for errors, warnings, and deprecations. * We added a name check on metrics that are created from a microflow or through the [Java API](https://docs.mendix.com/howto/logic-business-rules/java-api-tutorial). * We added the five most common widgets used when editing pages, page templates, snippets, and building blocks to the top toolbar. * We changed the way [dangling references]/refguide/offline-first#dangling-references) are handled during the synchronization process. A dangling reference error can occur when trying to synchronize a committed object that is associated with an uncommitted object. Synchronization used to be prevented from starting if the set of objects to be synchronized contained an object with a dangling reference, and an error message was then shown on the device. Now, synchronization is not stopped when such an error occurs. Instead, all objects are synchronized except ones with dangling references, for which **System.SynchronizationError** records are created in the runtime database that contain the data of the uncommitted objects. * We upgraded the **Microsoft.OData.Edm** library to version 7.9.4. #### Data Source Variables When building more complex UIs, it is common to have nested widgets depending on objects shown in the outer widgets (for example, when only showing the order lines of a current order). [XPath source](https://docs.mendix.com/refguide/xpath-source) can already express some of these dependencies with the help of [entity path](https://docs.mendix.com/refguide/xpath-source#entity-path) or the `[%CurrentObject%]` [token](https://docs.mendix.com/refguide/xpath-keywords-and-system-variables#object-related). With this release, we are making this functionality more simple and powerful. From now on, XPath sources of a [list view](https://docs.mendix.com/refguide/list-view) widget, [Data Grid 2](https://docs.mendix.com/appstore/modules/data-grid-2) widget, and many other widgets have access to the same variables as page expressions! That means XPath constraints can refer to the objects of all surrounding data widgets as well as to their attributes. For example, your list view can show all `Module.Kittens` satisfying the `[Cuteness > $ownerDataView/CutenessThreshold]` constraint. Such a list view will be automatically updated whenever the mentioned `CutenessThreshold` is changed. This makes creating XPath constraints easier and more powerful while reducing the need for microflow- or nanoflow-based sources. For more information, see the [XPath Constraint](https://docs.mendix.com/refguide/xpath-source#xpath-constraints) section of *XPath Source*. This is based on upvoted ideas from [Fabian Recktenwald](https://forum.mendixcloud.com/link/ideas/659), [Jean Gabeler](https://forum.mendixcloud.com/link/ideas/1808), and [Alexander Nicolaij](https://forum.mendixcloud.com/link/ideas/1887) submitted to the [Mendix Idea Forum](https://forum.mendixcloud.com/link/ideas). Thank you for thinking along! ### Fixes * We upgraded the Cloud Foundry client (`mx-cf-client`) by updating Apache Log4j libraries to 2.17.0 (to address [CVE-2021-45105](https://cert-portal.siemens.com/productcert/pdf/ssa-501673.pdf)) and then to 2.17.1 (to address [CVE-2021-44832](https://cert-portal.siemens.com/productcert/pdf/ssa-784507.pdf)). * We fixed an issue that occurred with an import mapping that was not committed when the mapping method was **Find by key** and the child objects could not be retrieved by association. (Ticket 126464) * We added support for the Kazakh [language](https://docs.mendix.com/refguide/language-settings). (Ticket 130166) * We fixed an issue where re-rendering a [widgets property](https://docs.mendix.com/apidocs-mxsdk/apidocs/pluggable-widgets-property-types#widgets) linked to the [datasource](https://docs.mendix.com/apidocs-mxsdk/apidocs/pluggable-widgets-property-types#datasource) of a pluggable widget no longer rendered its contents properly. (Tickets 132842, 134061) * We fixed an issue where buttons from the **Save Changes** pop-up window went off-screen if there were a lot of unsaved changes. (Ticket 134136) * We fixed an issue where user credentials containing spaces caused unexpected failures when committing changes for Git private server apps. (Ticket 136237) * We fixed the autocomplete pop-up window that got stuck upon closing the text editor (for example, for an XPath constraint). Now, this window is closed once the text editor loses focus. (Tickets 136553, 137368) * We fixed an issue where setting multiple entity access rules at the same time resulted in an error where no access rights were defined. (Ticket 136705) * We fixed an issue that caused the [Workflow Engine](https://docs.mendix.com/refguide/logging#mendix-nodes) to hang in a [parallel split](https://docs.mendix.com/refguide/parallel-split) with huge workflow definitions. (Ticket 137269) * We fixed a NullPointerException that occurred when retrieving data from a remote entity after an app restart. (Ticket 137565) * We fixed an issue where client certificates with empty passwords could not be used. (Ticket 137950) * 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 a bug with the [Auto-synchronize](https://docs.mendix.com/refguide/on-click-event#save-changes) option in online profiles that caused a crash when the action was used. (Ticket 138115) * We fixed a bug where deployment failed when a [List operation](https://docs.mendix.com/refguide/list-operation) activity with a sort operation was used in a nanoflow. This bug occurred when the list was sorted based on an attribute defined in one of the generalizations of the sorted entity. (Ticket 138310) * We fixed an issue where switching between tab pages with the **Refresh on show** property set to **Yes** did not display its contents correctly. (Ticket 139078) * We fixed an issue where a change inside a document did not show up in the the updated [Find Usages](https://docs.mendix.com/refguide/find-and-find-advanced#find-usages) results until another change occurred or the app was reopened. * We fixed an issue in the domain model mapping wizard where web services in Marketplace modules could not be selected. * We fixed an issue in [published OData services](https://docs.mendix.com/refguide/published-odata-services) that occurred while generating metadata XML. The `Name` property in the `EntityContainer` section can no longer contain a slash (`/`). * We fixed a bug that allowed for setting null values on attributes with the **Can be empty** option cleared while performing an OData `PATCH` request. * We fixed an issue that allowed for attempting to export the metadata XML of a published OData service when related domain model entities had been changed or removed, which in turn threw an error. * We fixed an issue that prevented a one-to-one navigational property from being updated from the child side in a published OData service. * We fixed an issue where the Mendix Runtime returned the HTTP status code 500 when an invalid entity ID was provided as a new value for a single-valued navigational property in an OData `PATCH` request. * We fixed a backward-compatibility issue where a native mobile app made with a version below [9.4.0](9.4) did not start up when connecting to Mendix Runtime version 9.4.0 or above. * We fixed an issue in the client-server synchronization protocol where the rollback values of related objects were not always communicated back to the browser when an object was deleted, and as a consequence, more data was updated in the browser cache. * We fixed an issue with native mobile apps that prevented an app from starting when a user had unsynchronized changes and was implicitly logged out. In such a case, it was possible for startup synchronization to fail to complete due to user access rights with no actionable mitigation path. * We fixed an issue where calling microflows from offline-first apps failed with an error logged on the server with the following message: "invalid jsonrequest jsonobject["guid"] is not a long". * We fixed an issue in [MxAssist Logic Bot](https://docs.mendix.com/refguide/mx-assist-logic-bot) where the microflow call action could not be inserted if the exposed microflow existed in the app. * We fixed an issue that occurred when a module was at the app level and the user received an error when trying to update the access rules. * We fixed an issue where the Branch Line Manager closed when an empty area was clicked and the app selector froze. * We fixed a bug where the validation for creating branches in Subversion apps was not being called. * We fixed an issue where Studio Pro became unresponsive if compiling the app's theme never finished. * We fixed a small visual issue that occurred while rendering context menu items. ### Breaking Changes * When accessing the contents of file documents, access rules on the **Contents** attribute are now checked instead of relying on entity access alone. ### Known Issues * 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. * In the **Properties** pane, you cannot copy, paste, or delete using keyboard shortcuts. * Workaround: Perform the same operation using your mouse and the context menu.