Ungültige Fremdschlüsselbeziehung, wenn ich versuche, ein neues benutzerdefiniertes Objekt zu einem exsting Blei hinzufügen
-
05-10-2019 - |
Frage
Ich habe einen Blei und ein benutzerdefiniertes Objekt namens Social Account (API Name = Social_Account__c).
Ich habe eine Beziehung wie folgt festgelegt: Blei ist ein Elternteil von Social-Konten. so eine Führung viele soziale Konten hat.
Im Sozial Konto habe ich ein benutzerdefiniertes Feld namens Blei (Datentyp: Lookup), um die Beziehung zu machen
.und hier ist ein Nachschlag Detail:
API Name: Lead__c
Related to Lead
Kind-Beziehung Name: Social_Accounts
Verwandte Liste Label: Social Accounts
Ich möchte neue soziale Konten hinzufügen führen zu bestehenden, wenn es eine Führung mit derselben E-Mail-Adresse ist.
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;
}
, aber ich erhalte eine Fehlermeldung:
Fehler: Compile Fehler: Ungültige Fremdschlüsselbeziehung: Social_Account_ c.Lead _c
Was mache ich falsch? Ich würde irgendwelche Vorschläge zu schätzen wissen.
Dank
Lösung
Sie können nicht "gehen durch Beziehung" mit Punkt (.) Operator mit Updates, nur mit Daten zu lesen.
Ändern Sie Ihre social_account.Lead__c.id = existing_lead.Id;
in social_account.Lead__c = existing_lead.Id;
Wenn alles sein, was gebraucht wird. Salesforce-Beziehungen können sein
durch direktes Modifizieren des Feldes Sie erstellt haben. Social_Account__c.Lead__c
, Putting dort Id des Objekts, das Sie Punkt wollen
GET (erforscht) durch die Feldnamen ein wenig modifizieren und mit dem Punkt, in Ihrem Fall ist es wahrscheinlich Social_Account__c.Lead__r.(whatever fields on Lead you want)
.
Die „_c“ und „_R“ sind für benutzerdefinierte Objekte, für Standard diejenigen zum Beispiel dort Opportunity.AccountId Feld für Einstellung, aber wenn Sie möchten, dass Sie erkunden bis Konto Opportunity.Account.Name geben.
Wenn Sie Probleme es Erinnerung haben werden - keine Sorge, ich auch;) Normalerweise, wenn ich solche Kompilierungsfehler erhalte ich versuche es mit Query Builder (in Apex Explorer oder der Eclipse-Plugin). Ich klicken Sie sich durch Hierarchie auf das Objekt, es Kinder, es Eltern usw. und können in der Regel Stücke erzeugte Abfrage direkt in meinem Apex-Code.