RunAction moving on to future steps before Pack finishes operation

I have a button with the following operation:

  1. Iterate through a list of rows
  2. For each row, collect three buttons to push
  3. Then push them in order

Some important context:

  • The first button runs a pack method that modifies a value.
  • The second button is disabled unless button one has modified said value
  • And button three does another unimportant operation (it deletes its own row)

Here’s the problem:
RunActions is trying to push Button 2 before Button 1 has finished, so it’s still disabled and gets skipped.

The Pack method is lightweight – it’s a regex replacement so it’s not doing anything crazy. Any suggestions on how I can either:

  • Speed up my pack’s method running?
  • Force sequential (instead of parallel) execution?

Here’s my button:

RunActions(
[MsgBuilder: Drafts]
    .Filter(Automation.IsNotBlank())
    .FormulaMap(
      List(
        [btn Apply Template],
        [btn Queue Draft],
        [btn Discard]
      )
    )
)
1 Like

Hi @Christian_Rodriguez3 - I’ve done some testing, and I don’t think this is related to Packs, but rather how you are structuring your RunActions formula. When you pass each action as a parameter they are run sequentially:

RunActions(A, B, C)

But if you pass the actions as a list they are run in parallel:

RunActions(List(A, B, C))

In your case you are passing a list of lists, which behaves the same way. This behavior can be seen with native formulas and Pack formulas. Pack formulas take longer to run, so it could be that the behavior is more pronounced, but it’s not related to Packs themselves.

Hope this helps!

5 Likes

Got it, thanks for that! If anyone runs into this in the future, I ended up adding a button to each row that runs all of the actions, then have the FormulaMap push those.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.