Non valide relation de clé étrangère lorsque j'essaie d'ajouter un nouvel objet personnalisé à un exsting plomb
J'ai un Plomb et un objet personnalisé appelé Sociaux Compte de (Nom de l'API = Social_Compte__c).
J'ai défini une relation comme suit: le Plomb est un parent de Comptes des réseaux Sociaux. donc un plomb a de nombreux comptes des réseaux sociaux.
Dans le Compte Social, j'ai fait un champ personnalisé nommé Plomb (Type de Données: la Recherche) pour faire de la relation.
et ici est une recherche du détail:
Nom de l'API: le Plomb__c
Liés au Plomb
Enfant Nom De Relation: Social_Accounts
Liste Étiquette: Comptes Des Réseaux Sociaux
Je tiens à ajouter de nouveaux comptes des réseaux sociaux existants plomb si il y a un plomb avec la même adresse email.
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 j'obtiens un message d'erreur suivantes:
D'erreur: Erreur de Compilation: Invalid relation de clé étrangère: Social_Account_c.Conduire_c
ce que je fais mal? Je vous serais reconnaissant de toutes les suggestions.
grâce
OriginalL'auteur Naoya Makino | 2010-09-25
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas aller à travers la relation" avec un point (.) l'opérateur, avec des mises à jour, juste à la lecture des données.
Changer votre
social_account.Lead__c.id = existing_lead.Id;
en
social_account.Lead__c = existing_lead.Id;
Devrait être tout ce qui est nécessaire. Salesforce peuvent avoir des relations
ENSEMBLE en modifiant directement le domaine que vous avez créé:
Social_Account__c.Lead__c
, y mettre l'Id de l'objet que vous souhaitez souligner.OBTENIR (exploré) en modifiant le nom de champ un peu et en utilisant le point, dans votre cas, c'est probablement
Social_Account__c.Lead__r.(whatever fields on Lead you want)
.La "_c" et "_r" sont des objets personnalisés, pour standard par exemple, il est l'Occasion.AccountId champ de paramètre, mais si vous voulez explorer jusqu'à Compte, vous tapez Occasion.Compte.Nom.
Si vous aurez de la difficulté à se rappeler - ne vous inquiétez pas, moi aussi 😉 Généralement, quand je reçois une telle erreur de compilation j'ai essayer avec le générateur de requêtes (dans l'Apex de l'Explorateur ou le plugin Eclipse). J'cliquez sur par le biais de la hiérarchie sur l'objet, ce sont les enfants, les parents, etc et on peut utiliser des morceaux de requête générée directement dans mon code Apex.
Vous pourriez réduire votre code juste
social_account.Lead__c = leads[0].id
, c'est sûr. Comme pour l'erreur: vous avez converti "ce" enregistrement de prospect en Compte, de Contact, d'Occasion ou quelque chose comme ça, pas d'autres actions sont possibles (vérifier la valeur du champ booléen Plomb.isConverted?). Vous ne pouvez pas mettre à jour et supprimer ces dossiers, ils sont juste là pour la déclaration... peut apparemment pas de lien vers eux... Peut-être modifier votre code pour filtre sur ce champ? Ou ajouter plus de champs de recherche (Contacter?) sur votre Sociale_Compte__les c et les remplir à la place?Ce paragraphe est de l'or " Le "_c" et "_r" sont des objets personnalisés, pour standard par exemple, il est l'Occasion.AccountId champ de paramètre, mais si vous voulez explorer jusqu'à Compte, vous tapez Occasion.Compte.Nom.'
OriginalL'auteur eyescream