Триггер для обновления связанной с ним записи на основе контакта

Я создал триггер, который будет обновлять поле Resume_Souce__c в контакте на основе имени имени записи ETCObject.

Триггеры, кажется, работают, но по какой-то причине не обновляют поле Resume_Source__c на основе значения в поле «Имя». Он просто обновляет его с помощью «Другого», даже если имя ETCObject содержит «JobsDB».

Вот код:

trigger DerekUpdateResumeSource on AVTRRT__ETCObject__c (after insert, after update) {

    Map<Id, AVTRRT__ETCObject__c> ETCmap = new Map<Id,AVTRRT__ETCObject__c>();
    for(AVTRRT__ETCObject__c a:trigger.new)
    {
        ETCmap.put(a.AVTRRT__Candidate__c, a);
    }
    List<Contact> candidate = [Select Id, AVTRRT__Source__c from Contact WHERE ID IN:ETCmap.keyset() AND RecordtypeID = '012A0000000v0La'];
    List<Contact> ContactsToUpdate = new List<Contact>();
    for(Contact c:candidate)
    {
       If(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('jobsDB'))
       {
           c.AVTRRT__Source__c = 'JobsDB';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('Clyde Marine Recruitment')){
           c.AVTRRT__Source__c = 'Clyde Marine Recruitment';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('Corporate Event')){
           c.AVTRRT__Source__c = 'Corporate Event';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('e Financial Careers')){
           c.AVTRRT__Source__c = 'e Financial Careers';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('Head Hunt')){
           c.AVTRRT__Source__c = 'Head Hunt';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('Indeed')){
           c.AVTRRT__Source__c = 'Indeed';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('Jobstreet')){
           c.AVTRRT__Source__c = 'Jobstreet';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('Linked In')){
           c.AVTRRT__Source__c = 'Linked In';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('Linkedin Advert')){
           c.AVTRRT__Source__c = 'Linkedin Advert';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('LinkedIn Recruiter')){
           c.AVTRRT__Source__c = 'LinkedIn Recruiter';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('Oil&Gas JobSearch')){
           c.AVTRRT__Source__c = 'Oil&Gas JobSearch';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('OilCareers')){
           c.AVTRRT__Source__c = 'OilCareers';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('Reed')){
           c.AVTRRT__Source__c = 'Reed';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('Referrals')){
           c.AVTRRT__Source__c = 'Referrals';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('S1 Jobs')){
           c.AVTRRT__Source__c = 'S1 Jobs';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('Straits Times')){
           c.AVTRRT__Source__c = 'Straits Times';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('Trade Winds')){
           c.AVTRRT__Source__c = 'Trade Winds';
           ContactsToUpdate.add(c);
       } else if(c.AVTRRT__Source__c == '' && ETCmap.get(c.Id).AVTRRT__Name__c.contains('UK Job Centre')){
           c.AVTRRT__Source__c = 'UK Job Centre';
           ContactsToUpdate.add(c);
       } else {
           c.AVTRRT__Source__c = 'Other';
           ContactsToUpdate.add(c);
       }
   }
update ContactsToUpdate;
}

person Derek Patrick Daya    schedule 13.10.2014    source источник


Ответы (1)


По некоторым причинам он не распознает '' в критериях if. После замены он обнулится, он заработал как положено.

иначе если (c.AVTRRT__Source__c == ''

to

иначе если (c.AVTRRT__Source__c == ноль

person Derek Patrick Daya    schedule 13.10.2014