Make identical copies of all records in a model?

  • 1
  • Question
  • Updated 3 years ago
I am trying to use the action framework to create a new record based on an existing record. On a single record basis, this is easy, but I need to do it in mass with a single button push. There would only be maybe a dozen records in the model that the operation would work on, but I need carbon copies of each of the 12 records created as new records in the same or another model. I tried "Adopt Rows". I can't seem to find much documentation on it, but from what I can see it seems that if the source record is saved, then it has an Id. If it has an Id, then the Adopt Rows function will merge it with existing rows instead of creating new rows. Is there any way to accomplish what I am trying to do with action framework?
Photo of Skuidward Tentacles (Raymond)

Skuidward Tentacles (Raymond), Champion

  • 17,224 Points 10k badge 2x thumb

Posted 3 years ago

  • 1
Photo of mB Pat Vachon

mB Pat Vachon, Champion

  • 42,714 Points 20k badge 2x thumb
This can be done in a couple steps. First the setup.
  1. Create a model to adopt the selected rows into. Call it "AdoptRowsModel".
  2. Create a model with "Clone Always" and a condition where Id in Id of "AdoptRowsModel". Call it "CloneModel".
Now, the mass action action framework.
  1. Adopt Rows into "AdoptRowsModel"
  2. Query "CloneModel"
  3. Save
Done. :D
Photo of Skuidward Tentacles (Raymond)

Skuidward Tentacles (Raymond), Champion

  • 17,224 Points 10k badge 2x thumb
Pat, you are awesome. I haven't tried this yet, but I will. In the meantime, I came across this post which uses a java snippet. I modified it for my models and the fact that I want to iterate through the source model records for my each statement instead of a third model like contacts. I ran a test and it works, except I would have to map every field I want copied into the new model. Yours sounds much faster, but the following does work as well. http://help.skuidify.com/s/tutorials/...
Thanks for your help.
Photo of Skuidward Tentacles (Raymond)

Skuidward Tentacles (Raymond), Champion

  • 17,224 Points 10k badge 2x thumb
HA! It worked! Thanks Pat! Never thought to use clone always in a separate model. Nice piece of skuidery!
Photo of Skuidward Tentacles (Raymond)

Skuidward Tentacles (Raymond), Champion

  • 17,224 Points 10k badge 2x thumb
Yes, that is actually what I am doing, but when you clone the children (like contacts) they are cloned with the existing Account. At what point in the action flow do you introduce the change of account on all children contacts? I have tried a couple of things, but can't get my children to switch parents. I made sure that the master/child relationship is set to reparent.
Photo of mB Pat Vachon

mB Pat Vachon, Champion

  • 42,714 Points 20k badge 2x thumb
You should be able to use the method, so long as you query all models in the one query action.
Photo of Skuidward Tentacles (Raymond)

Skuidward Tentacles (Raymond), Champion

  • 17,224 Points 10k badge 2x thumb
Sorry to be a pain, but what method of updating the parent account would you recommend?
1) model action on the clone always model triggered by requery?
2) a condition on the clone always model set to have the account ID set to the newly cloned account?
3) Other?
As always, thanks for the help
Photo of mB Pat Vachon

mB Pat Vachon, Champion

  • 42,714 Points 20k badge 2x thumb
I'm not sure I understand. If you set two models,Accounts & AccountContacts, to query with "Clone Always", then both set of records will clone. The Contacts will be set to the new cloned set of accounts.
Photo of Skuidward Tentacles (Raymond)

Skuidward Tentacles (Raymond), Champion

  • 17,224 Points 10k badge 2x thumb
Ah, that is where I was missing something. I used a create new on my top level object and then the adopt rows and clone always on the children. I have been unable to get any mid stream changes to stick using update fields on rows. I'll try cloning the top level ands see if it solves my issue. Thanks!
Photo of Skuidward Tentacles (Raymond)

Skuidward Tentacles (Raymond), Champion

  • 17,224 Points 10k badge 2x thumb
Finally got back around to this. I added a model action on the clone always model to update fields upon query. This allows me to clone MOST of the original but change a few fields in my clones. Thanks for the help with this! Works great!