Guest User

Untitled

a guest
Nov 17th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. // Author Charlie@callaway.cloud
  2. // Replacement clone page which copies activity history
  3. public with sharing class LeadCloneWithActivitiesController {
  4.  
  5. private SObjectDeepClone cloner; //cloning util
  6.  
  7. public Lead clone {get; private set;} //editable lead
  8. public Metadata.Layout leadLayout {get; private set;} //layout
  9.  
  10. public Metadata.UiBehavior editEnum {
  11. get{ return Metadata.UiBehavior.Edit; }
  12. }
  13.  
  14. public LeadCloneWithActivitiesController(ApexPages.StandardController controller) {
  15. Id idToClone = ((Lead)controller.getRecord()).Id;
  16. try{
  17. //get lead layout
  18. List<Metadata.Metadata> components = Metadata.Operations.retrieve(
  19. Metadata.MetadataType.Layout,
  20. new String[]{'Lead-Lead Layout'}
  21. );
  22. leadLayout = (Metadata.Layout) components.get(0);
  23.  
  24. //setup clone obj
  25. cloner = new SObjectDeepClone(
  26. idToClone,
  27. new Set<String>{
  28. 'Tasks',
  29. 'Events'
  30. }
  31. );
  32. // set SObject so user can edit values
  33. this.clone = (Lead) cloner.clone;
  34.  
  35. }catch(Exception e){
  36. ApexPages.addMessages(e);
  37. }
  38. }
  39.  
  40. //save object
  41. public PageReference saveClone() {
  42. try{
  43. Id newLeadId = cloner.save();
  44. return new PageReference('/'+newLeadId);
  45. }catch(Exception e){
  46. ApexPages.addMessages(e);
  47. return null;
  48. }
  49. }
  50.  
  51. }
Add Comment
Please, Sign In to add comment