Function hints for Mendix functions
When using Mendix function I always forget what (order) arguments can be used, especially with function that are not used often.
This will make our life easier!
Show duration of microflow activities during debugging
In earlier versions of Mendix, we could see the duration (in milliseconds) of every microflow activity in a debugging session. Nowadays it isn't possible anymore and you need to add logging yourself to know how long a retrieve or submicroflow takes.
Especially when you're analyzing performance issues, quickly identifying the actions with a longer duration than expected is a must-have. Adding logging manually works, but is time-consuming. By adding this feature, mendix developers will be better able to optimize their microflows, also because performance is actually visible during development.
I'd like to be able to search and sort on non-persistent objects / objects in memory on datagrids. I am often forced to persist objects only because I need sorting and searching. Otherwise I would not commit these objects at all. Currently I also need to delete these objects in the database afterwards. This can slow down certain processes considerably.
Conditionally visible/editable based on microflow
Currently, it is only possible to set conditional visibily/editablily based on an attribute (or enum). So when there's some logic behind it, you'd have to create a boolean ShowAttribute. This really clutters up the datamodel, because all these booleans don't really belong in my datamodel.
Therefore, I would like to have an option to set the visibility/editablity based on a microflow, so my datamodel stays clean.
I realize that this could have an impact on performance when used a lot, but I think it is up to the mendix business engineer to decide when to use a microflow, or when using an attribute would be better.
Constrain search filters
It would be great if we could constrain search filters on grids and other widgets.
Confirmation dialog box that can be called from within a microflow
Sometimes within a microflow you'd want to give the user an option, or ask for confirmation based on a certain logic. In this case, you would want to give a message to, and get input from the user during a microflow, where the user can click yes/no/cancel. Based on the given answer, the microflow will continue and execute different logic/actions for different answers.
I can imagine it would work something like this, for example in a save object microflow
On a commit please first check if there are newer versions on the "Team Server". Because currently first a new build is created and then newer versions are checked. Often you have newer versions on the "Team Server" so the commit will fail and force you to update.
This looks like a waste of time because after updating you have to build again to do the commit. It would be nicer to first check for new versions, then build, then check again for new versions.
Default error flow
No developer is error free. We all do make mistakes. The problem is that the user is confronted with the famous red error. It would be nice if I could define a default error flow that would trigger when an unexpected error does occur. This way I can handle the error for the user in a more elegant way and get inmediate notification back when this is happening.
On each new page, the glyphicons must be selected.
It would be nice to set the default glyphicon for each type of button at the project level.
I want to have the ability to draw straight lines in the modeler by holding one of the keys CTRL, ALT or SHIFT to make it easier to draw neat models.
It would be nice to upload a commercial set of glyphicons into the modeller so you can expand the library of existing glyphicons.
JSON support for oData
For native mobile apps we would like to receive JSON data instead of XML from the oData service provided by Mendix. This reduces the amount of data that is send and also allow more flexible integrations.
Add functions to List Operations Find and Filter
When doing a Find or Filter List Operation on a list in a microflow, you are only able to do an exact match on some variable or attribute. A nice feature would be to be able to use functions like 'contains', 'toUpperCase', 'substr', regular expressions, etc.
I would like to resubmit an idea by Ivo De Boer from the prevous idea forum, because I think this deserves more votes than it got in the previous forum :)
Drill down in debugger When looking at an object in the debugger I cannot drill down to related objects, if I want to see the values in those objects I'll have to retrieve them seperately. Of course the drill down itself would be done lazily so the retrieve is only done upon drill down.
Mapping optional booleans
Booleans can't be empty. But in XML mappings this is really needed: XSD's often specify optional booleans. A workaround is to create an enumeration (true, false) and map that from/to a string, but then the XSD must also be manually changed so that booleans are replaced by strings. This is labour-intensive and not intuitive. Mendix should have support for mapping optional booleans.
Automatic mapping of enumeration --> string and string --> enumeration in XML mappings (domain to XML and XML to domain). We now usually have to create a lot of simple microflows to do the mapping.
Conditional visibility based on Xpath constraint on CurrentObject
Conditinional visibility on a page can only be set via an Enumeration or a boolean. A lot of times it should be based on for instance an existing association, sometimes depending on the specialization type or maybe a DateTime.
Best would be to implement the possibility to add the option 'Xpath constraint on CurrentObject', so developers could write an Xpath returning a boolean to show or hide some element on the page.
When writing java extensions on the Mendix platform the issue of dependencies between external jar files leads to complex issues that are hard to fix. The Mendix server jar files and the jar files in the model are nicely separated and independent, implement the same layer/level of in-dependency on the Mendix module basis. This will decrease the amount of classloader related issues tremendously.
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>
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.
Enable the "Connector" panel usage within a "Data view" and all other views, just like in a "Table" within a "Data view". With a table cell selected you can double click an attribute value from the connector panel. This functionality is not enabled when selecting a "Container" or in the content space of the "Data view" itself. Why not re-use this functionality also in other container elements?
This would really speed up modeling, building custom forms and overviews.
Add support for "Back" and "Forward" edit location buttons.
In Eclipse there are back and forward buttons (and hotkeys alt+rightarrow, alt+leftarrow) which take you to the last edit or next edit location. This is extremely helpful when you have a lot of open tabs.
Provide a capability within a microflow to retrieve all of the 'objects' within an enumeration. For instance, this microflow action would return enumeration values (including 'attributes' of Key, Caption, Sequence and perhaps Image) in a list. It would be ideal if the list could be Non Persistent Objects so that they could be looped through for processing.
I find myself building for this kind of situation often, and with the current capabilities related to enumerations, this requires a lot of additional microflow steps and therefore overhead.
This capability would provide the best of both worlds where enumerations are concerned: the ability to use enumerations for lists of values that should not change over time and can dictate screen layout and microflow logic combined with the ability to retrieve and use them in the same way that entities are.
Allow a page to work with multiple parameters
We are upgrading APPs and are running into the issue of grabbing the correct bits and pieces from the Appstore. Made me wondering if it would be a nice addition to the Modeler to have a "show used and unused Appstore components"
And something to check if the existing appstore modules/widgets are newer or older... (extended by Marcus Groen)
Being able to suppress/ignore ((types of) warnings. While warnings are often also good ways to explain best practices, they also often show up for things which are fully intentional and valid ways of modelling.
As projects get bigger, you can easily end up with a list of hundreds of warnings you end up ignoring; however as a result you end up overlooking actually useful warnings amids the background noise.
Disable all breakpoints
I would like to have the option to disable all breakpoints when debugging. This option should 'continue' through all breakpoints in all microflows. Sometimes I make a change in one microflow and I just want to see the end result without having to stop at each breakpoint. The Breakpoint Window requires me to manually uncheck each breakpoint (and then recheck them), it would be convenient if there was a button that would pass over all breakpoints when clicked on that instance.
UI - Improved input types / new form / and connected label to input
5.18 has already gotten improvements to labels / input fields. But i still would like to request a few additional features.
Introduce the HTML form <form> element to be inside a data view for structuring form inputs, we can already use the input widget for structuring form-groups, putting these inputs inside a form enables a few html features. For example autocompletion:
Add autocomplete="on/off" option for the form.
Add name attributes for form input fields / labels / forms. This allows for selection of the input field by clicking the label. This greatly expands clickable areas for the form inputs.
Add autocomplete attribute on input fields to prefill information: https://developers.google.com/web/fundamentals/input/form/label-and-name-inputs
Add the following input types: number, email, tel, url for changing keyboard input on mobile. Add capitalize option toggle on input for iphone autocapitalize="off"
Improve current date time picker combined date/time selection. Examples:
Also i believe the formatting could be cleaned up, which will make HTML pages smaller, but also easier to style because there are less DOM elements.
Size 296 bytes:
<div data-mendix-id="261" class="form-group mx-name-textBox1"> <label class="control-label">Height</label> <div id="mxui_widget_NumberInput_8" data-mendix-id="265" focusindex="0" widgetid="mxui_widget_NumberInput_8"> <input class="form-control" type="text" placeholder=""> </div> </div>
Cleaned up 250 bytes:
<div data-mendix-id="261" class="form-group" name="textBox1"> <label class="control-label">Height</label> <input widgetid="mxui_widget_NumberInput_8" data-mendix-id="265" class="form-control" type="text" placeholder="" focusindex="0"> </div>
Built-in support for unit testing microflows and Java code.
Built-in support for unit testing microflows and Java code.
Allow to declare optional parameters in a Microflow and defined default value for them.
For example, when we want to populate a datagrid, we can use the same microflow with similar parameters and/or optional parameters (or extra-parameters)
Improvements to the debugger
It would be nice to have the ability to back up or move forward in the debugger. It would also be nice to be able to change variable values on the fly while in the debugger to test various execution paths without having to make a code modification and re-compiling/re-executing the project.
Possibility to exclude association tags for associations in generated webservice xml
Several people on the Mendix Forum have already asked for this::
With the build-in possibility in Mendix to publish a SOAP webservice, based on a microflow, it would be really usefull to be able to publish the WSDL and webservice WITHOUT created elements for the associations. This because sometimes a project has to conform to specific industry standards or agreements with 3rd parties.
When I have objects A and B and they are related (1-*) What I would want in the WSDL is :
<A><B></B></A> instead of
The best thing would be that, in publishing the webservice and in Operations > Parameters ticking all the attributes of B and unticking the entity A_B would actually work like I stated above.
Possibility to CRUD Enumeration values in runtime
When using enumerations extensively and especially when they are subject to changing, it would be convenient to have crud possibilities on them for, let's say, an admin to change them during runtime.
For instance; for a project I am using enumerations for all kinds of types of mechanical components. Types are constantly added, hence making enumerations not the best option.
Be able to filter on change types when reviewing changes to your model, or to ignore certain kinds of changes, at least temporarily. In general things such changes to the midpoints of microflow activity blocks which have been moved aren't that interesting, yet they make it a lot more annoying to find the actually meaningful changes to a microflow. (Such as parameters being passed, new activities added, changed expressions, etc.)
Being able to filter out changes which are just microflow aesthetics and don't have any functional impact, or to look at the changes on a certain 'level' would make reviewing these a lot more convenient.
When I am refactoring and move folders with microflows and forms or domain model entities to another module I lose a lot of time correcting the permissions, while I made sure the target module has the same permissions as the source module.
Fix permissions automatically when moving objects to different modules
In our projects I am using many buttons which trigger microflows. In these microflows I am using quite often validation microflows which creates validations messages on screen.
It would be nice if you can define a validation microflow on a button. When you click the button, it will first execute this validation microflow and if this results in a true it will execute the microflow.
I want to recommend your product to add feature to connect to GitHub. Your product it's proprietary, In my meaning is Source Control and Development tool. I think if you can provide the channel to commit code to GitHub as well, It 's the important choice in the future.
Generate variable name button (besides every variable name)
When I copy-paste functionality or when I'm refactoring I am often copy-pasting entity names in variable names and adding List when applicable. To save time I would like a button to generate a variable name even if there is another name in the field. This applies to retrieve actions, list iterators, input parameters and possibly more places.
Selectable microflow as argument for java actions like executeMicroflowInBackground
executeMicroflowInBackground (from CommunityCommons) now expects a microflow as argument passed as a string, but it would be great if the microflow could be selected using a selection window. Benefits:
This should work for any java action that expect a microflow as a parameter.
Save debugging informations
When we are debugging, we lost information about the variables/objects values. Is it possible to have an option to save all objects/properties in a text field. Actually, we can just make a copy property per property. If we save all stuff, we can compare later the previous result with the new one ; very useful when we want to fix a bug.
(Adding an export content in all views of the modeler should be very nice...).
As an application user I often have to wait for long microflows to complete, while not all the logic performed in the microflow is relevant for what I see on my screen.
Currently you have the run microflow in background java action, but since uncommited objects are only availible in the session of the user, you have to commit all objects that are needed for the following flow which is a hassel.
Could it be possible for example to have a microflow action that forces mendix to update the client as is the microflow has already ended? Or even better have a subflow option that you do not need to wait for the subflow to be completed?
When exporting a module the widgets are automatically exported. This means that when I reuse a module I always have to check if project widget are not overwritten with older versions.
Make widget export optional or on import make the overwriting optional so I can choose which widgets to use.
Background color as a property for annotations.
By adding background colors to annotations, one can mark e.g. documentation annotations blue, while important annotations are marked red, less important yellow, general annotations grey etc.
One could consider adding text color (to make the contrast sufficient), or make it a pre-fixed set of colours one can select from.
Allow to pass a list of objects (String, Enum, Integer ...) as parameters to a java action.
Currently , we can only use entities (called objects) or a specific list of entities. This is very limited in what we can do at the javas actions.
Show the variables/objects of a Microflow in the variables tab
When we create a new microflow, show the variables/objects in the variables tab : we can directly move on the graph when we click on a variable name.
Have a view tab with the list of entities and relations when we show a domain model
In this view, we should able to search / filter in this entities and jump directly on this entity in the graphical representation.
Non environment-dependent constants, also usable in situations such as Xpath constraints on pages. Essentially like final variables in Java.
I quite often run into the situation of wanting to re-use a certain bit of information, most frequently a String, in various places in the model. In general in these cases you do not want to maintain the text in multiple places, and duplicating also raises the risk of typos.
While in some cases it makes sense to define these Strings in environment constants, very often the text isn't dependent on the environment. Being forced to use the environment constants leads to a very cluttered constants tab or yaml file; you cannot use these everywhere either. (In case of microflows you need to first store the constant value in a new variable before you can use it in a retrieve action for example, in pages you do not even have this option)
As a workaround I've (ab)used enumeration values or keys for this in some situations, but this is far from ideal and not always usable in for example XPaths either.
Add an option to the data grid to define the width of search inputs, as well as the label position (to the left or above the input.)
Allow retrieving by association without an explicit action
Some widgets do not work well on a mobile device. If such a widget is used anywhere in the app, the mobile version will not work anymore.
The idea: Only include required widgets in mobile deployment
This could be done with the components.json file, but with Mx5.18 a nicer alternative came along:
Only include widgets in mobile deployment that are on a page with a phone or tablet layout.
We probably need a mobile popup layout type to make this work to it's full potential.
Enable variable & Xpath editing in debugger view of Mendix
While running an application from eclipse you're able to use the eclipse breakpoints and edit variables while running the application. It would be nice if the Mendix variables/debugger windows would allow for such actions too in test and localhost environments, of course these changes should not be committed to the database.
Another nice addition would be if it is possible to edit the Xpath queries and see live updates of the results returned while having a break point on a database list retrieve.
Versioning per document (or at least Microflows)
View history on a Microflow does not show what (and by who) was changed exactly only when. Would be nice to see what has changed like you see when merging.
Quick access to entity data
In the domain model, would be nice to be able to click on an entity or a link between entities to obtain in the current contextual menu an option to show directly the data from the database. We don’t need to be on Run Mode to obtain this information (just execute a select * from current entity or prepare a select script. We lose a lot of time by switching from the Modeler to the database tool just to have a look on the data).
Dynamic reorganization of microflows in the display plan
Offer options to auto-organize microflow drawing. By example, I think about Zest project (under Eclipse). We have some layout patterns with algorithm (tree, horizontal, vertical, radial…). For another client, I remember it is possible to implement a dandelion flower algorithm and it gives a funny presentation on display.
Adding cartridge legend in a microflow
If we offer to change colors in a graph, it would be nice to be able to insert a cartridge legend in this microflow graph…
Create new system text and use it inside microflows as string value for messages and validation messages
Benefits: greatly increases the ease to maintain multiple languages.
Datagrid default layout for NewEdit page generated is Desktop/LastSelectedLayout...looks awesome in popups (default also), especially in demos to clients.
Add "default" path for switches
Open a datagrid, or template grid with a 'List' ( optional ) as parameter or a possibility to fill or modify the xpath by a Microflow before showing the grid. Of course without the shortcomings of the current List based on a MicroFlow.
This thing where you import images (as in for icons for example) and you want to replace the images, deleting all from the collection, and reimporting, mendix will append 2 or something like that. A simple overwrite will do, then you wont have to go through billions of trillions if icons searching for XXX2 and renaming to XXX.
MBM typeahead buffer and a bell when when the application is ready to be viewed...so i dont go blind staring at the modeler.
Display a list view as columns. Horizontal or Vertical format
Making it possible to add color markings and small notes in the Project Explorer. This option would allow you to mark the parts that you still need to work on and to have a quick overview in Project Explorer.
Pass string variable with name of the 'Caller' (Micrflow, Page, Scheduled Event, etc) that calls the Microflow
Many times I want to reuse most of a microflow; however, I need to change one or more behaviors. Those behaviors are often a result of what is calling the microflow, such as one page versus another or whether I'm calling it from a scheduled event rather than another microflow.
For example, I might call the same microflow from a Popup MF button or an In Content MF button. The difference, though, is that the popup needs a close page after a split on $CurrentDeviceType. Since it's after a split where I need the difference, a sub-microflow doesn't work for these kinds of scenarios.
If I could always have the 'caller' name available as a variable, I could add splits in my microflows at various points based on the value of the 'caller'. It would allow me to reuse one microflow many, many times to enter and exit the portions I want to use without having to keep multiple sub-microflows in sync with each other.
Extend History search
Available search in the Mendix history files. Per example, when a microflow is deleted and we want to know who,s the guilty party is... (and blame him!).
Have a getName method to obtain the full enumeration name object.
Actually, we have just two methods : getCaption and getKey. If we wan to manipulate an enumeration in a java action, we have to specify the enumeration object. If we have the full name, we can pass a String and develop a generic method.
Allow for conditional visibility on grid columns
I a number of cases we need to replicate grids on a page because 1 or 2 attributes should not be visible under certain conditions. Now we need to repicate the grid and show or hide the grid based on the condition.
If Mendix would allow for conditional visibilty on grid columns based on attributes of the context object this would lead to better maintainable pages.
A warning-free project would be perfect, however some warnings cannot be avoided. I'd like to suppress those individual warnings so I know that if there are other warnings, they at least indicate something I might have missed. This would make me more inclined to even look in the warning tab, instead of letting warnings fester.
The error view would (hopefully) look something like this:
[0 Errors] [0 Warnings] [3 Suppressed] [Check now] [Limit to current tab]
Multiple select elements in page editor
Select more than one textbox, textarea etc at once to drag them in another layoutgrid within the page. Now, it is one by one.
Find usage of glyphicons, just as find usage of an image
Enable editing of objects/variables while running in debug mode inside mendix modeler. When running a mendix application from eclipse this is already possible to add eclipse breakpoints. But it would be nice if in the mendix environment the variables were editable.
Will allow for quicker debugging.
Allow creating microflow that execute on database server. (similar to java stored proc in oracle). Such microflow can be used to populate calculated attribute on which search/sort could be done.
Expose the OQL editor on browser. This can be used to construct business rules on entities and action on the output of that OQL. And all of this during runtime.
Allow Wait and Notify actions on Entity instances. Such action can be used in microflows to make them look like a logical business flow rather than having to break them into smaller flows. Using external bpm has its own problems.
For input widgets, add the ability to pass the input widget into the microflow as a system variable set to true.
For instance, on change of 'checkbox75' could be passed in to the microflow as $checkbox75. Then we could control the path based on the location that the microflow was called from. We could create fewer microflows and add more versatility to the existing ones.
I have large microflows that contain other microflow calls to create budgets and contracts. But we don't always need to create all of that from various form locations. It would be nice to be able to logically call a portion of the larger flow with having to create and maintain additional entity booleans.
'Freeze Panes' for column headers in datagrid
A lot of my clients ask if I can stick the column headers in a datagrid so they are always visible as they scroll down their lists. They often prefer to scroll rather than tab through the pagination. I can pull it off with template grids and precise css but I don't want to work that hard. :) Plus, they want to keep the sort and search filtering ability of the datagrid.
Capability of adding Glyphicons to menu items.
Currently glyphicons can be added to buttons, but not menu items. So you end up importing the entire glyphicon set (which does not provide enough icons in any case to please some people, so perhaps another means of adding sets like icomoon, fontawesome, custom, etc).
Also, the ability to add classes to individual menu items seems to be absent, so I can only add images to menu items, and not webfont icons type things.
You can pimp out Ecilpse with themes, vi keys, all sorts of plugins. Its a nice to have, I know, but at least in terms of color scheme custimization, I'll not go blind within the next 5 years :)
Retrieve Entity by Reference in Debugger
I often find myself updating a troublesome microflow with additional retrieves on objects that are referenced by others in a microflow. For example, consider a simple case with an Order and a set of OrderLines. Perhaps I'm working with an OrderLine and I need to see the data on its Order to find out what's going in. Right now, I can see the OrderLine in the debugger, and I can see that it references an Order, but I can't see the attributes of the Order itself without updating my microflow to retrieve that Order.
I suggest that we enable the debugger to retrieve data over references!
Allow to add a filter field based on a calculate entity value
In a datagrid, actually, you can not add a filter input based on a calculate field.
Add visibility constrains on search filter in a datagrid
Sometime, a user can have more options to filter informations in a datagrid. It would be nice to allow to mask or not additional filters
ID Attribute for Entities
Add an attribute to create a running ID to entities. Difference to autonumber attribute: the ID attribute is not counted up, if the record is deleted/canceled.
I want the show progress bar functionality available on items in a menu. This is the same functionality that is available on the microflow settings of an action button.
Better keyboard shortcuts and typeahead buffer for mbm :)