Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trigger AccountHistoryTracker on Account (after update) {
- List<Schema.FieldSetMember> trackedFields = SObjectType.Account.FieldSets.HistoryTracking.getFields();
- if (trackedFields.isEmpty()) return;
- List<AccountHistoryTracking__c> fieldChanges = new List<AccountHistoryTracking__c>();
- List<string> apiNameList = new List<string>();
- if(Trigger.isUpdate){
- for (Account aNew : trigger.new) {
- Account aOld = trigger.oldmap.get(aNew.Id);
- for (Schema.FieldSetMember fsm : trackedFields) {
- String fieldName = fsm.getFieldPath();
- String fieldLabel = fsm.getLabel();
- if (aNew.get(fieldName) != aOld.get(fieldName)) {
- String oldValue = String.valueOf(aOld.get(fieldName));
- String newValue = String.valueOf(aNew.get(fieldName));
- AccountHistoryTracking__c aht = new AccountHistoryTracking__c();
- aht.name = fieldLabel;
- aht.apiName__c = fieldName;
- aht.User__c = aNew.Id;
- aht.ChangedBy__c = UserInfo.getUserId();
- aht.OldValue__c = oldValue;
- aht.NewValue__c = newValue;
- aht.createddate__c = system.now();
- apiNameList.add(aht.apiName__c);
- fieldChanges.add(aht);
- }
- }
- }
- }
- if (!fieldChanges.isEmpty()) {
- insert fieldChanges;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement