Triggers 用于更新查找字段的Apex触发器(联系人)

Triggers 用于更新查找字段的Apex触发器(联系人),triggers,salesforce,apex,Triggers,Salesforce,Apex,需要一些关于如何通过apex触发器填充查找字段(联系人)的建议吗 我已经在Idea对象上创建了一个名为Contact_uuc的查找字段 我想用createdby用户填充Contact_uuC,如果它来自web(createdby.Contact.Account.Name==“web创意”),并将其留空以供内部创意创建 我已经读取并创建了以下触发器,并且能够保存并运行。但是,在保存idea记录时,我收到一个错误:UpdateContactOnCompaints:由字段联系人的触发器更改的数据:类型

需要一些关于如何通过apex触发器填充查找字段(联系人)的建议吗

  • 我已经在Idea对象上创建了一个名为Contact_uuc的查找字段
  • 我想用createdby用户填充Contact_uuC,如果它来自web(createdby.Contact.Account.Name==“web创意”),并将其留空以供内部创意创建
  • 我已经读取并创建了以下触发器,并且能够保存并运行。但是,在保存idea记录时,我收到一个错误:UpdateContactOnCompaints:由字段联系人的触发器更改的数据:类型不正确的id值:005N0000000l9iMIAQ
  • 触发器UpdateContactonComplaints on Idea(插入前,更新前){

    list oid=新列表();
    对于(Idea o:trigger.new){
    oid.添加(o.id);
    }
    map ExtendU=新地图(
    [从Idea中选择CreatedbyID,其中id位于:oid]);
    对于(想法o:触发器。新){
    o、 Contact__c=ExtendU.get(o.id).CreatedbyID;
    }
    

    }

    在触发器中,用户id(创建创意的用户id)被分配给联系人自定义查找字段)


    因此,它抛出了一个错误,数据由字段Contact:id值类型不正确的触发器更改:

    显示该错误是因为Contact\u\c字段似乎是其他对象而不是用户的查找字段。此外,由于Contact在Salesforce平台中是一个不同的实体,因此该字段名可能会误导您了解所引用的对象。
    list<id> oid = new list<id>();
    for(Idea o: trigger.new){                   
        oid.add(o.id);
            }
    map<id, Idea> ExtendU = new map<id, Idea>(
        [select CreatedbyID from Idea where id in: oid]);
    
    for(Idea o: trigger.new){
        o.Contact__c = ExtendU.get(o.id).CreatedbyID;
    }