Triggers Apex触发器,用于基于触点插入在相关自定义对象中插入记录

Triggers Apex触发器,用于基于触点插入在相关自定义对象中插入记录,triggers,salesforce,apex,soql,sfdc,Triggers,Salesforce,Apex,Soql,Sfdc,我有一个名为“contact relationship”的自定义对象,该对象具有对contact的查找功能,并且我在contact中添加了一个名为“relationship”的复选框类型的自定义字段。 我想写一个触发器,如果关系复选框值为true,则每次在联系人中添加记录时,都会在联系人关系中添加记录。 这就是我所做的,但它不起作用 trigger ContactRelationshipTrigger on Contact (after insert) { List<Con

我有一个名为“contact relationship”的自定义对象,该对象具有对contact的查找功能,并且我在contact中添加了一个名为“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;
} 
trigger contactrelationshipprigger on Contact(插入后){
List crl=新列表();
List cl=新列表();
用于(联系人:触发器。新){
if(con.Relationship_uuc==true){
联系人关系=新联系人关系();
cr.Contact_uu_c=con.Id;
cr.Name='Rel to--'+con.Name;
添加(cr);
}       
}      
插入crl;
} 

插入新联系人记录时,未创建任何联系人关系记录。

尝试更改

cr.Contact_uu_uc=con.name

从con.name到con.id或仅从con


看起来您刚刚尝试将包含mohit的name字段设置为contact对象

我认为您的代码是准确的,所以您应该检查触发器是否处于活动状态。在触发器编辑页面上有一个“处于活动状态””复选框,可用于禁用或激活触发器。确保它已被选中

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

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

我已经编辑了这个问题。我做了你建议的事情,但仍然不起作用。为你的
crl
列表添加调试,它是否正在填充?它起作用,但问题是我在联系人关系对象中得到的不是名称而是null。问题在这一行:-cr.Name='Rel to--'+con.Name;请参阅已编辑的解决方案,基本上它是一个复合字段,因此您需要使用单个零件无问题,标记为解决方案?