Summary
When chaining AddRow actions, the OpenRow() or Activate() formula open the first row added instead of the one that it is added to.
This is true even if you use an intermediary Relations canvas control, where you can see that the Action formula results in a chain of new rows.
Video Walk-Through
Sorry about the choppy audio!
Scenario
Each button adds “Peach” to the table and then “Purple” with a reference to [Peach] in the Goal
Our goal is that:
The record added to is referenced in If we add “Peach” multiple times it will be the most recently added “Peach” that is referenced in Open the newly created “Purple Peach” in Buttons and their issues
Basic: add each row in order and associate them by Display value. This approach fails because if you click it twice it will select the first Character in that matches “Peach” instead of the newly added record. Bug: we chain AddRow. We add “Peach” to as the value for the Character column in as we add the row “Purple” to . The Activate() formula incorrectly opens the “Peach” row in instead of the “Purple” row in the table. Bug Set Control: we use a Relations canvas control to show how the approach used in the Bug column creates a chain of records, but Activate() cannot be targeted to open the most recently added row. Table Save State: we store the newly created “Peach” character from in the Save State column and then use that value to create the “Purple” row in with “Peach” assigned. This approach works but has two issues: If multiple users click the button at the same time it might associate the wrong records It creates duplicate columns for any Add Child Row you need Set Control Save State: our final solution. We can create the records, but temporarily store it in a Relation canvas control that references a single cell table and is set to Personal so it is only modified for the current user.
Test it out
Try the different buttons below. You can between each attempt.