Component action numbered order is deceptive for inexperienced users

I recently had a question from a colleague who is fairly new to Ignition about why his component actions weren’t working properly. Turns out he had two actions defined that were supposed to happen in succession; however, the order that these events happen is actually indeterminate while the actions are executed in order, they are run asynchronously and can therefore finish out of order, but the interface itself makes it seem as though they will run sequentially.

image

yes and no…

Each Action is called in order from top to bottom. To control this execution order, you can reorder the list of Actions using the Up Arrow and Down Arrow icons next to the list. However, Actions are not executed synchronously: sequential actions do not wait for any prior Actions to finish executing before running. Thus, if Action 1 is a long-running script, while Action 2 is quick to finish, it is possible that Action 2 will finish before Action 1.

I don’t know why it’s like this. Seems to me like you should be able to choose whether they run synchronous or asynchronous.

I’d argue more yes than no, though. At face value, someone seeing the interface would assume they would run synchronously and would therefore assume it’s safe to put script actions prior to other actions and that they would execute sequentially.
Having the option to run sync/async would also be nice.
To be honest though, I’ve never used multiple actions and don’t think I ever would :man_shrugging:

I opened an issue for this :man_shrugging:

2 Likes

The real technical answer is that some (most, even) actions can run entirely on the frontend, so they will ~always run before an event that requires the gateway (e.g., a script action).

2 Likes