I have a string variable that gets set to null by an action. According to the outputs the value shows as null.
When I put the following condition it always evaluates to true even though it should be false
However, it I change the condition to:
empty(variables('email')) equals to false
This evaluates correctly.
My question is why is this so and why can't we use the condition to check the string variable for null as it clearly is null.
When should we use null check and when should we use 'empty' check?
I know for arrays is a difference between an empty array and null array.
But, clearly this string is a null value.
When ever you set the string variable to a null value Power Automate tries to convert it to a empty string.
That's why your condition doesn't produce the expected output when you try to compare it with null value.
Though you see null in the output it is actually an empty string and in the backend it is stored as "".
When you use empty() it produces the expected result as the string is clearly empty.
Please refer to the documentation for more insights regarding the same
If the information shared helps, please consider giving a thumbs up 👍 and mark solution as resolved
Never knew there was behind the scenes conversion for a string variable. In the world of C# programming a string that is assigned a null value is always null and not empty.
This is confusing to say the least especially when the output says null but the backend is actually ''.
So am I right to suggest that we should use the null compare for field values and empty comparison for string variable values ?
Check out the News & Announcements to learn more.
Check out the new Power Platform Community Connections gallery!
Congratulations, the new Super User Season 2 for 2021 has started!
Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.