So you need to know if a value inside a function or expression (or anywhere!) is a number or an integer? Well join the club.
Flow/Power Automate has long needed something like this, but it just hasn't reared its head properly. There is a provision in the Azure Logic Functions for an isInt() function, which is part of the list of functions linked from Power Automate. This should define specifically if a value is an integer. However it doesn't quite work over here. I've raised this as a bug.
However, none of this should stop anyone from defining whether or not a value is a number/integer or not.
Maybe you're planning on using a value to fill an integer variable, or field, somewhere, and want to ensure entries are corrected en route. Perhaps you are in the middle of a long expression, and part of it relies on knowing if a value is a number or integer outside of the conventional flow logic.
There are some ways of accomplishing some of this using error management (here's an example of handling errors - but not in relation to this issue), but that doesn't help with expressions that need it.
Finally ... maybe if you're super clever ... I have a feeling that with this you can use it to put logic gates into expressions, too.
I'm placing this here because I don't upload flows, sorry.
Solved! Go to Solution.
The below expression will basically return a true value if the value that you pass through in ENTER_SOURCE is a number of any kind (including floating points).
|
To explain what's happening here, I will work from the inside, out:
That does make it seem a lot more complicated than it is, though. Essentially, you make a JSON object with your value inside a field, convert that to XML, use XPATH to check if it's a number, and pass out a true/false value.
If you want to be extra careful, you can wrap your initial value in a trim() function, too, which will ensure there's no leading or following spaces on it.
|
That's all she wrote.
The below expression will basically return a true value if the value that you pass through in ENTER_SOURCE is a number of any kind (including floating points).
|
To explain what's happening here, I will work from the inside, out:
That does make it seem a lot more complicated than it is, though. Essentially, you make a JSON object with your value inside a field, convert that to XML, use XPATH to check if it's a number, and pass out a true/false value.
If you want to be extra careful, you can wrap your initial value in a trim() function, too, which will ensure there's no leading or following spaces on it.
|
That's all she wrote.
For whatever reason editing either of the previous posts is proving problematic, so apologies if this looks like a bump, it most certainly is *not*. 🙂
I've realised that step 2 is pointless, but it does help you understand some of the structures you'll see elsewhere. You'll be fine with this:
xml(concat('<N>',ENTER_SOURCE, '</N>'))
User | Count |
---|---|
95 | |
46 | |
21 | |
18 | |
17 |
User | Count |
---|---|
141 | |
50 | |
43 | |
40 | |
29 |