2017-06-14 4 views
0

連絡先の参照を持つ「連絡先関係」というカスタムオブジェクトがあり、連絡先に「関係」という名前のカスタムフィールドを追加しました。 関係のチェックボックスの値がtrueの場合、連絡先にレコードが追加されるたびに連絡先関係にレコードを追加するトリガーを作成します。 これは私がやったことですが、うまくいきません。Apexは、連絡先の挿入に基づいて関連カスタムオブジェクトにレコードを挿入するためのトリガーです

trigger ContactRelationshipTrigger on Contact (after insert) {  
    List<Contact_Relationship__c> crl = new List<Contact_Relationship__c>(); 
    List<Contact> cl = new List<Contact>(); 
    for(contact con: trigger.new){ 
     if(con.Relationship__c == true){ 
      Contact_Relationship__c cr = new Contact_Relationship__c(); 
      cr.Contact__c=con.Id; 
      cr.Name='Rel to--' + con.Name; 
      crl.add(cr); 
     }  
    }  
    insert crl; 
} 

新しい連絡先レコードを挿入すると、連絡先関係レコードは作成されません。

+0

の追加は、あなたの 'crl'リストの中にデバッグ、それは人口なっているの?使用する必要が名を取得するには複合フィールドでありますか – EricSSH

答えて

0

あなたのコードは正確であるように見えるので、あなたのトリガーがアクティブであることを確認する必要があります。トリガー編集ページには、 "がアクティブ"のチェックボックスがあり、これを使用してトリガーを無効化またはアクティブ化することができます。それがチェックされていることを確認してください。

また、連絡先の名前はとても正確にあなたが

cr.Name='Rel to--' + con.FirstName +' '+ con.LastName; 
+0

これは動作していますが、問題は、名前の代わりに、連絡先関係オブジェクトでnullになっていることです。問題はこの行にあります: - cr.Name = 'Rel to--' + con.Name; –

+0

編集された解決策を参照してください。基本的に複合フィールドなので、個々の部分を使用する必要があります。 –

+0

これは愚かな間違いでした。ありがとうalot –

0

cr.Contact__c = con.nameを変更してみてください。

con.nameからcon.idまたはconのみ。

mohitを含む名前フィールドを連絡先オブジェクトに設定しようとしたようです。

+0

質問を編集しました。私はあなたがまだ働いていないと示唆したことをした。 –

関連する問題