SmartForms changes the order of if-statement with multiple conditions, which causes validation to behave differently
kbt152641
PRODUCTObjective
When you want to have two validation rules on a Form, for example a "When View passes Validation" and a "When Advanced Condition is True" rule, but you want them to fire at different times, then placing them directly underneath each other will result in both rules firing at the same time. In addition, the validation will only pass if both rules are either true or false.
For example, the reproduction would be the following:
If the Form is configured like the above, then the message will not be shown to the user if either the "Form passes validation" is false, or if the advanced condition is false.
Before You Begin
The validation rules were designed to only fire if both are true or both are false.
In other words, with the above example, if the controls on the Form pass validation (no empty text boxes for example) and the advanced condition is also true (1 equals 1) then the message box will be shown to the user.
However, if either the validation did not pass or the advanced condition is not true, then nothing will happen on the Form / View.
How-to Steps
In order to resolve this, you will have to split the two rules apart.
Here is an example of how to do this: