Mendix Studio pro

10.5.0
Stable
November 28, 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: November 28, 2023** ### New Features #### XPath Builder We have added a new visual editor for writing [XPath](https://docs.mendix.com/refguide/xpath/) constraints. The XPath **Builder** is an easy-to-use and intuitive tool for quickly developing the most common database constraint use cases without having to learn and write XPath. The XPath Builder is currently in beta. You can open the new visual builder in the **XPath constraint** dialog box by clicking **Builder (beta)** (and then switch back to the XPath expression editor by clicking **XPath expression**). The XPath Builder can also be made the default editor via **Edit** > **Preferences** > [New features](https://docs.mendix.com/refguide/preferences-dialog/#new-features). Some advanced XPath features are not yet supported by the XPath Builder. For those cases, a message is shown stating that the XPath constraint contains advanced features and is not yet supported. Along with the introduction of the new visual XPath Builder, we have also taken the opportunity to combine the **Database** and **XPath** data sources under the **Database** data source. #### Other New Features * We added the option to use an [Object type decision](https://docs.mendix.com/refguide/object-type-decision/) and the [Cast object](https://docs.mendix.com/refguide/cast-object/) activity in nanoflows. This is based on an [upvoted idea from Fabian Recktenwald](https://forum.mendix.com/link/space/microflows/ideas/3227) submitted to the Mendix Idea Forum. Thanks, Fabian! * We added a new [Retrieve workflows](https://docs.mendix.com/refguide/retrieve-workflows/) microflow activity that enables retrieving all the **System.Workflow** objects that are associated with the provided workflow context object. * You can now use the `length` expression with list variables in both microflows and nanoflows. * We introduced a new attribute to the **System.Image** entity that is known as **EnableCaching**, which can be used to enable or disable image caching. This attribute's default value is set to **True**. * We added the option to change the default URL prefix `/p/` for page and microflow URLs. ### Improvements #### MxAssist Logic Bot Improvements * MxAssist Logic Bot in the [logic editors (beta)](https://docs.mendix.com/refguide/logic-editors-beta/) now does the following: * Parameterizes a decision for a rule that returns a Boolean or an enumeration. * Excludes recursive calls for calling microflow call actions, nanoflows, and rules (consistent with the microflow call action). * Parameterizes for [Create list](https://docs.mendix.com/refguide/create-list/) activities and shows the available entities. * Supports adding all case flows for an enumeration decision (including setting the case on a sequence flow that has no case value). * Always includes the recommendation to retrieve the first object from the database for a given entity as well as the unconstrained recommendation. * Uses **Create {entity} object** instead of just **Create {entity}** in the menu text. * Uses just the exposed name without a prefix (via the [Java action call](https://docs.mendix.com/refguide/java-action-call/), [JavaScript action call](https://docs.mendix.com/refguide/javascript-action-call/), and [Microflow call](https://docs.mendix.com/refguide/microflow-call/) activities) in the menu text for calls to exposed documents. * MxAssist Logic Bot in the logic editors (beta) now has the following: * A decision in the safe list for rules. * Improved support for matching microflow call parameters to available variables. * Improved support for matching Java action call parameters to available variables in addition to simplified sorting. * Improved menu text for the [List operation](https://docs.mendix.com/refguide/list-operation/) activity that is more consistent with the List operation properties form. #### Other Improvements * When using Oracle, the maximum length of names of database objects like tables and indexes has been increased to 128. (Ticket 200714) * We renamed the **XPath** data source radio button label in the **Data Source** tab for widgets to **Database**. * The metamodel is now loaded in parallel during app startup. This should make your app startup slightly faster in cases of high network latency. * We improved the interaction of app opening and closing with the background syncing of Java dependencies. * An app can now publish a REST service on the URL prefix `ws/` or `odata/`, provided it has no published web services or published OData services, respectively. * We improved the data type selection for published REST operation parameters. Body parameters cannot have a primitive data type and query (choosing these values would lead to a consistency error, anyway), and path and header parameters can only have primitive data types. * Studio Pro now detects when an external date/time attribute that represents only a date has been localized and gives a consistency error. * We introduced a consistency error for associations that are traversed from child to parent in microflow and nanoflow expressions. This was not prevented before, but it resulted in a Mendix Runtime exception. * The UI of published OData services now consistently refers to published entities as "published entities" (as opposed to "published resources"). * We improved the [Go to](https://docs.mendix.com/refguide/go-to-option/) functionality by excluding Marketplace modules and excluded documents from the search by default. Marketplace modules and excluded documents can be included in the newly added filter options. * We improved the regeneration of outcomes in workflows when enumerations or enumeration values are deleted. * For pluggable widgets with the system property `label`, you can now use the [setLabel](https://docs.mendix.com/apidocs-mxsdk/apidocs/pluggable-widgets-property-types/#setLabel) attribute in the `association` and `attribute` properties to automatically set the widget's label in Studio Pro. * Best Practice Bot now saves its settings in a more reliable way upon closing an app. This may help with larger apps. * We changed the icons for and the background color of loops in the microflow, nanoflow, and rule editors. * We updated the bundled JDK to version 11.0.20.1. ### Fixes * We fixed an issue where the [scroll container](https://docs.mendix.com/refguide/scroll-container/) widget had two scroll bars in some cases. (Ticket 187605) * We fixed an issue where the **LastLogin** attribute was not readable when it should have been. (Ticket 192759) * We fixed an issue where using the `System.changedBy` or `System.owner` association in an XPath constraint variable resulted in an error during deployment (for example, `[MyFirstModule.Order_User=$currentObject/System.changedBy]`). (Ticket 197570) * We fixed an issue in consumed web services where making requests with attachments failed due to a missing `Content-Transfer-Encoding` header. (Ticket 199235) * We fixed an issue where negative numbers were not allowed in XPath constraints. (Ticket 200357) * We fixed an issue in the metadata of published OData services using OData v4. (Ticket 200743) * We fixed a freeze of the UI that occurred while trying to synchronize managed Java dependencies in the background. (Tickets 200938, 201025, 201225) * We made the following fixes for MxAssist Logic Bot in the logic editors (beta): * The generic recommendation for the [Create variable](https://docs.mendix.com/refguide/create-variable/) activity no longer incorrectly creates a [Change object](https://docs.mendix.com/refguide/change-object/) action. * The generic recommendation for the [Show message](https://docs.mendix.com/refguide/show-message/) activity no longer incorrectly creates a [Show page](https://docs.mendix.com/refguide/show-page/) action. * We fixed the sorting of [Microflow call](https://docs.mendix.com/refguide/microflow-call/) activity recommendations. * We fixed the output descriptions of the [aggregate list](https://docs.mendix.com/refguide/aggregate-list/) activity. * We fixed the updating of [loop](https://docs.mendix.com/refguide/loop/) contents while the loop is being dragged. * We fixed an issue where the initial menu was missing its first item. * We removed constraint that caused the [Delete object](https://docs.mendix.com/refguide/deleting-objects/) activity recommendation to exclude some variables according to their type. * Applying a List operation recommendation now creates the List operation with its variable set. * We fixed an issue in the **Entity** dialog box where one-way navigable associations did not appear in the list of associations for the child entity, which allowed them to be added again. * We fixed an issue where an "oops" pop-up window appeared when trying to generate a value for an entity retrieved via a one-to-one association. * We fixed an issue where validation rules were missing the assigned attribute when copying and pasting entites between modules. * We fixed an issue where inherited attributes from a generalization could not be used in a URL template. * We fixed an issue where a URL template using the shorthand notation `{Entity}` led to a malformed URL in the client. * We updated the list of valid time zone codes displayed in the Mendix Runtime **Settings** dialog box. * We added a consistency check for invalid time zone codes. * We added a critical warning during startup in case the time zone code in the model is not recognized by the running JVM. * We fixed the snap-to-object behavior in the [logic editors (beta)](https://docs.mendix.com/refguide/logic-editors-beta/) that occurs when the dragged object starts inside of a loop. * We fixed an issue where items in the top bar of the logic editors (beta) were selectable. * We fixed the `location` header in responses of POST calls in published OData services so that it now has a URL-encoded value. * We changed the servlet and web socket API dependencies for Java actions. We replaced`javax.servlet.servlet-api.jar` with `org.eclipse.jetty.toolchain.jetty-servlet-api.jar`, and we replaced `javax.websocket.websocket-api.jar` with `org.eclipse.jetty.toolchain.jetty-javax-websocket-api.jar`. ### Deprecations * We dropped support for PostgreSQL 11, as it is no longer supported by the vendor. ### Breaking Changes * We upgraded the MariaDB JDBC driver (also used for MySQL) to [major version 3](https://mariadb.com/kb/en/about-mariadb-connector-j/). * If you use a database JDBC URL with MariaDB or MySQL, you may need to use different [connection properties](https://mariadb.com/kb/en/about-mariadb-connector-j/#connection-strings). * When using MySQL, the [insert performance](https://jira.mariadb.org/browse/CONJ-1077) of many objects may be affected. * When using MySQL, setting a query timeout [has no effect](https://jira.mariadb.org/browse/CONJ-1107). ### Known Issues * A finished parallel split branch that is removed from a running workflow instance wrongly leads to a versioning conflict.