9.7

Last modified: January 12, 2024

9.7.0

Release date: October 26, 2021

Go to Marketplace



New Features

Offline Deletes

We have added support for deleting objects in native mobile apps and offline-first progressive web apps. This can be done via the Delete object(s) activity in nanoflows and the Delete object(s) action on pages.

Deleted objects become immediately unavailable on the device, but they are deleted from the server only after synchronization. To synchronize deleted objects, use the Synchronize activity with the All objects or Unsynchronized objects mode. Also, when a full synchronization is done at startup (for example, because of a domain model or Mendix update), deletes are synchronized with the server.

For more details, refer to Offline-First in the Studio Pro Guide.

Native Over the Air (OTA) Update Support

With this release, we are eager to present a simplified approach for OTA updates for native mobile apps. OTA updates make it possible to provide new functionality or fixes to native mobile apps without having to go through the app store, which makes releasing a new version easier and is an enormous time saver.

From now on, providing an OTA update is as simple as deploying the model to the cloud (similar to what was done with hybrid mobile apps), as no third-party service (CodePush) is needed anymore. A native mobile app checks at startup whether there is an OTA update available, and if so, updates itself.

To enable this feature, go to your app’s Native phone navigation profile and enable the over-the-air updates feature. Then, build and release a new version of the mobile app using the latest updates (the UI will ask you to update if needed). After that, new deployments to the cloud will trigger OTA updates on the devices.

Improvements

MxAssist Logic Bot Improvements

This release includes a new version of the MxAssist Logic Bot with major improvements in the AI model, UI and UX, and performance! Check out these details:

  • The AI model has been re-trained with a fresh and substantially bigger dataset that includes more context-related features, microflow actions, and parameters. These have improved the recommendation accuracy, especially the top (first) recommendation.
  • The user interface has been completely redesigned with better integration and interaction with the microflow editor UI to avoid any overlaps. In addition, new controls and interfaces are introduced to give more control to the users.
  • The user interface responsiveness and interaction is now faster thanks to several performance optimizations that have reduced server calls by 92% and user CPU usage by 35% on average. The Logic Bot microservice is also deployed in more regions to reduce network latency.

In addition, in the decision context menu, the Logic Bot now shows expressions with user variables above expressions with system variables. Finally, the Logic Bot now triggers notifications so you can be notified about improvements.

Improved Access Rule Settings for Files

In Mendix, giving the Name attribute of a file document read rights allowed the end-user to download the file. In addition, giving write access was enough for the end-user to change the content of a file document. However, this did not allow for configuring file document objects that can be seen but are not downloadable. With this release, downloading a file document requires read access to the Contents attribute, and respectively, uploading requires write access to the Contents attribute.

When you upgrade your existing app, Mendix will automatically configure the access rights defined on the Contents attribute of each entity that specializes from System.FileDocument to align with the access right of the Name attribute to make sure that your app is backwards-compatible. Access rights will also be configured for external file entities that you use in your app.

Generation of Workflow and WorkflowUserTask Entities

In Mendix 9.6.0, we started overhauling the workflow model. One of the changes introduced there was that every workflow needed its own entity specialized from System.Workflow, and every user task needed a specialization from System.WorkflowUserTask.

To make modeling easier, these entities are now automatically generated whenever you create a workflow or add a user task. These entities are based on the workflow name and user task caption.

Since user tasks will most likely be re-captioned after addition, the generated entity name will also be kept in sync with the user task caption, as long as the entity name matches the generated one.

Other Improvements

  • We added checkboxes to show/hide unused documents in the Module Security dialog box. (Ticket 103824)
  • We added a checkbox named Refresh in client to the Send external object activity dialog box to refresh the data on the UI after the change.
  • When editing the parameter mappings of a Microflow call or Call nanoflow activity in the microflow/nanoflow editor, it is now possible to select a matching variable directly from a drop-down menu instead of typing it as an expression.
  • We added support for deleting objects in native mobile apps and offline-first progressive web apps.
  • We are now outputting many of the runtime statistics using Micrometer as well.
  • We now show a helpful message when MxAssist Performance Bot has no recommendations to display.
  • We added a checkbox named Delete the microflow after converting to the MxAssist Performance Bot recommendation window for the MXP006 recommendation. Also for the MXP006 recommendation, we now show a best practice code in a fix summary screen.
  • The Add-ons category is now always the last widgets category in the Toolbox pane and the Select Widget dialog box.
  • We added an Expand All button to the toolbar of the Toolbox in the tile view.
  • We reorganized the toolbars of the App Explorer, Data Hub pane, Connector, Toolbox, and selector dialog boxes to save more vertical screen space for the content.
  • We improved the performance of some common tasks. Users with large apps may especially see an increase in speed in some cases (for example, when finding the usages of a document).

Fixes

  • We fixed CVE-2021-42026 and CVE-2021-42025.
  • We fixed CVE-2021-42015. (Ticket 126829)
  • Using a Call REST service activity in your microflow no longer results in all data being sent. (Ticket 112095)
  • We fixed an issue with detecting when a push failed for private Git apps due to branch security settings. (Ticket 125236)
  • We fixed an issue with the reference selector’s select page property not working properly for specialized entities when the user has no access to the generalized entity. (Ticket 128755)
  • We fixed an issue in the runtime of published OData services where the microflow of an exposed virtual attribute retrieved objects by association and that list was empty. (Ticket 128843)
  • We fixed an issue where cancelling the Expression for dynamic classes dialog box did not revert the changes. (Ticket 128861)
  • We fixed the log message that incorrectly stated that database changes were rolled back, even if that was not possible. We now log correctly when the changes are rolled back and when that was not possible. (Ticket 129661)
  • We fixed an issue in the runtime when retrieving an association between two external entities from different modules. (Ticket 129687)
  • When adding an Autonumber attribute, the name is now properly quoted in the generated SQL, avoiding errors when the name is a reserved word. (Ticket 130773)
  • We fixed an issue that prevented a nanoflow from updating the object passed to it when triggered by a pluggable widget action. (Tickets 131544, 132032)
  • We fixed a bug where the Enable for Studio button in the Branch Line Manager was always enabled, even when the app did not support collaboration in Mendix Studio. (Ticket 132361)
  • We fixed an issue that occurred when adding updatable external entities to your domain model where the updatable associations immediately threw a consistency error.
  • We fixed an issue in the metadata of a published OData service where attributes were not marked as non-updatable in updatable resources with calculated attributes.
  • We fixed an issue in the runtime of the Send external object activity where the changes of a renamed attribute were not sent correctly.
  • We fixed an issue where an autocommitted object was sent from the browser to the runtime, committed, and the association table of a many-to-many association of type both on that object had too many entries.
  • We improved the branch line names that are displayed in the top bar and Recent Apps list.
  • We resolved some issues with button focus and the handling of the Tab key in the new Open App dialog box.
  • We fixed the text color of folders in the tree view that displays when you are performing dragging-and-dropping actions.
  • We fixed an issue with the selected item in App Explorer that occurred when you start an app.
  • When consuming an OData service that has updatable entities with key attributes, these key attributes are no longer updatable. It was already recommended not to change the values of these attributes, and now it is no longer possible.

Known Issues

  • There is a known issue for the scenario where there are multiple instances of the same identical object (meaning, with the same ID) assigned to different microflow variables, this object has a one-to-one association to another entity, and no changes have been made to the associated object. When you then set the association to the same value, only a single microflow variable points correctly to the new association, and the other variables have an empty association. (Ticket 168024)
  • In the Properties pane, you cannot copy, paste, or delete using keyboard shortcuts.