Partial vs Full Validation

Where can I find a detailed description when a validation rule is executed in the “Partial Validation” in the form engine e.g. in the UI Designer preview?

I’ve two rules on the same field. Here are the conditions
(1.) FieldNotFilled(BalanceUsaCan) and [TriggerUSAQuestionair] == 1
(2.) NumberOfFilledGroups(DaughterCompanies*) == 0 and [TriggerUSAQuestionair] == 1 and FieldFilled(BalanceUsaCan)

To me it seems (1.) is in the partial validation while (2.) is only in the full validation.

I’m afraid there is currently no detailed description for this. However, I will try to explain this here.

In the context of the form engine what you refer to is called screen validation because the form engine

  1. collects all visible fields on the current screen
    note that fields that are hidden because of dependencies or styling will not be considered
  2. finds all rules whose error fields are among those visible fields - i.e. the maximum amount of rules that could be displayed on this screen because errors are only be displayed at error fields at the moment
  3. finds all fields referenced by above mentioned rules
  4. executes a partial validation on the union of visible and referenced fields using the validation kernel
  5. displays all errors that were returned by the kernel

However, please keep in mind that there has been a bug regarding this behavior lately which is not fixed in all available release lines.

The logic described above applies to the following versions

  • 20.5.x
  • 2017.07u2 - with core version 21.3.8 or higher
  • 2018.05u1 and higher (note: this will be released soon)

It is not available in

  • 2017.07 → core releases before 21.3.8
  • 2018.01 (core releases 22.x)
  • 2018.05

In these versions the points 2 and 3 are missing which leads to the screen validation returning less errors because fields outside of e.g. repeats are not considered.