Cloning Child Records in Salesforce
A problem that cropped up a while ago for me along with a lot of other people in the Salesforce community is how do I go about cloning child records in Salesforce along with the master record. I had quite a specific custom reason for needing this functionality that I will explain in a second.
A standard example of this might be that you would like to clone an Account with all associated Contacts, Activity History and Opportunities. Currently Salesforce only allows you to clone the Account record itself leaving you to create the other associated objects manually.
The specific requirement we needed was to do with two custom objects, Projects and Project Activities, these were created with a master detail relationship respectively. They are pretty self explanatory but essentially a Project had multiple Project Activities attached to it, these differed depending on the type of project that was being carried out. The requirement was to add in a cloning functionality so that multiple “Template Projects” could exist and be cloned. This saved our solutions team creating projects with the relevant activities each time.
Not being from a development background myself I needed to find a solution that was cheap, required little maintenance and simply worked. This is when I came across Super Clone on the AppExchange.
So Super Clone is a relatively new app made by a guy called Dave Helgerson and its filled a big void of free functionality. Iv’e previously used an app called Clone Related Lists made by Salesforce Labs and in short in works but with a great deal of trouble (about a day of messing around with the apex classes). Super Clone just works.
Super Clone is a very straight forward App that has a clear bit of functionality. The package itself is relatively small and all the components can be well understood, I much prefer this to some applications that come with an unnecessary amount of App’s, Objects and Tabs that serve no other purpose other than to clutter. Without even looking at Dave’s documentation it is ready to use out of the box. You simply click on the Super Clone Configuration Tab, create a new clone instance and then define the parameters. The only thing that is not included are the buttons to make the apex classes work, for me this wasn’t a problem. The Objects I was going to be cloning were custom anyway so no problem there. It would be quite useful to have some kind of example button to clone an Account object or similar so that users who aren’t very familiar with creating them have something to work with. But Dave does go into detail about how you can create one for any object on his blog.
The one thing that really stood out to me about this App compared to others I have worked with, is the fact that you can dig down to each individual field and specify how you want the cloning process to work with it. What I mean by this is that you can choose whether a specific field on a the master object or child object is going to be cloned, left alone or is going to equal a fixed value that you can specify. This came in very handy setting up templates for my projects that I talked about earlier.
For such a simple, small and basic application you can clearly see that a lot of thought has been put into developing this for the needs of Salesforce Administrators and their users. This application is now used on a daily basis inside our Org and without it we would waste a lot of time with unnecessary admin. It’s a shame Salesforce hasn’t developed something in house to counter this problem, but for now this App can be installed and setup in a matter of minutes. For anyone with a slight need for this functionality should definitely take a look. Good job Dave!