Mendix Studio pro

9.4.0
Stable
July 27, 2021
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: July 27th, 2021** ### New Features * We added the **Switch to** menu to the top bar of Studio Pro, which provides access to other parts of the Mendix Platform. * We introduced the new **Synchronize unsynchronized objects** mode as part of the [Synchronize](https://docs.mendix.com/refguide/synchronize) activity, which enables only synchronizing changed objects. This can greatly decrease synchronization time, as much less data will be synchronized to the device. * When you publish an [OData service](https://docs.mendix.com/refguide/published-odata-services), you can now choose between OData 4 (recommended) and OData 3. Previously, published OData services were always publishing OData 3. * Published OData services with OData 4 now support querying for data using a POST request to `/$query`. This allows for queries of any size, regardless of URL length limitations. * A pluggable widget can now specify a **Toolbox** category in both Studio Pro and Studio. This makes it possible for a widget to be located in an existing category (such as **Button widgets**), or to define a brand new custom category (such as **Maps widgets**). For more information, check out the [Toolbox Category](https://docs.mendix.com/apidocs-mxsdk/apidocs/pluggable-widgets#toolbox-category) section of the *Pluggable Widgets API*. * We added support for closing multiple pages in the [Open page button](https://docs.mendix.com/refguide/button-widgets) and [Close page button](https://docs.mendix.com/refguide/button-widgets) in web apps. * You can now directly close pages when using the [Show page](https://docs.mendix.com/refguide/show-page#close-pages) activity in nanoflows in your web apps. * We added more control to the startup flow of native mobile apps. Next to a page, you can now configure a nanoflow as a home page (for example, to show a setup wizard the first time an end-user opens the app). A nanoflow home page works similarly to how a microflow home page works for a web app. For more information, see the [Setting a Nanoflow as a Home Page](https://docs.mendix.com/howto/general/setting-up-the-navigation-structure#nanoflow-home-page) section of *How to Set Up the Navigation Structure*. ### Improvements * The date range search field of a data grid now allows the upper and lower bounds to be inclusive. (Ticket 119173) * We redesigned the user profile menu on the left side of the top bar so that it now displays the user's custom avatar. It also displays the user's full name, email, and useful links when clicked. The link to the **Developer Portal** has found a new home in the **Switch to** menu as **Community**. * With Atlas 3, we enabled [design properties](https://docs.mendix.com/apidocs-mxsdk/apidocs/design-properties#design-properties-definitions) to be defined in modules. We now also support multiple modules that define options for the same design property (this previously showed a consistency error). The options will be combined into one list, in descending order of the UI module precedence. Please note that when duplicate options or toggle definitions exist, the one from the module with the highest precedence will overwrite the others. * We improved the behavior of pluggable widget properties that are linked to a [datasource](https://docs.mendix.com/apidocs-mxsdk/apidocs/pluggable-widgets-property-types#datasource) property that is not required. Any such linked properties are now automatically hidden and omitted from the props passed to the widget component if the `datasource` property has not been configured. If the linked property is marked as required, it is only necessary to configure it if the `datasource` property has been configured. This is also reflected in the typings generated by the pluggable widget tools starting in this version. For more information, see the [Breaking Changes](#breaking) section below. * We improved the speed of the **themesource** compilation feature added in Studio Pro [9.0](9.0#new-themesource-folder). However, this comes with a [breaking change](#themesource) for **themesource** resource files. * We improved the reloading of styling in the client when editing the **themesource** SCSS files. The styling is now replaced directly in the browser, instead of reloading the page. * We now hide [MxAssist Logic Bot](https://docs.mendix.com/refguide/mx-assist-logic-bot) suggestion points when the flow is too short. * We enhanced the [mx tool](https://docs.mendix.com/refguide/mx-command-line-tool) utility with a `show-version` command to display the version of Studio Pro last used to edit an app. * We improved the interface of `IMetaObject` to return its attributes (meta-primitives) in the order as specified in the domain model. We made a similar change to `IMendixObject` so that now it returns its attributes (members) in that same order as well. ### Fixes * We fixed a memory leak issue in repeating scheduled events. (Ticket 125660) * We added file management during the Subversion merge process to circumvent the known issue where merging a feature branch after conversion caused an error message to show. * We fixed an issue where an error was thrown on Android when you swiped past the last tab in the native tab container widget. (Ticket 117734) * We fixed an issue where pluggable widgets with multiple data sources were rendered multiple times (once for each data source) if they all started loading data at the same time. (Ticket 122505) * We fixed an issue that occurred when using high DPI display settings in the [New Access Rules](https://docs.mendix.com/howto/security/create-a-secure-app#production) dialog box. (Ticket 123647) * We fixed an issue with empty attributes in the [nanoflow debugger](https://docs.mendix.com/howto/monitoring-troubleshooting/debug-microflows-and-nanoflows). (Ticket 124260) * We fixed an issue with filtering empty lists in nanoflows. (Ticket 125019) * We fixed an error that occurred when selecting thousands of items in a reference set selector. (Ticket 125605) * We fixed an issue where a snippet call referring to a missing snippet crashed during import or opening the app in Studio Pro. (Tickets 125920, 126205, 126506) * We no longer suggest adding [module roles](https://docs.mendix.com/refguide/module-security#module-role) to Marketplace modules when adding a [user role](https://docs.mendix.com/refguide/user-roles). * We added the location to some error messages about sequence flows in microflows. * We fixed an issue with [external entities](https://docs.mendix.com/refguide/external-entities) that occurred while determining whether an attribute was sortable where attribute *x* was considered non-sortable if there was a non-sortable attribute that had *x* in the name. * We fixed an issue in the [MxAssist Performance Bot](https://docs.mendix.com/refguide/mx-assist-performance-bot) that caused duplicate usage locations to be displayed. * We fixed the MxAssist Logic Bot context menu for the second flow in a [Decision](https://docs.mendix.com/refguide/decisions) object. * We optimized the MxAssist Logic Bot predicted request to the server. ### Breaking Changes Pluggable widget properties that are linked to a `datasource` property are now omitted from the props passed to the widget component if the `datasource` property has not been configured. Previously, these properties could be configured to use the surrounding data context, as if they were not linked to a data source property at all (though this was not reflected in the typings generated by the pluggable widget tools). #### Themesource Resource Files In previous Studio Pro 9 versions, it was possible to reference a resource (for example, a background image) relative to a **themesource** SCSS file. This file was then copied and (if needed) renamed into the **theme-cache** and **deployment/web** folders. This functionality will no longer be available from this version, as we could no longer support it aside the improvements made to increase the compilation speed. If your app just uses Atlas 3.0, you do not need to do anything, and your app styling will keep working as before. If you have custom styling that relied on this feature, change the styling as follows: * Move the resource to the **themesource/{module}/public** folder (introduced in version [9.3.0](9.3)) * Use the path inside this **public** folder as the URL in the SCSS file For example, assuming *resources/company_background.png* exists in your module's **public** folder, you can use this in the SCSS via `background: url("./resources/company_background.png");`. ### Deprecations * We dropped support for SQL Server 2016 due to it no longer being supported by the vendor and increased the compatibility mode of Azure SQL to 140 to reflect this. ### 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. * It is not possible to use Ctrl + Tab to switch between open tabs unless you have already selected a tab. * Workaround: Select a tab with your mouse and then use the key combination.