Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2014
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. trigger AccountHistoryTracker on Account (after update) {
  2. List<Schema.FieldSetMember> trackedFields = SObjectType.Account.FieldSets.HistoryTracking.getFields();
  3. if (trackedFields.isEmpty()) return;
  4.  
  5. List<AccountHistoryTracking__c> fieldChanges = new List<AccountHistoryTracking__c>();
  6.  
  7. List<string> apiNameList = new List<string>();
  8.  
  9. if(Trigger.isUpdate){
  10. for (Account aNew : trigger.new) {
  11.  
  12. Account aOld = trigger.oldmap.get(aNew.Id);
  13.  
  14. for (Schema.FieldSetMember fsm : trackedFields) {
  15.  
  16. String fieldName = fsm.getFieldPath();
  17. String fieldLabel = fsm.getLabel();
  18.  
  19. if (aNew.get(fieldName) != aOld.get(fieldName)) {
  20.  
  21. String oldValue = String.valueOf(aOld.get(fieldName));
  22. String newValue = String.valueOf(aNew.get(fieldName));
  23.  
  24. AccountHistoryTracking__c aht = new AccountHistoryTracking__c();
  25. aht.name = fieldLabel;
  26. aht.apiName__c = fieldName;
  27. aht.User__c = aNew.Id;
  28. aht.ChangedBy__c = UserInfo.getUserId();
  29. aht.OldValue__c = oldValue;
  30. aht.NewValue__c = newValue;
  31. aht.createddate__c = system.now();
  32.  
  33. apiNameList.add(aht.apiName__c);
  34. fieldChanges.add(aht);
  35. }
  36. }
  37. }
  38. }
  39. if (!fieldChanges.isEmpty()) {
  40. insert fieldChanges;
  41. }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement