Invalide relation de clé étrangère lorsque je tente d'ajouter un nouvel objet personnalisé à une avance exsting

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

Question

J'ai un plomb et un objet personnalisé appelé compte Social (API Name = Social_Account__c).

J'ai mis une relation comme suit: Le plomb est un parent des comptes sociaux. donc un chef de file a de nombreux comptes sociaux.

Dans le compte social, j'ai fait un champ personnalisé nommé Lead (Type de données: Recherche) pour rendre la relation

.

et est un détail de recherche ici:

API Nom: Lead__c

liés au plomb

Relation enfant Nom: Social_Accounts

Liste connexes Label: Comptes sociaux

Je voudrais ajouter de nouveaux comptes sociaux au plomb existant s'il y a une avance avec la même adresse e-mail.


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;
}

mais je reçois un message d'erreur suivant:

Erreur: Erreur de compilation: relation non valide clé étrangère: Social_Account_ c.Lead _c

ce que je fais mal? Je vous serais reconnaissant des suggestions.

Merci

Était-ce utile?

La solution

Vous ne pouvez pas « passer par relation » avec l'opérateur point (.) Avec des mises à jour, juste avec la lecture des données.

Modifier votre social_account.Lead__c.id = existing_lead.Id; dans social_account.Lead__c = existing_lead.Id;

devrait être tout ce qui est nécessaire. les relations de Salesforce peuvent être

SET en modifiant directement le champ que vous avez créé. Social_Account__c.Lead__c, mettre là Id de l'objet que vous voulez pointer vers

GET (exploré) en modifiant le nom du champ un peu et en utilisant le point, dans votre cas, il est probablement Social_Account__c.Lead__r.(whatever fields on Lead you want).

Le « _c » et « _r » sont des objets personnalisés, pour les standards, par exemple il y a champ Opportunity.AccountId pour le réglage mais si vous voulez explorer jusqu'à compte que vous tapez Opportunity.Account.Name.


Si vous avez du mal à se rappeler qu'il - ne vous inquiétez pas, moi aussi;) D'habitude, quand je reçois cette erreur de compilation que je l'essayer avec générateur de requêtes (dans Apex Explorer ou le plug-in Eclipse). Je clique par hiérarchie sur l'objet, il est des enfants, il est des parents, etc. et peuvent généralement utiliser des morceaux de requête générée directement dans mon code Apex.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top