Недопустимая связь внешнего ключа при попытке добавить новый пользовательский объект к существующему интересу.

StackOverflow https://stackoverflow.com/questions/3791998

Вопрос

У меня есть интерес и пользовательский объект под названием «Социальная учетная запись» (имя API = Social_Account__c).

Я установил отношения следующим образом:Lead является родителем социальных аккаунтов.поэтому у лида много аккаунтов в социальных сетях.

В социальной учетной записи я создал настраиваемое поле с именем «Лид» (тип данных:Поиск), чтобы установить связь.

и вот детали поиска:

Имя API:Ведущий__c

Связано с лидерством

Имя дочернего родства:Социальные_аккаунты

Метка связанного списка:Социальные аккаунты

Я хотел бы добавить новые учетные записи в социальных сетях к существующему интересу, если есть интерес с таким же адресом электронной почты.


Social_Account__c social_account = new Social_Account__c();
/*add whatever fields on social_account*/

List<Lead> leads =[select Id from Lead where Email =:emailAddress ];
if(leads.size()>0)
{ 
    Lead existing_lead = new Lead(Id = leads[0].id);
    //ideally i would like to do something like this
    social_account.Lead__c.id = existing_lead.id; //this is where I get an error from

    insert social_account;
    update existing_lead;
}

но я получаю следующее сообщение об ошибке:

Ошибка:Ошибка компиляции:Неверное отношение внешнего ключа:Социальный_аккаунт_в.Свинец

Что я делаю не так?Буду признателен за любые предложения.

Спасибо

Это было полезно?

Решение

Вы не можете «пройти через отношение» с помощью оператора точки (.) с обновлениями, просто читая данные.

Измените свой social_account.Lead__c.id = existing_lead.Id;в social_account.Lead__c = existing_lead.Id;

Должно быть все, что нужно.Отношения с отделом продаж могут быть

НАБОР путем непосредственного изменения созданного вами поля: Social_Account__c.Lead__c, поместив туда идентификатор объекта, на который вы хотите указать.

ПОЛУЧАТЬ (исследовано), немного изменив имя поля и используя точку, в вашем случае это, вероятно, Social_Account__c.Lead__r.(whatever fields on Lead you want).

«_c» и «_r» предназначены для пользовательских объектов, например, для стандартных объектов есть поле Opportunity.AccountId для настройки, но если вы хотите изучить учетную запись, введите Opportunity.Account.Name.


Если у вас возникнут проблемы с запоминанием — не волнуйтесь, я тоже;) Обычно, когда я получаю такую ​​ошибку компиляции, я пробую это с помощью построителя запросов (в Apex Explorer или плагине Eclipse).Я просматриваю иерархию объекта, его дочерние элементы, родительские элементы и т. д., и обычно могу использовать фрагменты сгенерированного запроса непосредственно в своем коде Apex.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top