• C@Cvty
  • NEWBIE
  • 0 Points
  • Member since 2007

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 2
    Questions
  • 6
    Replies
trigger SeminarATDupPreventer on Seminar_Submission_Management__c (before 

insert, before update) {
    Map<String, Seminar_Submission_Management__c> seminarMap = new 
    Map<String, Seminar_Submission_Management__c>();
    
    Map<Date, Seminar_Submission_Management__c> seminarMap2 = new
    Map<Date, Seminar_submission_Management__c> ();
    
    String NewKey;
        
    for (Seminar_Submission_Management__c seminar : System.Trigger.new) {
        
        /* Make sure we don't treat an seminar address that  
         isn't changing during an update as a duplicate.  */
    
        if ((seminar.Venue_Address1__c != null) && (seminar.Event_Date__c != null) 
             && (seminar.Event_Time__c != null) &&
                (System.Trigger.isInsert || 
                ((seminar.Venue_Address1__c != 
                                    System.Trigger.oldMap.get(seminar.Id).Venue_Address1__c) && 
                 (seminar.Event_Date__c != 
                (System.Trigger.oldMap.get(seminar.Id).Event_Date__c) &&
                 (seminar.Event_Time__c != 
                 System.Trigger.oldMap.get(seminar.Id).Event_Time__c)))) ||
                 
                  (System.Trigger.isUpdate || 
                  ((seminar.Venue_Address1__c != 
                                    System.Trigger.oldMap.get(seminar.Id).Venue_Address1__c) && 
                 (seminar.Event_Date__c != 
                (System.Trigger.oldMap.get(seminar.Id).Event_Date__c) &&
                 (seminar.Event_Time__c != 
                 System.Trigger.oldMap.get(seminar.Id).Event_Time__c))))
                    
                 
                 )
                 
                  {
        
            /* Make sure another new seminar isn't also a duplicate  */
    
            if (seminarMap.containsKey(seminar.Venue_Address1__c) &&
               (seminarMap2.containsKey(seminar.Event_Date__c) &&
               (seminarMap.containsKey(seminar.Event_Time__c)))) {
                seminar.Venue_Address1__c.addError('Another new Seminar has the '
                                    + 'same venue address.');
                seminar.Event_Date__c.addError('Another new Seminar has the same '
                    + 'Event Date');
                seminar.Event_Time__c.addError('Another new Seminar has the same '
                    + 'Event Time');
            } else {
                    seminarMap.put(seminar.Venue_Address1__c,seminar);
                    seminarMap2.put(seminar.Event_Date__c,seminar);                    
                    seminarMap.put(seminar.Event_Time__c,seminar);
                    
                    NewKey = (seminar.Venue_Address1__c + seminar.Event_Date__c + seminar.Event_Time__c); 
                    
                         }
                   }
                    
               }
    
    /* Using a single database query, find all the seminars in  
    
     the database that have the same venue address as any  
    
    of the seminars being inserted or updated.  */
    
 String OldKey;   

 for (Seminar_Submission_Management__c seminar1 : [SELECT Venue_Address1__c, 
      Event_Date__c, Event_Time__c

        FROM Seminar_Submission_Management__c
                      WHERE Venue_Address1__c  IN :seminarMap.KeySet()]) {
        Seminar_Submission_Management__c newSeminar1 = seminarMap.get

                    (seminar1.Venue_Address1__c);
         OldKey = (seminar1.Venue_Address1__c + seminar1.Event_Date__c + seminar1.Event_Time__c);
         
        If (OldKey == NewKey){            
        
        newSeminar1.Venue_Address1__c.addError('A Seminar with this Venue  '
                               + 'address already exists.'); 
                               
        newSeminar1.Event_Date__c.addError('A Seminar with this Event '
                               + 'Date already exists.');
                                              
         newSeminar1.Event_time__c.addError('A seminar with this event '
                               + 'Time already exists.');
         }  
    } 
  
  }

 Codes to make sure another new seminar isn't also a duplicate is not working. It does works for single transaction but when loading Seminar Submission thru Data Loader it failed withe errors 'Another New Siminar has the....' and also ERROR: Too many retries of batch save in the presence of Apex triggers with failures: when triggers are present partial save requires that some subset of rows save without any errors in order to avoid inconsistent side effects from those triggers. Number of retries: 2.

 

Any idea what I'm doin wrong?

Thanks in advance.

  • October 08, 2013
  • Like
  • 0

Apex trigger fired before Insert and Update, I was working when I create a new record but it failed when I do a mass load with Data Loader. The error message is : ERROR: Too many retries of batch save in the presence of Apex triggers with failures: when triggers are present partial save requires that some subset of rows save without any errors in order to avoid inconsistent side effects from those triggers. Number of retries: 2.

 

Can someone help me with this Trigger? Here is my Apex Codes. Sorry, don't know how to paste the codes with the nice format.

 

trigger SeminarATDupPreventer on Seminar_Submission_Management__c (before

insert, before update) {     Map<String, Seminar_Submission_Management__c> seminarMap = new     Map<String, Seminar_Submission_Management__c>();         Map<Date, Seminar_Submission_Management__c> seminarMap2 = new     Map<Date, Seminar_submission_Management__c> ();         String NewKey;             for (Seminar_Submission_Management__c seminar : System.Trigger.new) {                 /* Make sure we don't treat an seminar address that           isn't changing during an update as a duplicate.  */             if ((seminar.Venue_Address1__c != null) && (seminar.Event_Date__c != null)              && (seminar.Event_Time__c != null) &&                 (System.Trigger.isInsert ||                 ((seminar.Venue_Address1__c !=                                     System.Trigger.oldMap.get(seminar.Id).Venue_Address1__c) &&                  (seminar.Event_Date__c !=                 (System.Trigger.oldMap.get(seminar.Id).Event_Date__c) &&                  (seminar.Event_Time__c !=                  System.Trigger.oldMap.get(seminar.Id).Event_Time__c)))) ||                                    (System.Trigger.isUpdate ||                   ((seminar.Venue_Address1__c !=                                     System.Trigger.oldMap.get(seminar.Id).Venue_Address1__c) &&                  (seminar.Event_Date__c !=                 (System.Trigger.oldMap.get(seminar.Id).Event_Date__c)) &&                  (seminar.Event_Time__c !=                  System.Trigger.oldMap.get(seminar.Id).Event_Time__c))))                                                                                        {                     /* Make sure another new seminar isn't also a duplicate  */                 if (seminarMap.containsKey(seminar.Venue_Address1__c) &&                seminarMap2.containsKey(seminar.Event_Date__c) &&                seminarMap.containsKey(seminar.Event_Time__c)) {                 seminar.Venue_Address1__c.addError('Another new Seminar has the '                                     + 'same venue address.');                 seminar.Event_Date__c.addError('Another new Seminar has the same '                     + 'Event Date');                 seminar.Event_Time__c.addError('Another new Seminar has the same '                     + 'Event Time');             } else {                     seminarMap.put(seminar.Venue_Address1__c,seminar);                     seminarMap2.put(seminar.Event_Date__c,seminar);                                        seminarMap.put(seminar.Event_Time__c,seminar);                                         NewKey = (seminar.Venue_Address1__c + seminar.Event_Date__c + seminar.Event_Time__c);                                              }                    }                                    }         /* Using a single database query, find all the seminars in           the database that have the same venue address as any          of the seminars being inserted or updated.  */      String OldKey;  

 for (Seminar_Submission_Management__c seminar1 : [SELECT Venue_Address1__c,       Event_Date__c, Event_Time__c

        FROM Seminar_Submission_Management__c                       WHERE Venue_Address1__c  IN :seminarMap.KeySet()]) {         Seminar_Submission_Management__c newSeminar1 = seminarMap.get

                    (seminar1.Venue_Address1__c);          OldKey = (seminar1.Venue_Address1__c + seminar1.Event_Date__c + seminar1.Event_Time__c);                  If (OldKey == NewKey){                            newSeminar1.Venue_Address1__c.addError('A Seminar with this Venue  '                                + 'address already exists.');                                        newSeminar1.Event_Date__c.addError('A Seminar with this Event '                                + 'Date already exists.');                                                        newSeminar1.Event_time__c.addError('A seminar with this event '                                + 'Time already exists.');          }      }     }

  • October 07, 2013
  • Like
  • 0
trigger SeminarATDupPreventer on Seminar_Submission_Management__c (before 

insert, before update) {
    Map<String, Seminar_Submission_Management__c> seminarMap = new 
    Map<String, Seminar_Submission_Management__c>();
    
    Map<Date, Seminar_Submission_Management__c> seminarMap2 = new
    Map<Date, Seminar_submission_Management__c> ();
    
    String NewKey;
        
    for (Seminar_Submission_Management__c seminar : System.Trigger.new) {
        
        /* Make sure we don't treat an seminar address that  
         isn't changing during an update as a duplicate.  */
    
        if ((seminar.Venue_Address1__c != null) && (seminar.Event_Date__c != null) 
             && (seminar.Event_Time__c != null) &&
                (System.Trigger.isInsert || 
                ((seminar.Venue_Address1__c != 
                                    System.Trigger.oldMap.get(seminar.Id).Venue_Address1__c) && 
                 (seminar.Event_Date__c != 
                (System.Trigger.oldMap.get(seminar.Id).Event_Date__c) &&
                 (seminar.Event_Time__c != 
                 System.Trigger.oldMap.get(seminar.Id).Event_Time__c)))) ||
                 
                  (System.Trigger.isUpdate || 
                  ((seminar.Venue_Address1__c != 
                                    System.Trigger.oldMap.get(seminar.Id).Venue_Address1__c) && 
                 (seminar.Event_Date__c != 
                (System.Trigger.oldMap.get(seminar.Id).Event_Date__c) &&
                 (seminar.Event_Time__c != 
                 System.Trigger.oldMap.get(seminar.Id).Event_Time__c))))
                    
                 
                 )
                 
                  {
        
            /* Make sure another new seminar isn't also a duplicate  */
    
            if (seminarMap.containsKey(seminar.Venue_Address1__c) &&
               (seminarMap2.containsKey(seminar.Event_Date__c) &&
               (seminarMap.containsKey(seminar.Event_Time__c)))) {
                seminar.Venue_Address1__c.addError('Another new Seminar has the '
                                    + 'same venue address.');
                seminar.Event_Date__c.addError('Another new Seminar has the same '
                    + 'Event Date');
                seminar.Event_Time__c.addError('Another new Seminar has the same '
                    + 'Event Time');
            } else {
                    seminarMap.put(seminar.Venue_Address1__c,seminar);
                    seminarMap2.put(seminar.Event_Date__c,seminar);                    
                    seminarMap.put(seminar.Event_Time__c,seminar);
                    
                    NewKey = (seminar.Venue_Address1__c + seminar.Event_Date__c + seminar.Event_Time__c); 
                    
                         }
                   }
                    
               }
    
    /* Using a single database query, find all the seminars in  
    
     the database that have the same venue address as any  
    
    of the seminars being inserted or updated.  */
    
 String OldKey;   

 for (Seminar_Submission_Management__c seminar1 : [SELECT Venue_Address1__c, 
      Event_Date__c, Event_Time__c

        FROM Seminar_Submission_Management__c
                      WHERE Venue_Address1__c  IN :seminarMap.KeySet()]) {
        Seminar_Submission_Management__c newSeminar1 = seminarMap.get

                    (seminar1.Venue_Address1__c);
         OldKey = (seminar1.Venue_Address1__c + seminar1.Event_Date__c + seminar1.Event_Time__c);
         
        If (OldKey == NewKey){            
        
        newSeminar1.Venue_Address1__c.addError('A Seminar with this Venue  '
                               + 'address already exists.'); 
                               
        newSeminar1.Event_Date__c.addError('A Seminar with this Event '
                               + 'Date already exists.');
                                              
         newSeminar1.Event_time__c.addError('A seminar with this event '
                               + 'Time already exists.');
         }  
    } 
  
  }

 Codes to make sure another new seminar isn't also a duplicate is not working. It does works for single transaction but when loading Seminar Submission thru Data Loader it failed withe errors 'Another New Siminar has the....' and also ERROR: Too many retries of batch save in the presence of Apex triggers with failures: when triggers are present partial save requires that some subset of rows save without any errors in order to avoid inconsistent side effects from those triggers. Number of retries: 2.

 

Any idea what I'm doin wrong?

Thanks in advance.

  • October 08, 2013
  • Like
  • 0