新しいカスタムオブジェクトをExstingリードに追加しようとするとき、外部キー関係を無効にします

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

質問

ソーシャルアカウント(API name = social_account__c)と呼ばれるリードとカスタムオブジェクトがあります。

私は次のように関係を設定しました:リードはソーシャルアカウントの親です。そのため、リードには多くのソーシャルアカウントがあります。

ソーシャルアカウントでは、関係を築くためにリード(データ型:ルックアップ)という名前のカスタムフィールドを作成しました。

そして、ここにルックアップの詳細があります:

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

私は何が間違っているのですか?どんな提案にも感謝します。

ありがとう

役に立ちましたか?

解決

読み取りデータだけで、DOT(。)オペレーターを使用して「関係を実行する」ことはできません。

あなたを変えてください social_account.Lead__c.id = existing_lead.Id;の中へ social_account.Lead__c = existing_lead.Id;

必要なのはすべてです。 Salesforce関係はそうです

セットする 作成したフィールドを直接変更することにより: Social_Account__c.Lead__c, 、あなたが指したいオブジェクトのIDをそこに置きます。

得る (探索)フィールド名を少し変更してドットを使用することにより、おそらくそれはおそらく Social_Account__c.Lead__r.(whatever fields on Lead you want).

「_c」と「_r」はカスタムオブジェクト用です。たとえば、標準オブジェクトの場合は機会があります。設定にはacccountidフィールドがありますが、cccount.nameと入力するために探索したい場合。


あなたがそれを覚えておくのに苦労しているなら - 私も心配しないでください;)通常、そのようなコンピレーションエラーが発生したとき、私はクエリビルダー(Apex ExplorerまたはEclipseプラグイン)でそれを試してみます。オブジェクトの階層をクリックします。それは子供であり、親であり、通常、頂点コードで生成されたクエリを直接使用できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top