Я думаю, у вас много проблем:
- Каков контекст / цель этого кода?
- Запрос с использованием
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;
}
}