4

リードとソーシャルアカウント(API名= 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.Lead _c

私は何が間違っているのですか?何か提案をいただければ幸いです。

ありがとう

4

1 に答える 1

7

データを読み取るだけでは、更新を伴うドット(。)演算子との「関係を通過」することはできません。

に変更social_account.Lead__c.id = existing_lead.Id; しますsocial_account.Lead__c = existing_lead.Id;

必要なのはそれだけです。Salesforceの関係は

作成したフィールドを直接変更してSocial_Account__c.Lead__c設定します。ポイントするオブジェクトのIDをそこに配置します。

フィールド名を少し変更し、ドットを使用してGET(探索)します。あなたの場合はおそらくSocial_Account__c.Lead__r.(whatever fields on Lead you want)です。

「_c」と「_r」はカスタムオブジェクト用です。たとえば、標準オブジェクトの場合、設定用のOpportunity.AccountIdフィールドがありますが、アカウントまで調べたい場合は、Opportunity.Account.Nameと入力します。


覚えにくい場合は、私も心配しないでください;)通常、このようなコンパイルエラーが発生した場合は、クエリビルダー(Apex ExplorerまたはEclipseプラグイン)で試してみます。オブジェクトの階層をクリックします。オブジェクトは子、親などであり、通常、生成されたクエリの一部をApexコードで直接使用できます。

于 2010-09-25T06:56:39.513 に答える