Вы не можете «пройти через отношения» с оператором точки (.) С обновлениями, только с чтением данных.
Измени свой social_account.Lead__c.id = existing_lead.Id;
в social_account.Lead__c = existing_lead.Id;
Должно быть все, что нужно. Отношения с Salesforce могут быть
SET путем непосредственного изменения созданного вами поля: Social_Account__c.Lead__c
, с указанием идентификатора объекта, на который вы хотите указать.
GET (исследовано), немного изменив имя поля и используя точку, в вашем случае это, вероятно, Social_Account__c.Lead__r.(whatever fields on Lead you want)
.
"_c" и "_r" предназначены для пользовательских объектов, для стандартных, например, есть поле Opportunity.AccountId для настройки, но если вы хотите перейти к учетной записи, введите Opportunity.Account.Name.
Если у вас возникнут проблемы с запоминанием - не беспокойтесь, я тоже;) Обычно, когда я получаю такую ошибку компиляции, я пытаюсь сделать это с помощью построителя запросов (в Apex Explorer или плагине Eclipse). Я просматриваю иерархию объекта, его детей, его родителей и т. Д. И обычно могу использовать фрагменты сгенерированного запроса непосредственно в своем коде Apex.