Non valido relazione di chiave esterna quando si tenta di aggiungere un nuovo oggetto personalizzato a un vantaggio exsting
-
05-10-2019 - |
Domanda
Ho un piombo e un oggetto personalizzato chiamato account sociale (Nome API = Social_Account__c).
Ho impostato un rapporto come segue: Il piombo è un genitore di conti sociali. così un vantaggio ha molti conti sociali.
Nel conto sociale, ho fatto un campo personalizzato denominato Piombo (Tipo di dati: Ricerca) per rendere il rapporto
.ed ecco un dettaglio di ricerca:
API Nome: Lead__c
correlati a piombo
Bambino di parentela Nome: Social_Accounts
Lista correlate Etichetta: Conti sociali
vorrei aggiungere nuovi account sociali a vantaggio esistente se c'è un vantaggio con lo stesso indirizzo di posta elettronica.
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;
}
, ma ho un seguente messaggio di errore:
Errore: errore di compilazione: Invalid relazione di chiave esterna: Social_Account_ c.Lead _C
quello che sto facendo di sbagliato? Gradirei eventuali suggerimenti.
grazie
Soluzione
Non puoi "passare attraverso relazione" con il punto (.) Operatore con gli aggiornamenti, solo con la lettura dei dati.
Cambia la tua social_account.Lead__c.id = existing_lead.Id;
in social_account.Lead__c = existing_lead.Id;
Dovrebbe essere tutto ciò che serve. relazioni Salesforce possono essere
SET modificando direttamente il campo si è creato:. Social_Account__c.Lead__c
, mettendo ci Id di oggetto che si desidera punto da
(esplorata) modificando il nome del campo un po 'e con il punto, nel tuo caso è probabilmente Social_Account__c.Lead__r.(whatever fields on Lead you want)
.
Il "_C" e "_r" sono per gli oggetti personalizzati, per quelli standard, per esempio v'è campo Opportunity.AccountId per la regolazione, ma se si vuole esplorare fino a rendere conto si digita Opportunity.Account.Name.
Se avrete difficoltà a ricordare che - non preoccupatevi, anche a me;) Di solito quando ricevo tale errore di compilazione Ho provare con Query Builder (in Apex Explorer o il plugin Eclipse). Clicco attraverso gerarchia sull'oggetto, è i bambini, i genitori, ecc e di solito possono usare pezzi di query generata direttamente nel mio codice Apex.