We are using 2023.06ext6.
We have a Dependant Control that is a computed value. Based on that we are displaying different inputs. If we now trigger a type definition error. This causes all computed values to be null and thus the input field disappears and the user cannot fix the invalid input.
In the example provided ValueSelect has a category INPUT_TYPE. This is the value we are determining which input fields we are showing. To achieve that we have a computed field Input_Type. Input_Type is the dependant control, which is used to show specific input fields.
If we now select “Value1” and input a value like “9.0099” in the field “Input 1” or “Always Visible” the field “Input 1” disappears.
Is this a known issue, or is this intended behaviour? Is there a workaround we can use?
DomainProblemModel.json (11.2 KB)
FormProblemModel.json (9.8 KB)
Hi @simon-flat-thread
This is very similar to the issue described in Weird behaviour when input decimal to a number field.
There is a known issue relating to Formal Validation and Computation where a formally invalid field leads to all computations being skipped. As the fields are cleared first, this lead to Computed Fields with the value null. As we said in the other post, this issue should be fixed with the 2025.06 release.
The expectation is that only Computations that reference the formally invalid data should not be carried out. All other Computations should work as normal in 2025.06
There isn’t a modeling workaround for this but @erik-radiant-gorge suggested using a custom convert in the linked thread to prevent invalid data being entered.
On a separate note, the models that you provided have some potentially problematic Computation Rules.
The Preconditions:
FieldFilled(Input_Visible_INPUT1)
FieldFilled(Input_Visible_INPUT2)
are not mutually exclusive as you do not enforce that Input_Visible_INPUT1 and Input_Visible_INPUT2 are not filled at the same time or link the input Fields to the ValueSelect Field in any way.
These should be remodeled as:
FieldFilled(Input_Visible_INPUT1) And [ValueSelect->INPUT_TYPE] == "INPUT1"
FieldNotFilled(Input_Visible_INPUT1) And [ValueSelect->INPUT_TYPE] == "INPUT2"
This ensures that the value is only used, when the ValueSelect Field has been set accordingly.
See Modeling computed boolean based on integer value - #11 by gmorga-ramirez for more information.