Release date: March 28th, 2018Download
With this release, we are providing even more features to nanoflows so that the offline logic can be as powerful and ubiquitous as the online logic.
- It’s now possible to trigger nanoflows from on change, on leave, and on enter events, as nanoflows are available for all input widgets. Moreover, all action types are now supported, so you can go wild with interesting combinations. For example, it’s now easy to save changes immediately when a check box is checked and to open a pop-up page with the referred object when changing the value in an input reference set selector. With nanoflows, your imagination is the only limitation!
- You can now trigger nanoflows from custom widgets as well. For more information, see XML in the Mendix Reference Guide and Namespace: data in the Client API.
- You can now use the log message action to print a message to the browser console. This can be very useful for debugging or troubleshooting purposes. Note that thanks to client log forwarding, these messages will also appear in your normal application logs.
Desktop Modeler Look & Feel Improvements
After receiving feedback from our users, we made a number of changes to improve the new look and feel of the Desktop Modeler.
- We updated several icons to make them stand out more.
- We changed the microflow font to improve readability.
- We adjusted some parts of the Desktop Modeler so they look better on high DPI displays.
- We made small tweaks to the look & feel to increase usability.
Logging is an essential tool for understanding and troubleshooting application behavior. With this release, we have greatly simplified how one can access logging, as we now incorporate logs produced by the mobile hybrid app and logs produced in the browser into the Desktop Modeler’s Console pane (previously, the Console pane showed only the Mendix Runtime’s logs). These logs include both explicit log statements printed by the system as well as under-the-hood errors.
As you might know, when you click Run Locally while your project is already running and there are only page changes, Mendix does a so-called “instant update” that quickly reloads your page in the browser. This takes significantly less time than a full deployment, and it can save you minutes (in the case of large projects) of precious time. This is because with this release, we are thrilled to announce that you will be hitting an “instant” path for almost any change you do in the Desktop Modeler in terms of the creation, renaming, modification, and removal of microflows, nanoflows, pages, snippets, layouts, folders, and texts. Almost every change that does not affect domain models, services, or Java actions has been made faster.
Our benchmarks show that an “instant update” is up to 90% faster than a full deployment, so this will have a HUGE impact on your productivity. This new feature will save you many minutes per day and hours per week!
Hybrid Mobile Applications
We improved the deployment speed for projects producing hybrid offline applications or hybrid applications that use resources from disk.
Our benchmark showed up to a 15-second reduction in both deploy and redeploy times.
Shortcut Key for Finding Usages
We added a shortcut key (Ctrl+Alt+F) for quickly finding the usages of a selected entity, attribute, or document.
Better Autocomplete Search
In autocomplete, a
contains search is now used instead of a
starts with search.
Java Action Call Improvements
We made return values of Java action calls optional, so calls without return values will not clutter your microflows with temporary variables anymore.
We also made it faster to configure Java action calls by providing more useful auto suggestions like
empty and Runtime tokens.
- We introduced an option in published web services where you can optimize the XML, which means that associations no longer need extra XML tags.
- It is now possible to use a broader set of microflows in REST operations. It is no longer required to return a
System.HttpResponseobject, as you can also return file documents, images, strings, and integers. You can also post binary data to a published REST operation. In order to set HTTP headers, the microflow can have
System.HttpResponseas a parameter.
- We added the possibility to authenticate to a published REST service using an active browser session.
- It is now possible to publish and consume REST operations with
- You can now go from the Desktop Modeler to the interactive documentation page of a REST service with one click (when the application is running).
- The Mendix mobile app now supports running offline apps. You can scan the QR code for your offline app in the View Hybrid Mobile App dialog box. If your project contains online as well as offline hybrid apps, you can switch between the QR codes via the Use offline profile check box. This feature currently only is available when running locally and will be added when running in the cloud soon.
- We fixed the issue where data was missing in an offline app when it was configured to use an association as a data source. (Tickets 61768, 61916)
- When a microflow with a generic object (which was not accessible due to security) was called with a specialization of that object (which was accessible), an exception occurred in the browser console. This has been fixed. (Ticket 56700)
- We fixed the issue where a data grid or template grid with an XPath or database source showed uncommitted changes. (Tickets 55421, 58075, 59269, 60008, 61654, 62092)
- The reason phrase of a
System.HttpResponseentity is no longer limited in length.
- We fixed the issue where a page reload was required for the correct evaluation of access rules with XPath constraints on persistent entities. (Ticket 61574)
- We fixed the NullPointerException that occurred when a commit of an empty binary attribute was undone. (Ticket 60731)
- We fixed the issue where a one-to-one association was not always cleared correctly. (Ticket 61674)
- When formatting week numbers using the custom format symbol
w, the resulting value was often incorrect. It is now based on the user locale and the First day of the week setting in the Desktop Modeler project Settings. Additionally, the uppercase
Yformat symbol was added for the year corresponding to the week number (which may be different from the actual year of the date). (Tickets 59589, 60844)
- If a pop-up page had both a custom close action and an on-change action on one of its widgets, closing the pop-up page with the close button triggered the close action before the on-change action when using Internet Explorer. This has been fixed. (Ticket 61700)
- The order of the options of a drop-down menu search field were sometimes not the same ad the order configured in the Desktop Modeler. We fixed this for you. (Ticket 53628)
- We resolved several layout issues for high-resolution displays. (Ticket 50107)
- We fixed the error that occurred when using Run Locally while the app was already running with the Bundle widgets locally setting enabled. (Ticket 62445)
- We fixed the issue with REST Publish where custom headers got lost if an operation returned a very large response. (Ticket 63051)
As mentioned in Fixes, we changed the behavior of data grids and template grids with XPath or database data sources. These widgets no longer show uncommitted changes. This behavior is now aligned with Mendix 6.7 and earlier versions.
- An image widget with an on-click action configured to call a microflow may fail to execute when a default image is shown. (Ticket 62961)
- In some situations, an object associated to another object cannot be committed during the execution of a before/after commit event, resulting in an error such as “Object of type ‘MyModule.MyEntity’ with guid ‘12345’ cannot be updated, as it does not exist anymore.” For example, consider two new objects
A(parent) is associated with
Ahas a before- or after-commit event. In this event,
Bwill be changed and committed. If you then commit
Bwill be marked as ‘autocommitting’. Because of this, committing
Bin the before- or after-commit event of
Awill fail, as it expects
Ato already exist in the database, which is not yet the case. (Tickets 59099, 59288)
- Workaround 1 – don’t commit (a child) in a before-commit event, as the child will already be autocommitted by Mendix.
- Workaround 2 – commit the child object before committing the parent object.