我有一个名为社交帐户的铅和自定义对象(api name = social_account__c)。

我已经建立了一个关系,如下所示:潜在客户是社会账户的父母。因此,潜在客户有许多社会账户。

在社交帐户中,我制作了一个名为Lead(数据类型:查找)的自定义字段以建立关系。

这是一个查找细节:

API名称:Lead__C

与铅有关

儿童关系名称:social_accounts

相关列表标签:社交帐户

如果有相同的电子邮件地址的潜在客户,我想将新的社交帐户添加到现有潜在客户中。


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_C.导线_C

我究竟做错了什么?感谢任何建议。

谢谢

有帮助吗?

解决方案

您不能与DOT(。)运算符“通过更新”,而只能使用读取数据“通过”。

改变你的 social_account.Lead__c.id = existing_lead.Id;进入 social_account.Lead__c = existing_lead.Id;

应该是所有需要的。 Salesforce关系可以是

通过直接修改您创建的字段: Social_Account__c.Lead__c, ,将您要指向的对象的ID放在那里。

得到 (探索)通过对字段名称进行一些修改并使用点,在您的情况下可能是 Social_Account__c.Lead__r.(whatever fields on Lead you want).

“ _C”和“ _r”适用于自定义对象,例如,对于标准对象,有机会。AccountID字段进行设置,但是如果您想探索以键入帐户键入opporture.account.name。


如果您不必记住它 - 不用担心,我也会;)通常,当我遇到这样的汇编错误时,我会使用查询构建器(在Apex Explorer或Eclipse插件)尝试一下。我单击对象上的层次结构,它是孩子,是父母等,通常可以直接在我的Apex代码中使用生成的查询。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top