Skip to main content
Updated the code !
Source Link
Amit Bangad
  • 3.9k
  • 1
  • 17
  • 19

Class can be improved a lot :

Issues :

  1. Query in For loop

  2. Added cyclomatic complexity

  3. Bad Indentation

  4. Empty check before DMLs

    trigger MySLA on Account (after Update) { List newAccountListMap<Id,Account> newAccountMap = trigger.New;NewMap; Map<Id,Account> oldAccountMap = trigger.OldMap; Set accIds = new Set(); for(Account a : newAccountListnewAccountMap.values()){ if(a.SLA__c == 'Bronze' && oldAccountMap.get(a.Id).SLA__c != 'Bronze'){ accIds.add(a.Id); } } if(!accIds.IsEmpty()){ list conlist = new list(); list cons = [select AccountId, SLA_Serial_Number__c,SLA__c,SLA_Expiration_Date__c from contact where accountid IN :Trigger.new];accIds]; for(contact c:cons) { c.SLA__c = 'Bronze'; c.SLA_Expiration_Date__c = anewAccountMap.get(c.AccountId).SLAExpirationDate__c; c.SLA_Serial_Number__c = anewAccountMap.get(c.AccountId).SLASerialNumber__c; conlist.add(c); } if(!conlist.IsEmpty()){ update conlist; } } }

Class can be improved a lot :

Issues :

  1. Query in For loop

  2. Added cyclomatic complexity

  3. Bad Indentation

  4. Empty check before DMLs

    trigger MySLA on Account (after Update) { List newAccountList = trigger.New; Map<Id,Account> oldAccountMap = trigger.OldMap; Set accIds = new Set(); for(Account a : newAccountList){ if(a.SLA__c == 'Bronze' && oldAccountMap.get(a.Id).SLA__c != 'Bronze'){ accIds.add(a.Id); } } if(!accIds.IsEmpty()){ list conlist = new list(); list cons = [select SLA_Serial_Number__c,SLA__c,SLA_Expiration_Date__c from contact where accountid IN :Trigger.new]; for(contact c:cons) { c.SLA__c = 'Bronze'; c.SLA_Expiration_Date__c = a.SLAExpirationDate__c; c.SLA_Serial_Number__c = a.SLASerialNumber__c; conlist.add(c); } if(!conlist.IsEmpty()){ update conlist; } } }

Class can be improved a lot :

Issues :

  1. Query in For loop

  2. Added cyclomatic complexity

  3. Bad Indentation

  4. Empty check before DMLs

    trigger MySLA on Account (after Update) { Map<Id,Account> newAccountMap = trigger.NewMap; Map<Id,Account> oldAccountMap = trigger.OldMap; Set accIds = new Set(); for(Account a : newAccountMap.values()){ if(a.SLA__c == 'Bronze' && oldAccountMap.get(a.Id).SLA__c != 'Bronze'){ accIds.add(a.Id); } } if(!accIds.IsEmpty()){ list conlist = new list(); list cons = [select AccountId, SLA_Serial_Number__c,SLA__c,SLA_Expiration_Date__c from contact where accountid IN :accIds]; for(contact c:cons) { c.SLA__c = 'Bronze'; c.SLA_Expiration_Date__c = newAccountMap.get(c.AccountId).SLAExpirationDate__c; c.SLA_Serial_Number__c = newAccountMap.get(c.AccountId).SLASerialNumber__c; conlist.add(c); } if(!conlist.IsEmpty()){ update conlist; } } }

Source Link
Amit Bangad
  • 3.9k
  • 1
  • 17
  • 19

Class can be improved a lot :

Issues :

  1. Query in For loop

  2. Added cyclomatic complexity

  3. Bad Indentation

  4. Empty check before DMLs

    trigger MySLA on Account (after Update) { List newAccountList = trigger.New; Map<Id,Account> oldAccountMap = trigger.OldMap; Set accIds = new Set(); for(Account a : newAccountList){ if(a.SLA__c == 'Bronze' && oldAccountMap.get(a.Id).SLA__c != 'Bronze'){ accIds.add(a.Id); } } if(!accIds.IsEmpty()){ list conlist = new list(); list cons = [select SLA_Serial_Number__c,SLA__c,SLA_Expiration_Date__c from contact where accountid IN :Trigger.new]; for(contact c:cons) { c.SLA__c = 'Bronze'; c.SLA_Expiration_Date__c = a.SLAExpirationDate__c; c.SLA_Serial_Number__c = a.SLASerialNumber__c; conlist.add(c); } if(!conlist.IsEmpty()){ update conlist; } } }