10.4

Last modified: January 23, 2024

10.4.1

Release date: November 9, 2023

Go to Marketplace

Fixes

  • We fixed a freeze of the Studio Pro UI that occurred while trying to synchronize managed Java dependencies in the background.

Known Issues

  • A finished parallel split branch that is removed from a running workflow instance wrongly leads to a versioning conflict.
  • Line endings in CSS files are not being handled properly, so when using Revert All Changes or performing other version-control operations, CSS files appear in the Changes on Disk dialog box.
    • Workaround: For details, see this section in Troubleshooting Version Control.

10.4.0

Release date: October 31, 2023

Go to Marketplace

New Features

Redesigned Logic Editors

We are releasing the beta version of our redesigned logic editors. We have enhanced the usability of the MxAssist Logic Bot, added more support for keyboard navigation, and invested in more developer experience details to make the interaction with the canvas even more fluent.

Creating New Microflows and Nanoflows

When selecting a microflow or nanoflow for the call microflow or call nanoflow client action, you can create a new one from the selector as well. In this case, a dialog box is shown where you can now choose the data view, snippet, page parameter, or available selection from which the parameter must be created in the new microflow or nanoflow.

Adding Workflow Activities

We added a feature for adding an activity to a workflow from the activity’s context menu. We also added pop-up animation to workflows for quickly adding an activity. For more information, see the Adding Elements to a Workflow section in Workflows.

Export the App Model as JSON

We added a command line option to the mx command line tool called dump-mpr. This exports the app model of a Mendix App as JSON data. See the documentation for more context.

Improvements

Performance Improvements

  • We made some performance improvements to the versioning logic of the workflow engine. (Ticket 189343)
  • We improved the performance of the Build deployment structure step when building an app, especially for those apps that contain many expressions referring to a variable other than $currentObject. The time needed for Exporting pages has decreased up to 95%. (Ticket 196806)

Pluggable Widget Selection Improvements

Selections of pluggable widgets (such as Data Grid 2 and Gallery) can now be used by widgets elsewhere on the page. You can pass the selection as an argument to a microflow or nanoflow (single and multi-selections) or to an Open page action (single selections only).

It is also possible to select a pluggable widget as the Listen to data source of a data view. If the pluggable widget is inside a repeater (like a list view), its selection is only available to widgets that are also inside that repeater. Otherwise, the selection is available on the entire page. This improvement really simplifies the modeling of pages where part of the page needs to update when a selection changes.

We also made the Delete action configurable. You can now specify which objects you want to delete, which can be an available selection, any surrounding data view, or a page or snippet parameter. For more information, see the Delete Object(s) section in On Click Event and Events Section.

Other Improvements

  • We added support for the following languages: Afrikaans (South Africa), Southern Ndebele (South Africa), Southern Sotho (Lesotho), Southern Sotho (South Africa), Southern Sotho (Zimbabwe), Swati (Eswatini), Swati (South Africa), Tsonga (South Africa), Tsonga (Zimbabwe), Tswana (Botswana), Tswana (South Africa), Tswana (Zimbabwe), Venda (South Africa), Venda (Zimbabwe), Xhosa (South Africa), Xhosa (Zimbabwe), and Zulu (South Africa). (Ticket 198107)
  • We made the Data Grid 2 configuration easier by automatically creating columns with filters and create, edit, and delete buttons when an entity is selected.
  • When excluding design properties from modules, we no longer generate consistency errors for every usage of those design properties. Instead, a consistency warning is raised for your app modules. For Marketplace modules, no consistency error or consistency warning is raised when excluded design properties are being used.
  • We improved the UI for microflow and page URLs. You can now copy the example URL, the dialog box has been made fully resizeable, and error descriptions have been made more helpful. You can also now use the {MyObjectParam} syntax instead of having to write {MyObjectParam/Id}.
  • We improved the layout of the Version Control > History view by adding a new icon and specific information about merge commits.
  • We added a feature where you can indicate that you want to locally create and update the objects of external entities, even when the service does not support create or update.
  • We now show the string length and enum name for the attributes on the Business Events document and on the dialog box for editing and adding business events.
  • We added a prefix to the name of a business event entity that is created. If you decide to implement both the publishing of and subscribing to an event, there are two entities created automatically, and one of the entities is automatically renamed to {eventName}_2. With a prefix, this name will be more meaningful.
  • We now always display the default entity image in the domain model editor and in the Image property in the Properties pane when a custom image is not specified.
  • We now ignore the non-writable attributes of objects that are passed to OData actions as parameters. This is now in line with the behavior of updating entities through the OData protocol. Before, an action call that contained values for non-writable attributes (such as auto-numbered or calculated attributes) failed the request.
  • When adding a new microflow to a published OData service, Studio Pro now adds a microflow that has entity access enabled.
  • We added validation for the Default value property of Integer, Long, Decimal, and AutoNumber attribute types in dialog boxes and the Properties pane.
  • We added support for opening a properties dialog box in read-only mode in the Properties pane.
  • The text input fields in the Properties pane now respect the max length constraint (for example, the Summary in a published OData service and the default value in a domain model entity attribute with the max length specified).
  • We improved the layout of pop-up windows by correctly placing and aligning the elements on the form.
  • We improved the layout of some dialogs boxes.
  • We slightly improved the deployment bundle size by removing unnecessary web files.
  • We optimized server responses and prevented the returning of unnecessary data.
  • We now support XPath variables as the second argument of the contains, starts-with, and ends-with functions.
  • We added a validation error to disallow the legacy XML attribute AllowNonPersistableEntities, since it does not do anything for pluggable widgets.
  • We improved the runtime error message that may be received after adding certificates.
  • We improved the property types detection in the JSON structure by taking into account all the possible types and chooseing the biggest one (for example, decimal is bigger than integer).
  • We added support for PostgreSQL 16.

Fixes

  • We fixed a known issue that occurred where selecting a container widget in Structure mode made it appear that it did not have any properties.
  • We fixed a known issue where additional commits were created unnecessarily when merging a branch into a second branch which already contained all the commits from the first branch. (Tickets 197365, 197397, 197756, 198059, 198288)
  • We fixed an issue where queued tasks (including scheduled events) got stuck in the Running state when database connection issues occurred. (Tickets 176015, 177221, 181767, 184886, 193669, 195602, 195879)
  • We fixed an issue where queued tasks got stuck in the Running state if a StackOverflowError or InterruptedException occurred during the execution of the task. (Ticket 187973)
  • We fixed an issue where an H2 heading tag had an empty id attribute when exporting documentation. (Ticket 188128)
  • We fixed an issue where double-clicking the close button of a pop-up window while multiple pop-up windows were open also closed the underlying pop-up windows. (Ticket 188414)
  • We fixed an issue where branch lines were not sorted alphabetically during a branch merging operation. (Ticket 192492)
  • We fixed an issue where the action for closing a pop-up window did not work correctly if it targeted an action button and there were multiple instances of that button in the app. (Ticket 192989)
  • We enabled the latestHttpResponse parameter in responses from web services in case of failure. (Ticket 193998)
  • We fixed an issue where the session ID was incorrectly null in WebSockets. (Ticket 195691)
  • We fixed an issue in the metadata of published OData services that occurred when publishing associations as object IDs. When the user has access to the association but not to the other entity, the Mendix Runtime $metadata now no longer filters out the property. (Ticket 195835)
  • We fixed an issue where message transmission optimization mechanism (MTOM) requests included the Content-ID of the main SOAP payload without the required square brackets. (Ticket 196343)
  • We fixed an issue where startup synchronization failed when some files were missing. (Ticket 196961)
  • We removed the resource path and parameter details from the “400 bad request” error message to avoid cross-site scripting vulnerability false-positives for published OData services. (Ticket 197293)
  • We mitigated CVE-2022-1471, CVE-2022-25857, CVE-2022-38751, CVE-2022-38752, CVE-2022-41854, and CVE-2022-38750. These CVEs do not pose any apparent risk for Mendix customers.
  • We fixed an issue where it was not possible to use the constrained by functionality with a reference set selector widget when the configured attribute path did not start from the direct enclosing data container.
  • We fixed an issue where existing page URLs threw a “onflicting URL” consistency error when upgrading due to a backwards compability problem. This is now fixed and all existing page URLs work again.
  • We fixed an issue where changing the type of a page or microflow parameter caused an error when navigating to it via a URL after doing a hot reload.
  • We fixed an issue where dropping a Call external action activity in a microflow caused the activity to be placed at an incorrect location in the canvas.
  • We fixed an issue where excluded microflows publishing business events caused a buildtime error.
  • We fixed an issue where disabled microflow activities for publishing business events caused a buildtime error.
  • We fixed an issue where calling a microflow as an unauthorized user did not show the login screen or throw an error (depending on whether the user was anonymous).
  • We fixed an issue in the microflow properties dialog box where it was not possible to toggle the Expose as microflow action and Expose as nanoflow action options.
  • We fixed an issue with the end event form where the deletion of the entity used as a return type crashed the form.
  • We fixed an issue in the Workflow Engine that caused the Mendix Runtime Server to run out of memory after deploying a new version of a workflow that had many parallel splits.
  • We fixed an issue in the MxAssist Logic Bot where it created a non-unique variable when a Retrieve from Database recommendation was selected.
  • We improved how the MxAssist Best Practice Bot handles invalid sequence flows so that recommendations can still be shown for MXP012 and MXP14.
  • We fixed an issue where configuring invalid delete behavior was allowed on associations with external entities. Studio Pro now only shows the valid options. We also added a consistency error to apps that already contain incorrectly configured delete behavior for external entities.
  • We fixed an issue where deleting an entity used in an import mapping led to an error coming from the import mapping Properties pane.
  • We fixed an issue in which the consistency check for the correct ownership of an association was not applied to pluggable widgets with association properties that were not linked to a data source.
  • We fixed an issue where parameters for OData actions were lost when using custom authentication.
  • We fixed an issue where revisons were not sorted correctly on the Version Control > History view.
  • We fixed an issue where an error was shown if a user immediately committed after a synchronization of managed dependencies had been started.
  • We fixed an issue where the errors list did not get refreshed when an error occured while downloading a module from the Marketplace.
  • We fixed an issue where SVG files were not pre-cached in a progressive web app.
  • We fixed an issue with the creation of a new database from Studio Pro when using MySQL or MariaDB.
  • We fixed an issue where extraneous directories created by the Gradle build tool were included in an exported deployment package .mda file.

Known Issues

  • A finished parallel split branch that is removed from a running workflow instance wrongly leads to a versioning conflict.
  • Line endings in CSS files are not being handled properly, so when using Revert All Changes or performing other version-control operations, CSS files appear in the Changes on Disk dialog box.
    • Workaround: For details, see this section in Troubleshooting Version Control.