触发更新机会的自定义查找字段

时间:2013-11-27 08:01:25

标签: triggers salesforce apex

我创建了一个自定义对象XtendedUser,它有一个id和Name。

我在Opportunity上创建了一个名为“XtendedUser__c”的自定义查找字段,它将机会链接到相应的XtendedUser记录。

现在我做了这个,以便机会所有者的名字对应于XtendedUser记录的名称,所以我希望触发器在机会上自动填充自定义查找字段“XtendedUser__c”,其ID为相应的XtendedUser记录其名称与机会所有者的名称相匹配。

我从未写过触发器,总是使用工作流程和fieldupdates,但我必须完成这项工作。所以,如果你能帮我这个吗?我会非常棒!

提前致谢

1 个答案:

答案 0 :(得分:0)

在插入新记录之前和更新现有记录之前,您应该使用映射链接记录并检索值。此技术还允许您批量更新所有记录。它应该是这样的:

trigger ExtendedUser__c on Opportunity (before insert, before Update) {    

    list<id> oid = new list<id>();
    for(opportunity o: trigger.new){                   
        oid.add(o.id);
            }
    map<id, ExtendedUser__c> ExtendU = new map<id, ExtendedUser__c>(
        [select name from ExtendedUser__c where id in: oid]);

    for(opportunity o: trigger.new){
        o.name = ExtendU.get(o.id).name;
    }
}