👋 Use this site to provide feedback and ideas for all Nintex Products. See our post on Nintex Community "Welcome to Nintex Ideas" for more details on Nintex Ideas, how an idea is handled by our product teams and more!
Variable type conversion, numeric value truncation and groups
I recently hit a wall with a project involving Doc Gen and Workflow Cloud. I managed to work my way through it but a lot of what I was trying to get working felt like options that could be basic actions within the designer.
I was working with registration and attendance values for an event, these get entered as integer values into a form that then triggers the workflow. As I wanted % turnout I did the standard divide then multiplication calculations but the resulting value is returned as a 0. I quickly realised this was because I was trying to store the result in an integer value type, although I'd hoped that similar to traditional coding scenarios the value would at the least be truncated and at a hopeful stretch do some clever rounding.
The issues continued with having the value as a decimal as there's no control over the decimal accuracy of these and the 7-8 point defaults I got looked ridiculous on documents, especially when I was aiming for whole but rounded %s (e.g. 67.8456546% -> 68%).
Ultimately it took regexp action to break the value into a collection around the decimal point, then storing the base number to do another regexp on the decimal section making sure to ignore all but the first character, then a 'set a variable value' to do a type conversion on the decimal from string to int, then run-if to do a comparison if the resulting value was 5 or greater, at which point add 1 to the base value. It works much to my relief, but to get an accurate truncation (albeit a rounded truncation) it seems like a lot of steps and definitely not obvious.
It would be great to have actions to handle these conversions easier, e.g. 'a decimal to integer' action that allowed configuration over the number of decimal places (if any) and whether it was a straight truncation or involved rounding.
In addition, the amount of clutter this caused in my workflow with all my previous work already on there is crazy. Much of my work for this event is already handled over multiple workflows and some of the smaller steps I've made as one-offs don't justify being broken out into external workflow calls. I'd love the ability to have containers/groups. Purely visual in implementation, they would allow the selection of actions that can then be contained in an action shaped box that can then be appropriately named.
In multi-stage workflows this is far more intuitive as, although there is some action collapsing functionality already, the ability to separate out each stage would make viewing, designing and debugging workflows much nicer.
A good example use-case for this is on my Doc Gen workflow. At the very start it handles some of the form input data and does some calculations (like working out the turnout %s from above, just a Quality of Life addition for the submitter), it would be great to be able to collapse that into a 'pre-calculations' group within the workflow. The whole workflow could be collapsed into PreCalcs -> DataCollection -> DocGen -> Distribution. While calling another workflow could achieve a similar result, I'm already using a few others in this event so the amount of external calls and workflows becomes messy and unintuitive.
Furthermore external workflows are normally used in the case of being referenced in multiple other workflows. What I've built here would need to be broken up into 5 or so separate workflow calls and is specific to the point that you wouldn't call these workflows in other scenarios.
Groups would also allow these logically flowing section to be expandable/collapsible all within one workflow. The problem with expanding this one workflow out into 4 or 5 parts becomes the continuous jumping between workflows making what should be a logical multi-step workflow and design and debugging nightmare.
Maybe this has too much overlap from a product perspective with external workflow calls but I personally think this is a different area altogether and a much needed feature. Beyond that, coming back to value conversion and truncation these would also be great to see.
If you would like more information regarding what it is I'm trying to suggest or a break-down of my presented example use case, just let me know.