8.14

Last update: Edit

8.14.1

Release date: October 5th, 2020

Download

Fixes

  • We fixed an issue where containers and images that had an action configured combined with a fixed height had unaligned content in native apps. (Ticket 108373)
  • We fixed an issue in the list view widget where design properties were not applied for the list items in native apps. (Ticket 108373)
  • When Show label was set to No in a check box widget, the height was too big when the check box was placed in a layout grid with vertical orientation in native apps. This has been fixed. (Ticket 108373)

Known Issues

  • When deleting a branch in Branch Line Manager, you will get an error saying that you cannot remove the main line. (Tickets 108885, 109072)
    • Workaround: You can use TortoiseSVN to delete a branch. Right-click an empty space in your app project’s folder and select TortoiseSVN > Repo-browser from the context menu. In the Repository Browser window, navigate to the branches folder, right-click the folder with your branch’s name, and select Delete. Finally, enter a commit message and click OK.
  • When you update a consumed OData service with a new version from Mendix 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 project and opening it again fixes this issue.
  • In certain situations, there is a performance degradation regarding the Delete object(s) microflow activity and the corresponding Java API. This occurs when there are microflow variables containing large lists of entities in scope. The fix for this will follow shortly.
  • When microflows are executed in a context without an authenticated user (meaning, as a background job or as a REST service that does not require authentication), debugging fails. An error message appears in the log and breakpoints are not triggered.

8.14.0

Release date: September 29th, 2020

Download

New Features

Data Hub

As of this release, Mendix Data Hub is available in Mendix Studio Pro.

Every organization has apps containing valuable data in different applications. With Mendix Data Hub, you can use data from different sources in your app without having to deal with complex integrations. All you need to do is search for the data, add it to your domain model, and use it.

If your organization has a Data Hub license, you can search for external data sources in the Data Hub pane in Studio Pro. From there, you can open the Data Hub Catalog for more details on the data found and you can drag and drop the data on your domain model as external entities. The resulting app will always show the latest version of the consumed external data.

For more information, see the Data Hub Guide.

Dynamic Classes

Tired of duplicating your widgets just to give them some highlighting when they require the end-user’s attention? Ever wanted to make your widget be styled dynamically? Wish no more! We have introduced a dynamic class property on all widgets that enables specifying an expression that computes class name(s) to apply. Styling will be updated automatically as soon as the data changes (just like how our long-beloved conditional visibility works).

Using Expressions & Text Templates in Context of a Data Source for Pluggable Widgets

A powerful feature we introduced in version 8.12 for pluggable widgets is that you can retrieve attribute values from a data source, which enables getting a list of attribute values without having to write the logic to retrieve the data.

Great news! You can now also link the expression property and text template property to a data source, which makes it possible to use the object of the data source in the expression and in the text templates parameters. This will give your end-users more control and flexibility when using your widget (for example, to format a currency or to use some additional logic).

Native Mobile Navigation

When you are designing and building an application, one of the most important aspects to focus on is the end-user flow. Especially with mobile apps, end-users have specific expectations of what should happen and how the app should behave every step along the way. In order to help you build apps that meet the expectations of your end-users, we have extended the native navigation capabilities on two fronts – pop-up windows and control over history.

Pop-Up Windows

Sometimes you want the end-user to focus on a very specific task, such as scanning a QR code or completing a wizard with multiple steps. Pop-up windows are perfect for such scenarios, as their appearance and transition behavior clearly indicate to the end-user that they are in a sub-flow of the application. From now on, you can also use pop-up windows in native mobile apps by setting the layout type to Pop-up.

Control Over History

We have extended the Close page activity with the ability to close multiple pages at once. This enables you to close an entire sub-flow of your application in one go.

Next to that, we now enable closing one or more pages as part of the Show page activity. This gives you fine-grained control over end-user flows, as you can decide what is visible when the end-user navigates back. Alternatively, you can prevent the end-user from navigating back entirely by using the Clear history option for the activity. This is useful when navigating from, for example, introductory screens to the real landing page of your app.

Improvements

  • For image and file properties, we now properly perform security access checks.
  • The native-mobile date picker widget on iOS now follows the dark mode settings as configured in Atlas UI instead of the OS.
  • We added a style property to the native-mobile date picker widget that enables adjusting the picker’s text color on iOS. For more information, see Native Mobile Styling.
  • We added support for SVG in the the native-mobile image viewer widget.
  • We improved the native widgets by adding disabled properties and styles to give end-users better visual feedback on whether a widget is disabled or not. For more information, see Native Mobile Styling.
  • We improved the accessibility of web list view items by setting the tab index, role, and key events in the DOM when a click action is set.
  • We made it possible to style the click feedback of the clickable elements for all our native widgets. For Android it was already possible to set the rippleColor, and now for iOS you can specify the underlayColor and activeOpacity. For more information, see Native Mobile Styling.
  • The XPath contains, starts-with, and ends-with string functions are now case-insensitive in DB2.
  • We now show a user-friendly error message when you try to downgrade a database version.
  • We improved the performance of simple count queries in MS SQL.
  • We have significantly improved the performance of both the regular Synchronize activity and the Synchronize to device activity by around 4-5 times in most test cases. Note that this can vary depending on your network, device, size, and amount of objects. Please note that we stil recommend limiting the size and amount of files, and when working with many objects (for example, 1000+), using the Synchronize to device option. For questions or advice, reach out to your CSM or partner manager to discuss.
  • In published OData services, you can no longer leave the Version field empty. For existing app projects that upgrade, we set the version to 1.0.0 when it is empty.
  • We added Debug logging to the process of running your app locally in Studio Pro to diagnose issues. To enable it, change the log level in studiopro.exe.config. (Ticket 103119)
  • We moved the File Comparison and Enable Private Version Control settings from the Advanced tab in Preferences to the new Version Control tab.
  • We reduced the size of the Mendix deployment by removing the styles/web/sass and styles/native folders. The files in these folders are not required at runtime. The following files were also removed from the Mendix deployment for the same reason: settings.json, settings-native.json, and styles.js.

Fixes

  • We fixed an issue that caused a crash when committing to an app project after renaming or deleting a module. (Tickets 69006, 107979)
  • When you used a client expression or text template with an attribute over association and an attribute of the context object, this sometimes resulted in error log lines in the Console. This should no longer be the case.
  • If a data view is configured to listen to a widget inside a repeatable container (such as a list view or template grid), Studio Pro will now show an error. This prevents the data view in the client from attempting to listen to multiple copies of a widget at the same time, which resulted in undefined behavior. (Ticket 102657)
  • We improved the performance of the retrieval of associated objects when the data source is a microflow or association. (Ticket 101782)
  • We fixed an issue where a text box in the client could not be made valid again by removing the invalid input. (Ticket 105550)
  • When an image viewer was placed into a repeatable containment pluggable widget, it did not always render correctly. This has been fixed.
  • If a tab was configured with refresh on show, double-clicking it fast enough in the client caused the tab to never finish loading. This has been fixed. (Ticket 102275)
  • We fixed an issue where an attribute from a generalization linked to a pluggable widget data source resulted in an error.
  • We corrected the ZoneId for the time zone in sessions. (Ticket 105685)
  • We fixed an issue in which long running actions were not correctly taken into account for session deletion in a clustered setup. (Ticket 100705)
  • We fixed an issue with native mobile apps where setting the size of some SVG images did not work. (Ticket 103817)
  • We added a consistency check named Role-based home page must be visible for the selected role for the Native mobile navigation profile.
  • We fixed an issue where copying settings from a navigation profile resulted in an exception.
  • We fixed an issue in the native mobile text box widget in which combining autocomplete and text box as a password resulted in a non-password field. (Ticket 106063)
  • We fixed the initial center position of dialog boxes when using a layout with a scroll container. (Ticket 105797)
  • We fixed the NoSuchElementException error that occurred when executing certain complex queries. (Ticket 103624)
  • We fixed the use of self-references in sorting.
  • We fixed the use of amount/offset in the retrieval schema for OQL union queries. (Ticket 104888)
  • We added a consistency check to prevent the passing of non-persistable entities returned from a microflow to another microflow called from a nanoflow that is accessible through an offline navigation profile. (Ticket 103607)
  • We fixed a bug where importing data mapping to an AutoNumber attribute could not be searched in the database based on that number. (Ticket 99823)
  • When moving an entity between modules, a cross-module reference was connected to the entity, and if a cross-module association was created and the child entity was deleted, the association was owned by the parent entity and was not removed. When the entity being moved had the same name as the previously removed entity, it was not connected to any existing cross-module association that referred to the target module and an entity with the same name. This has been fixed.
  • The properties dialog for items in the bottom bar of the native navigation profile inadvertently showed a field to override the page title. This was unintended and lead to unpredictable results. We have removed this field.

Deprecation

  • The MxMetaObject.getEnumKVPairs Client API call has been deprecated. You can use getEnumMap instead.
  • Starting with version 8.16, we will drop support for the following database versions that will no longer be supported by vendors:
    • Oracle 12.2
    • MySQL 5.7
    • MariaDB 10.1

Known Issues

  • When deleting a branch in Branch Line Manager, you will get an error saying that you cannot remove the main line. (Tickets 108885, 109072)
    • Workaround: You can use TortoiseSVN to delete a branch. Right-click an empty space in your app project’s folder and select TortoiseSVN > Repo-browser from the context menu. In the Repository Browser window, navigate to the branches folder, right-click the folder with your branch’s name, and select Delete. Finally, enter a commit message and click OK.
  • When you update a consumed OData service with a new version from Mendix 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 project and opening it again fixes this issue.
  • In certain situations, there is a performance degradation regarding the Delete object(s) microflow activity and the corresponding Java API. This occurs when there are microflow variables containing large lists of entities in scope. The fix for this will follow shortly.
  • When microflows are executed in a context without an authenticated user (meaning, as a background job or as a REST service that does not require authentication), debugging fails. An error message appears in the log and breakpoints are not triggered.