SmartForms Rule Execution in 4.7 versus Previous Versions

My client has just completed upgrading their K2 blackpearl and K2 SmartForms software from version 4.6.11 to 4.7. Here’s something I learned about how SmartForms behavior has changed in version 4’s final minor release.

Given a series of rule actions as follows:

  1. Open a subview
  2. Refresh a list
  3. Call a SmartObject
  4. Execute another rule

In SmartForms version 4.6.11, after the subview in action 1 opened, execution of the remaining actions would suspend until the subview closed; actions 2, 3 and 4 would fire afterwards.

But in SmartForms version 4.7, all actions fire without regard to the state of the subview opened in action 1. That is, the list refresh in action 2 immediately followed the opening of the subview in action 1, and so on.

Unfortunately for my client, this meant that users were seeing all kinds of weirdness in conjunction with the subview opening.

The solution — I found two instances of this on the same form — is pretty simple. I created a rule to capture the “When a subview is closing” event, and re-created actions 2 through 4 there. Finally, I removed actions 2 through 4 from the original rule.

There was something about rule execution in versions prior to 4.7 that allowed SmartForms builders to take this lazy approach… but it’s caught up with them.