As promised I want to give you an update on the results of the IdeaForum in 2015. It is really amazing to see how many ideas have been posted! Also a bit overwhelming sometimes, I have to admit that ;) Our goal was to implement the top ideas of each quarter. Unfortunately we didn’t fully succeed in that mission. With the Mendix DX release and Mendix 6 a big part of our time was filled. We felt that we needed to invest in the features added in these releases as we have heard some of these for a long time from our users and customers as well.
However, we did implement a number of the suggestions. We didn’t just look at the top ideas, our product managers are following these threads closely and try to include ideas into our roadmap whenever possible. Here is what we implemented:
In addition to the above list we are working on the following ideas that have been posted in 2015:
A lot of times you have to use custom new, edit, delete, save, cancel and select buttons. This means you have to create an action button, choose MF, create a new MF, rebuild the standard functionality (for save it would be commit/refresh and close page) and choose the correct icon and caption.
I think it would save a lot of time if it would be possible to convert a standard button to an action button. The MF can be generated automatically with the standard buttons functionality, the caption and icon of the button can be kept and the only thing you need to do is add some functionality to the generated MF.
Infinite scroll for list views
I really hate the more rows button on a listview. I want the listview to retrieve the next block when I scroll down far enough. Common way of handling lists in mobile apps and becoming really common in desktop apps.
I hope this could also be possible for data grids and template grids.
In recent Mendix versions non-editable checkboxes are rendered as 'Yes/No' labels. In previous versions they were rendered as greyed-out checkboxes. It would be great if we could choose ourselves how those checkboxes are rendered: as a label or as a greyed-out box.
Improve handling of Module Exporting and Importing
Exporting and Importing a module or use one from app store is a pain in Mendix. It is easy to do, however the lack of control is frustrating and cause many troubles.
1) Limit the export dependency list, When exporting a module, the list of ALL java libraries are shown, I would love to see only the libraries that are required in the exporting module.
2) Quick win, Please add a select/ deselect all option. (For everybody who annoyed deselecting all checkboxes individual, you can already use the key short cut CTR-A, SPACE)
3) Add a java dependency manager in Mendix like Maven. At the moment it is a total mess, when you import multiple module from the app store you end up with 5 jar file from the same library with different version or duplicates with different naming. This could lead to horrible unexpected runtime error, that are nearly impossible to trance. When a module is removed the jar files in the userlib will stay.
Tip: how to deal with class loader issues from the Mx Expert Series: https://www.youtube.com/watch?v=PZ718BAUPmU&t=52m04s
4) When importing, everybody need to MERGE module that will not overwrite the current module. I could bet that any developer reading this, has experienced that custom changes in a app store module were lost due to “replace” the module, throwing away all changes! Please add a indicator that shows that the current module, has custom changes.
5) Quick win: Select overwrite when importing allow the user, to select the userlib jar files and widgets that will be overwritten. Adding a version information would be helpful in the decision..
Visibility based on microflow
Right now, visibility can only be based on a module role or an attribute value. In that way, it is not possible to use, for example, a linked object's attribute value as visibility constraint.
It would be awesome to be able to use a microflow with boolean output as visibility constraint. Managing visibility will be much more flexible this way.
It's a quick win and will prevent many versions of the same data grid.
Thanks in advance!
I would like to be able to generate search fields for a data grid based on the columns of this datagrid.
Generated search fields:
This way I don't have to manually add all searchfields or delete all unnecessary ones after auto-filling the datagrid on creation.
Add the option for conditional captions to Tab containers.
Mobile: swipe to the next or previous item
For mobile: For example a template grid with one item per page. I would very much like to swipe to move between items.
Also on dataview pages: swipe will then call a microflow that performs some logix. This will become really useful when we can build some sort of microflows in an offline enabled app.
Show Callstack in Debugger
When setting a breakpoint in a microflow, the modeler will stop execution at this breakpoint and show the variables. In a complex application with many microflows and events it can be essential to know HOW a microflow was triggered (by another microflow, by an event, by the user).
It would be nice to see the full callstack in the debugger, up to the current microflow like this:
User Action / Event ---> Microflow A ---> Microflow B --> Microflow C
Widgets Overview Screen
The Problem: Projects with a large group of widgets are becoming hard to keep track of when updating to new versions of Mendix. Example the change from 5 - 6 many widgets complained about model version support. The difficulty I ran into was widgets would have general names which would be similar to others, example: type treeview into the app store and see how many results you get. This took a bit of time to work out which version of the widget I had and from who.
The Solution A view within the model that breaks down all the important information about each of the widgets in your project.
additional information could include last update date & if compatible with your current version of Mendix.
Add the possibility to apply Error Handling within Microflow Loops
Currently when you want to apply error handling within loops, you will receive the warning:
Error handling type must be 'Rollback' inside a looped activity.
You could workaround this by applying it within submicroflows, but that can make it unclear.
Example MF: https://modelshare.mendix.com/models/3d56095f-e144-4cd5-a6c7-092b1af789f6/m-c-loop-with-error-handling
Microflow Action to Update One Attribute for All Objects In a List
Idea: Create a new type of List action in a microflow to set one attribute to a given value for all objects in a list.
Background: Often, I retrieve a List of Objects and then loop through each one to set the value of a given attribute. For instance, suppose I have an Order entity and OrderLineItems entity. Lets say that both entities have a boolean attribute called Taxable. When an Order is marked as Taxable, I want to ensure that all OrderLineItems are marked as taxable also to control the visibility of a TaxAmount attribute in the OrderLineItems new/edit page. I can use a calculated attributed, but this is not desirable for performance reasons (my OrderLineItems entity will have a large number of objects in it. Consequently, I need a microflow that is either called as an event handler or invoked from the page that retrieves all of the OrderLineItems for an Order and loops through them to set the Taxable boolean. Instead of needing to build a loop every time I need to do this, I would like to have a single microflow action that takes the List and enables me to change the Taxable attribute for all of the OrderLineItems in the list.
Enable Placeholder Text for Reference Selector, Reference Set Selector and Drop Down input controls
To provide an enhanced user experience without having to add a separate widget to the page.
Add search filtering functionality for datagrids populated via Association and Microflow
Often when I want to resort to non-persistent entities, I ultimately decide not to do it, because the non-persistent option has drawbacks. I.e. only when populating the DataGrid from database, you are able to configure search filters. It would be nice to also have this available for entitites which are stored in cache, hence datagrids populated by datasource microflow or association.
Comments for xPaths
For every field where an xPath is entered there should be a comment box as well.
xPath expressions may be quite complex and in those cases will need extra clarification. When a retrieve is done in a microflow extra comments can be added by adding a comment box to the microflow, but for entity access rules or xPaths for datagrids this is not currently possible.
Dynamic FileName for 'Export to Excel'-button
The standard 'Export to Excel'-button of Mendix generates a confusing filename. Best would be that it could be configured dynamically, like for instance: <datetime> - Export <entityname>
Mobile: pull to refresh
A must have for mobile app development: pull down a list (or grid) to force a refresh. On an offline app this could trigger a sync.
Filter/Find on multiple attributes
When working with lists, you often have to use the List Operation Filter or Find. However, currently you can only Filter/Find on 1 attribute, and only check if it equals a certain value.
But often, you have to Filter/Find on multiple attributes. Currently, this requires multiple Filter/Find Actions. Also, sometimes you want to Find/Filter on a different operation than equals, for example not equal, greater/smaller than etc. This is not possible with List operations, and would require looping through the entire list.
Having more advanced Filter/Find options, perhaps by being able to use an XPath constraint on a list.
When an entity has a lot of associations the domain model becomes unreadable/unusable:
This makes it hard to find one particular association. Solution: Let the user decide how big an entity is portrayed. This will result in empty blue space within an entity but a more user-friendly domain model.
Publish App Service on persistent entity
Even though App Services are of great use when communicating between mutliple Mendix apps, the App Service has a mayor drawback that it always needs non-persistent domain models as input and output, resulting in a lot of trivial clone-like actions and Mendix logic.
Mobile: native UX
I would like a mobile Mendix app to behave like a native app. For the end user, it should not matter whether the app was built in a native platform IDE or in Mendix.
A few examples:
Import Json Response to generate domain model
Currently, it is possible to generate the domain model based on an xml file or wsdl. It would be great when you could generate the domain model based on a Json response. This would save quitte some on figuring out the entities and the associations between entities.
So far I tried to convert a JSON to XML, generated a XSD based on the XML and imported this one. But this doesn't always make sense.
More control over conditional visibility
Might be that this has been mentioned at some earlier point, but in many of my recent projects it would have been tremendously helpful if there were a few more ways to control conditional visibility.
The simplest example is: Don't show element if value = empty But ideally I'd want to use a variety of xPath, so I could do things like "show this selector field only if the current user is a member of group X".
Of course, there's always workarounds, but I often feel things would be a lot easier with more visibility control :)
Often I have data grids where I would like functionality that needs multiple rows (delete) combined with functionality that needs 1 row (view, edit).
So I would like the grid selection mechanism to remember the last selected row as well as multiple selected rows (and present the last selected row somewhat differently) and allow the choice on action buttons to pass (and thus in the microflow to receive):
Easily change input type
Based on the Datatype, the Modeler chooses the default Input type (e.g. textbox or textarea, radiobutton or dropdown) when creating a page or dragging an attribute to a dataview. But often, this is not the desired input type. If you want to change this, you'd have to delete the current Input widget, add the Desired Input widget, and then select the attribute. This is relatively timeconsuming and could go a lot faster!
It would save a lot of time if you could change InputTypes by rightclicking the input WIdget, and Select the desired Input widget. This way you could easily and quickly change from a RadioButton to a Dropdown or a textBox to TextArea.
Horizontal align button for microflows
Now that the modeller has some of idea of how much spacing it likes between microflow activities, it would be nice to have an auto spacing button. Pressing this would align all activities in the current microflow so that they all have the same (default) horizontal spacing. Vertical spacing could be left as it is.
I know this will never work perfectly for complex microflows, but for a lot of microflows this would come in handy.
Allow closure of more than just one page from a microflow
As has been mentioned already elsewhere in the forums, it is currently impossible to 'fire' a close page action twice. This is especially troublesome when you have a in-content page, where a popup is triggered. In many cases the popup is used to create a custom confirmation to the user. What you would ideally like to do is not only close the popup after confirming, but also the in-content form
Though there are workarounds for this issue, they are never perfect.
(Inspired by the topic: Close in content form from popup)
Multiselect search fields
Since Mx5.2 it's possible to allow multi-select on dropdown search fields. These are very handy for the end-user to filter the content in the datagrid. However in the modeler you can only select a single value as default, there no multiselect there.
It would be very handy if the multiselect searchfield would also allow multiple values when selecting the default setting. This would make the initial filter for e.g. datagrids much more powerful.
A datagrid or Templategrid based on a MF has a lot of limitations. Why not open a grid with an optional ‘List’ or ‘Xpath’ as parameter on the same way you give an object as parameter to a dataview. So the list is build before opening form and not afterwards when you using a MF
Integrate the Excel Export module from the Appstore in the platform
Make use of the speed, higher capacity and the export format (.xlsx) of the Export Module and make that the default for the "Export to Excel" button of a grid.
Headers and Footers for List Views
For many reasons we don't want to use the data grid widget on mobile devices, mainly because of usability issues. We therefore mainly use the list view.
We would like the ability to set a header and the footer of the list view. For example by adding a option to the table widget 'Display at first record (yes/no)' and 'Display at last record (yes/no).
Delta between Mx versions
The release speed of Mendix is very high and it is hard to keep track of the new features. Currently, I am working in Mx 5.21.1 and now Mx 6.2.0 is released. I can see on the release notes the added features, but I cannot see the delta between 6.2.0 and Mx 5.21.1. To convince my customer easily to upgrade to the newest version, I would be helpful if I could make a delta between Mx versions.
Add the possiblity in the validation feedback activity to identify the field that has to be focused after validation. (when you return on the page)
Offcourse the FIRST 'set focus option' in the microflow will be the one that will be 'focused' when you have more triggered validation in your flow. (this will be the first field at the top of your page --> The first field the user had to change or fill.
Concatenation of values of multiple attributes of same object
It would be nice when using a Textbox in a dataview on a page, to actually display the value of multiple attributes of that same entity but then concatenated with a to be set delimiter in between.
In all kinds of (not optimal) ways this can now be achieved, but would be a nice feature to be able to configure this in the setting of the textbox.
Set Layout Grid Column Widths in Properties Pane
Idea: Be able to set Layout Grid column widths for a row in the properties pane for that row.
Background: While using the new layout grids offers many advantages, it is tedious to change the column widths in a layout grid row when the need arises. I have to open the properties pane for each cell in the row and change the width. With a table, I could set all column widths in the properties pane as illustrated
However, with a Layout Grid row selected, I don't have the same option available to me, as illustrated
When I am using the Excel/CSV exporter it always exports all the columns shown in the grid. I would like have to have the option to export only a limited set of columns.
Maybe even a set of columns not even defined in the grid itselfs.
Ability to change the display format of captions, such as the text widget
It is nice that you can now add parameters to the text widget and group box widget. There is however no way to set the display format of the parameters, which is necessary for decimals, dates/times, integers and booleans. Including the option what to display if the value is empty.
I will like to suggest an addition to the edit data grid function. It would make life more easy if the column widths are calculated to a sum and displayed, Now we have to count al column widths manually to add it up to 100%
In Mendix terms, add to the column "widtth' the aggreate funtion "sum"
Support for Decision Model And Notation(DMN), Version 1.0
More complex logic makes microflows hard to write, maintain and test. DMN is a new standard of the OMG, it stands for Decision Model and Notation. DMN defines an XML format and is executable on Decision/Business Rules Engines.
My initial idea was to request for Decision Table support but I think it makes sense if Mendix moves into this direction. Maybe a phased implementation
In DMN, all decision logic is represented as boxed expressions, boxed literal expressions and boxed invocations. DMN defines decision tables, a very important kind of boxed expression. This clause completes the graphical notation for decision logic, by defining other kinds of boxed expressions.
The expressions ‘in the boxes’ are FEEL expressions. FEEL stands for Friendly Enough Expression Language
Please have a look at http://www.omg.org/spec/DMN/1.0/PDF/
Mobile support to save account credentials, so you don't need to login every time.
User just want to get stuff done, and to login every time the session has timed out is not really helping.
Allow usage of placeholders within Snippets
It would be nice to allow the usage of placeholders not only in Layouts, but also within Snippets. Currently Snippets are very static. With the use of placeholders we could create more generic Snippets.
Only display list view when there are records to show
In losts of cases you want the list view to be invisble when there no records to show, avoiding the 'No items found' message.
Currently the workaround is to use the visibility option using a calculated attribute or redundant attribute. However, this workaround doesn't work anymore when using the offline app.
Adding the option 'Show when empty (yes/no)' would solve this problem.
Please consideration to support 2 Features ( Java Activity)
1) I would like to send List of any object to java compute node, please add this feature if you think it should be. Because I want to create java util
to copy all objects in list from source to target but java compute node doesn't support to send to list of any object. Now it support
only specific entity name when i select send by list.
2) Why don't Mendix provide get all values in microflow when I use java compute node? I would like to get other values in microflow by java but I don't want to send many input parameters. If you can make this behavior on your platform, it will be flexibility in the
Let me explain for more detail in number 2.
In my meaning i just to get the value
eg. I set value in address model then set customer to address model. I have java action and send customer model to java.
JAVA cannot get object address because mendix doesn't like java model.
Mendix set parent to child but Java Model set child to parent. If I need to use reflection concept to get some value and set value to target
model by automatic. It's doesn't support Eg. input: PersistCustomer Model and set to output: NonPersistCustomer model.
Java Action cannot get value address
Please help to find out solution because it will help to make flexibility for Mendix. In my idea Mendix should provide.
Example. Core.getIMendixObjectInMicroflow(this.getContext(), "[AssociationName or etc..]"); return current object in MICROFLOW
and this will help me to get value from object.
Automatically remove unused spacing between microflow actions
Just like the newly added feature where you can simply drag a new action into your microflow and the necessary space is automatically created, I would like the platform to also do the opposite. For example when I create a subflow from some actions in a microflow. This often leaves a lot of unused spacing which you then need to adjust again.
XPath retrieval and filtering on non-persistable entities
I would just like the same options available as on the regular persistent database entities and tables.
Change Attribute Type From Float to Decimal For Group of Attributes
Idea: Provide the capability to change all attributes in a given entity from type Float to type Decimal via the context menu for an entity
Background: Having just completed conversion of 2 modules in one of my projects from Float to Decimal (due to the fact that Float as a type will be deprecated in a future release), I think this feature would be very useful. I still have other modules and projects to convert. The conversion process consists of 2 major steps:
I think resolving the errors is a useful exercise as it gives the business engineer an opportunity to revisit microflows that they may not have looked at recently, delete unneeded elements of the business model and refactor microflows as appropriate. However, changing each attribute from Float to Decimal is a tedious task that adds no value to the process. Having the ability to change all attributes in an entity would make the process go much more quickly and smoothly.
Pass Widget Name Into Microflow
Add a system property to microflows called "$WidgetName" and set it using the widget from which the microflow was triggered. Then in the mcroflow, we would be able to use exclusive splits to determine the function of a microflow. This would allow us to make small custom tweaks to microflows rather than creating multiple copies of similar microflows.
Add an indicator to show in the modeler whether Constant values are used out of the Project Settings > Configurations > Database settings or out of the constant definitions in the module sidebar.
Or show the value defined in the database settings when you start to edit the constant in the module sidebar.
Configurable default deployment mode
When available, the default deployment mode when opening the modeler is set to 'sandbox'. When you switch to local it will remember this as long as the modeler is still open. However, when you close and reopen the modeler sandbox is the default again. Deploying to sandbox automatically commits your work, without the ability to add comments. For me this has resulted in several unwanted commits, which can be quite frustrating.
List View Commits
Add an option to editable list views to only commit the current item rather than the entire list which is a current resource hog that slows the responsiveness of the app.
More prominent role for OQL within the platform. See forum post: https://forum.mendix.com/questions/9341/Is-there-a-future-for-OQL
This request looks to exist already when you're debugging within mendixcloud. Within the monitor page, the running-now tab shows what you need. The only thing here is that you want it to be visible within the modeler on local environments?
Split our "up/down votes on the idea-forum" from those on the regular posts ??
To many great ideas and suggestions here....... B-)
Creating an enumeration can be a lot of work (mouse clicks + typing) while usually the data is already available in some other format. So it would be great if it would be possible to import the names and/or captions, for example by copy-pasting from a text file or from Excel.