Thanks, @peterdykstra and other staff, for considering my question about CSV during today's office hours. As I mentioned, I've reviewed the various help articles you mentioned, as well as searched the community forum. I don't find an answer to my challenge--which I assume is not an uncommon use case--although I also acknowledge I may be missing or misinterpreting the reference information available.
Anyway, here's the concrete question again since you said you'd follow up with more direct guidance.
I need an "import CSV" action from a parent table row to populate child table rows (child rows should have parent ID column automatically populated). My challenge is figuring out how to populate the child row's parent ID when the child row is created via CSV import.
By way of illustration:
I assume the view that has the CSV Import is an inline view?
Yes, that's how I've designed it so far. I've tried:
If there's a different approach that works, I'd be happy to use that instead.
I figured out an approach via sequential actions, and have a follow-up question.
INDEX(SELECT(Lists[List ID], [User ID] = INDEX(Current User[User ID], 1)), 1)
Here's my question: When I invoke each of those actions manually, it works as expected. However, when I create a composite action to invoke them as a series, the CSV import fails, saying that the required parent ID reference is empty. It seems that updating the spreadsheet data source with the user's ID is still pending by the time the CSV import has already begun. Is there a good way to deal with that lag?
It's convoluted, but I now figured out an approach to deal with the sync lag.
Here's an outline of the action sequence:
Thanks @dbaum ! I'm honored and glad you found what I posted to be useful!
It turns out I rejoiced too soon. It works intermittently. Any of the following can occur:
I've fiddled with the sequence of steps; which ones occur in group 1 vs. group 2; the conditions to run each action "Only if this condition is true". Nothing works reliably.
So, per the similar techniques that @TeeSee1 and I came to independently (i.e., populate either the parent ID or the CSV import in a temporary location), it's at least possible to use 2 separate series of actions to populate the parent ID in child rows uploaded via CSV. The challenge remains how to connect those 2 series of actions so the user doesn't have to manually invoke each one.
Now, I'm back to hoping @peterdykstra can follow up on our brief exchange in this week's office hours or others in the community can help. I hope there's a more elegant solution than 2 separate series of actions. If not, I hope there's a solution for having the user only invoke the first series and then the second series proceeds once 2-way sync of data updated via the first series has completed.
As you have all found out, this is not something that is straight-forward. The only way I've found to make this work, is to build a system inside the child table that reconstructs the parent ID; but this means you have to use constructed IDs, as well as providing space to enter any relevant parent information inside the child so it's present when importing the CSV.
I put together a video showing how to do this, and intended to make it public... but completely forgot to go back and mark it so. THANKS FOR REMINDING ME!!! (^_^)
----------------------------------
I've got a protocol guide for for setting something like this up, mainly because of how many moving parts there are in getting things correct.
User | Count |
---|---|
37 | |
30 | |
29 | |
20 | |
18 |