Mendix Studio pro

10.9.0
Stable
March 27, 2024
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: March 26, 2024** ### New Features #### X-Ray Mode (Beta) We are adding a feature to **Design mode**: X-Ray mode. X-Ray mode allows you to see certain structural elements of your page while still in **Design mode**. This feature adds a special border to certain widgets, such as layout grids and containers. You can also change their sizes. When the X-Ray mode feature is enabled, the X-Ray mode itself can be toggled on or off with a button on the top bar. Turning X-Ray mode off returns the page to the WYS/WYG editor of **Design mode**. As **Structure mode** is not supported on Mac, we are enabling X-Ray mode on Mac by default. On Windows, X-Ray mode can also be enabled in the **New features** section of **Preferences**. You can opt out of the beta by disabling the feature in **Preferences**. #### Session and Login Token Improvements We introduced authentication token support for applications, allowing users to stay logged in until their token expires. Offline-first apps will use authentication tokens by default, providing compatibility with long-lived sessions in previous Mendix versions. You can also use the new core client API, `login2`, with the useAuthToken argument, which allows you to specify whether to generate an authentication token for long-lived sessions. This can be used for both online and offline-first apps. See [Session Management](https://docs.mendix.com/refguide/runtime/session-management/) for more information on how this works. #### WebSQL replacement We introduced an alternative for WebSQL with this release. After upgrading to this release, opening your offline PWA in your browsers automatically upgrades your WebSQL database to a new SQLite-based database. For this to function correctly, the browser must run in a Secure Context, which means either an HTTPS connection or by accessing your offline PWA via localhost. All functionality will remain functioning as is. #### Other New Features * We added a **Continue All** button to the debugger. When there are multiple paused microflows, nanoflows, or rules, then they can all be continued by pressing a single button instead of having to continue them individually. * You can now indicate that a constant value is private (rather than shared). Studio Pro will store encrypted value in the user settings (instead of the app model). For more information, see the [Constants](https://docs.mendix.com/refguide/configuration/#constants) section in *Configurations*. ### Improvements * We now use a fully qualified name for the **Override annotation** in generated Java proxy code. This reduces name clashes with the user code. (Ticket 210053) * We improved the XPath constraint Visual Builder in a number of ways: * it now formats the XPath whenever a change is made. * it provides better feedback when unsupported association or attribute references are used in the XPath expression editor. * it provides better feedback when advanced token expressions are used in the XPath expression editor. * the order of the drop-down list items matches the autocomplete list in the XPath expression editor more closely. * We now support the copy, cut, paste, and delete actions in MendixChat through a right-click context menu. * We updated the fonts for MxChat, data filters, and **Start from spreadsheet** to those native to the operating system the app is currently running on. * We extended logging during synchronization by tracking execution time of database commands. Warnings are printed when a command takes a long time, which is controlled with the custom runtime setting `LogMinDurationQuery`. A history of all commands is logged when an exception occurs during synchronization. * In the Mendix React Client, we shortened the time it takes to bundle when rerunning an app. * After changing the entity of a data source, we now update the attribute paths of the widgets within it with the new entity if the attribute exists in the new entity's type. * In the Mendix React Client, we shortened the building time by exporting nanoflows in parallel. Moreover, when rerunning an app, nanoflows are selectively exported based on changes. * The behavior of the autocomplete for editing page and microflow URLs was improved to suggest parameters and attributes more often. * We improved Studio Pro general performance: simple object moves no longer trigger consistency checks in the logic editors. * We improved positioning and layouting after Decisions are inserted via MxAssist. * We added support for query string parameters to [microflow URLs]( /refguide/microflow/#url). When configuring the URL of a microflow you can check the checkbox in the parameter table to configure that parameter as a query string parameters. Query string parameters are only supported for primitive microflow parameters. * In the microflow, nanoflow, and rule editors, when dropping an object on a flow that is not vertical or horizontal, it will be positioned at the drop point instead of aligned to one of the adjacent objects. * We added a **Show** button to the **Select {Document Type}** dialog box in Studio Pro to quickly open the selected document. * We have removed `react-native-code-push` dependency. We recommend migrating to Mendix OTA instead. * Context menu options are now provided for the widgets that can be converted to the modern (Mendix React Client compatible) counterparts. The following conversions are now possible: data grid widgets can be converted to data grid 2 widgets, static and dynamic image widgets can be converted to image widgets, and drop-down widgets can be converted to combo box widgets. The conversion might require the latest modern widget versions from the Marketplace. For more information, see Mendix React Client's [Migration Guide](https://docs.mendix.com/refguide/mendix-client/react/#migration-guide). * We changed the button captions for the data grid 2 generate columns dialog box to make it clear that the generation can be skipped when selecting a data source. * We now support HTTP Method `DELETE` in a consumed REST service (beta). * We now support multiple parameters for values of request headers in a Consumed REST service. * You can now prevent published OData Actions from including a `@context` attribute in the response by specifying `metadata=none` in the `Accept` header of the request. * The request body for OData actions are now marked as required in OpenAPI if it has at least one required parameter. * We improved the CORS settings for published REST services. Studio Pro now requires a constant for Allowed origins. The previous default of All origins is not the right value in most scenarios. * We added the `com.mendix.core.ScheduledEventsCleanupBatchSize` and `com.mendix.core.ProcessedTasksCleanupBatchSize` runtime settings to configure the batch size for the periodic cleanup of `ScheduledEventInformation` and `ProcessedTasks`. * We now support calling stored **Procedures** with no parameters using the External Database Connector. You can browse through all **Procedures** in the **Browse database** tab. We also added a **Refresh** button to provide to quick access to the updated data. * The External Database Connector is now available for Studio Pro on Mac (Beta). * Data Importer is now available for Studio Pro on Mac (Beta). ### Fixes * We fixed a [known issue](https://docs.mendix.com/releasenotes/studio-pro/10.8/#ki-macos-context-actions) on macOS where context actions in the **App Explorer** and the **Edit** menu were not properly registered for the currently selected element. * We restored the original functionality in Azure file storage, where a container name can be specified in `com.mendix.storage.azure.BlobEndpoint` runtime setting. This fixes a [known issue](https://docs.mendix.com/releasenotes/studio-pro/10.6/#ki-runtime-settings). (Ticket 210679) * We fixed an issue where a concurrency error happened when retrieving a session while optimistic locking was enabled. (Tickets 183769, 198138) * We fixed an issue where a generic unique constraint validation error was thrown instead of a user defined one when multiple objects were committed at the same time. (Ticket 201463) * We fixed an issue where download file was not working on Android if the files encryption was enabled. (Tickets 204783, 204891, 211451) * We fixed an issue with breaking glyph fonts on some machines. (Ticket 206544, 207012) * We fixed an issue where dependency synchronization would fail with a CE9803 error when Gradle could not choose between different version variants (for example: guava:##.##.##-jre/guava:##.##.##-android) for certain libraries. We added a Gradle core plugin (jvm-ecosystem) to the buildscript to resolve this issue. (Ticket 206976) * We fixed an issue where the entered text does not get saved in the Text editor control. (Ticket 207346) * We improved the memory consumption in Studio Pro by resolving a memory leak caused by checkable menu items. (Ticket 207357) * We fixed an issue where using an object type decision in nanoflows it did not fall back to a generalization in case there was no path for the real entity type. (Ticket 207594) * We fixed an issue where custom content in pluggable widgets, e.g. Data grid 2 or selectable objects for the Combo box, were including the objects of the data source in **Save changes** and **Cancel changes** actions, even when it was only used for display. (Ticket 207911) * We fixed an issue where importing a JSON string with a length greater than 20000000 resulted in a runtime exception. We added the `mapping.import.MaxJsonReadingLength` runtime setting to manually configure the maximum length of a JSON string to resolve this issue. (Tickets 208462, 211077) * We fixed an issue when an entity with validation rules could not be moved from module to another module via **Move to** operation. (Ticket 208691) * We added a workaround for an issue in the Oracle JDBC driver that caused an exception about incorrect data types during object creation. (Ticket 209513) * We fixed an issue when the text box has an invalid layout in the SQL query editor dialog box. (Ticket 209558) * We fixed an issue where an unnecessary **Widget must be read-only** consistency error was triggered. (Ticket 209851) * We fixed an issue when the **Oops** pop-up window appeared when trying to move a remote entity with one-way navigable associations. (Ticket 210793) * We fixed an issue when the expression editor option does not get saved in the preference dialog. * We fixed an issue in the logic editors where sometimes the type of an output variable of an action showed as *(not set)*. * We fixed an issue where inserting an external action from an OData source into a microflow did not add the correct entities to the domain model. * We fixed an issue with opening multiple pages in a microflow that have a custom URL when also using a custom URL prefix in the Mendix React client. * In the Mendix React Client, we fixed an issue where bundling happened twice. * The template placeholder for page templates now no longer throws a consistency error when using the Mendix React client. * We fixed an issue where the workflow engine might fail with an `IllegalArgumentException` while persisting the workflow to the database. * We now show a proper user facing error when you try to set an outcome for an already completed multi-user task in workflows. * We fixed some spurious foreign key constraint violation errors when using the built-in database (HSQLDB) and foreign key constraints. * We introduced more consistency checks for **Send REST Request (beta)**. * We fixed an issue where resolving a consistency error for mapping document ran the whole consistency check instead of only the impacted documents. * We now let a consumed REST service skip response elements that are not supported, like arrays with items that are not all the same type. When this happens a warning is shown. * We fixed a bug related to the published REST services not specifying the wrong method in case of a 405 response. * We fixed an issue in the microflow, nanoflow and rule editors where some combination of splits, merges, and events was connected incorrectly when dragged onto a flow. * We reintroduced dropping documents from the **App Explorer** onto related actions in the logic editors. For example, now dropping a microflow onto a **Call microflow** action changes this action's target to the dropped microflow. * We now render the task queue icon on **Microflow call** actions and **Java action call** actions when they are executed in a task queue. * We fixed some features of resizing objects in the logic editors. Resizing from the center with the Shift key is back. The minimum step size for resizing is increased. Snap corner to corner while resizing is available now. * We fixed an issue that prevented the display of the icon for *commit actions with event handlers* in the logic editors. * In the logic editors, we re-added the initialized and changed attribute names to the default captions of **Create object** and **Change object** actions. * We fixed an issue where double-clicking on a newly added microflow object opened the microflow properties dialog box. * We fixed invalid placement of a moved object in a loop when moving the object causes the loop to resize in the logic editors. * We fixed an issue where, if the call microflow activity of the sub-workflow fails, the parent workflow still remained in progress. The parent workflow will now fail when any activity in a sub-workflow fails. * We fixed the problem that anonymous user objects were kept in the database when their associated anonymous sessions were deleted on application startup after a model update. ### Known Issues * Line endings in CSS files are not being handled properly, so when using [Revert All Changes](https://docs.mendix.com/refguide/using-version-control-in-studio-pro/) or performing other version-control operations, CSS files appear in the [Changes on Disk](https://docs.mendix.com/refguide/version-control-menu/#show-changes) dialog box. * Workaround: For details, see [this section](https://docs.mendix.com/refguide/troubleshoot-version-control-issues/#css-error) in *Troubleshooting Version Control*. * For some activities in the logic editors, the types of variables are not visible or shown as **Not set**. This is only a visual bug. (Tickets 205751, 207251) * A finished parallel split path that is removed from a running workflow instance wrongly leads to a versioning conflict. Please note that "path" was called "branch" in earlier versions.