Apex触发器根据联系人插入在相关的自定义对象中插入记录

时间:2017-06-14 08:53:25

标签: triggers salesforce apex soql sfdc

我有一个名为“联系人关系”的自定义对象,它有查找联系人,我在联系人中添加了一个名为'relationship'的自定义类型复选框。 我想编写一个触发器,如果​​关系复选框值为true,则每次在联系中添加记录时都会在联系人关系中添加记录。 这就是我所做的,但它不起作用。

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;
} 

当我插入新的联系人记录时,没有创建联系人关系记录。

2 个答案:

答案 0 :(得分:0)

尝试更改

cr.Contact__c = con.name;

从con.name到con.id或只是con;

看起来您只是尝试将包含mohit的名称字段设置为联系人对象。

答案 1 :(得分:0)

您的代码看起来对我来说是准确的,因此您应该检查您的触发器是否有效。在触发器编辑页面上有一个&#34; 是活动&#34;可用于取消激活或激活触发器的复选框。确保选中它。

此外,联系人姓名也是一个复合字段,因此要准确地获取名称,您需要使用

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