Как обновить связанные дела и поля из одного типа записи в другой тип записи в лиде - PullRequest
0 голосов
/ 07 августа 2020
public class UpdaterecordtypeforLead {
    Public static void Leadtootherupdate() {
     List<Lead> OlderLead = [SELECT Id,Name, RecordTypeId from Lead where RecordType.Name = 'Enquiries'];
    List<Lead> NewLead = New List<Lead> ();
    If(NewLead.Id == null)
    {
       for( Lead l : OlderLead) {
          for(Lead l1 : NewLead) {
               l1.LastName = l.LastName;
               l1.Email= l.Email;
               NewLead.add(l1);
               NewLead.add(l1);
              Insert l1;
          }
       }
    
    If ( (l1. LastName == l.LastName && l1.Email == l.Email)) 
    {
          NewLead.add(OlderLead.Related_Cases__c);
          NewLead.add(l.Id);
          Update NewLead;
   }
} 
     
    }
}
     

Ошибка при сохранении.

введите описание изображения здесь

1 Ответ

0 голосов
/ 21 августа 2020

Я думаю, у вас много проблем:

  • Каков контекст / цель этого кода?
  • Запрос с использованием DeveloperName не Name, поскольку он зависит от языка
  • Тестирование if (NewLead.Id == null), когда `NewLead` является списком, не будет работать
  • Зацикливание на NewLead по какой причине?
  • Дубликат NewLead.add(l1)
  • Вставка в al oop приведет вас к ограничениям регулятора, и ее следует избегать, go для массовой вставки
  • if находится за пределами l oop
  • Не обновлять что-то, что вы просто вставляете, вместо этого убедитесь, что все в порядке, прежде чем вставлять
  • NewLead - это список Lead, поэтому вы не можете добавить к нему OlderLead.Related_Cases__c или l.Id
  • Подумайте о правильном отступе вашего кода, другим будет легче читать
  • Используйте соглашения об именах

Фиксированный код, вероятно, будет примерно таким:

public class UpdateRecordtypeForLead {
    public static void leadToOtherUpdate () {
        List<Lead> olderLeads = [
            SELECT 
                Id,
                LastName,
                Email,
                RecordTypeId
            FROM 
                Lead 
            WHERE 
                RecordType.DeveloperName = 'Enquiries'
        ];
        List<Lead> newLeads = New List<Lead>();

        for (Lead olderLead : olderLeads) {
            newLeads.add(new Lead(
                Id = olderLead.Id,
                LastName = olderLead.LastName,
                Email = olderLead.Email,
                RecordTypeId = 'the_new_record_type_id'
            ));
          }
       }

       update newLeads;
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...