Choice controls remain active after disabling the View on a Form
KBS100104
PRODUCTIssue
When disabling a View on a Form using a Form Rule, Choice Controls still remain active when they are set to Display Type: Check Box List or Radio Button List.
Symptoms
When a Form Rule is used to disable the View and the actions are executed asynchronously, the Choice Control will not be disabled.
The following rule configuration will result in the issue:
then start the following asynchronously
asynchronously on ChoiceView View, execute the Initialize method (configure)
asynchronously disable ChoiceView View
In Runtime, the Form containing the View will display as follows:
Resolution
A bug item was logged with the Developers. A fix should be included in a future update for K2.
The issue appears to be related to the "asynchronously Initialize the View" Rule on the Form, and only when Choice Control is set to Radio Button List or Check Box List.
The following workarounds are suggested:
Workaround 1 is to make the Form rule execute synchronously (then complete the following one after another). This will have an impact in terms of potential UI lockup. The UI will wait for all the controls to load in before removing the spinner. This will become more apparent if large lists of data is fetched for each control being populated.
then complete the following one after another
then on ChoiceView View, execute the Initialize method (configure)
then disable ChoiceView View
Workaround 2 is a design consideration: Use a Choice Drop-Down List in place of a Choice Radio Button List or Choice Check Box List.
Performance wise, this would be the best, but it might not be the preferred user experience.
Workaround 3 is to disable the view and then disable just the control in a separate action.
This results in an insignificant negative performance impact.
When the Form is Initializing
then start the following asynchronously
asynchronously on ChoiceView View, execute the Initialize method (configure)
asynchronously disable ChoiceView View
asynchronously on ChoiceView View, disable Choice control