创建与相关机会的自定义字段中的值相同的相关机会时,触发更新帐户中的自定义字段

时间:2019-07-17 09:13:07

标签: triggers salesforce

有人可以详细说明什么是mapAccounts.get(opp.AccountId)正在到达MapAccount acc = mapAccounts.get(opp.AccountId);

trigger OppTrigger on Opportunity (after insert) {   
    if(Trigger.isInsert && Trigger.isAfter)
    {
        Set<Id> acctSet = new Set<Id>();
        List<Account> accList = new List<Account>();
        for(Opportunity opp : Trigger.new)
        {
            acctSet.add(opp.AccountId);
        }

        Map<Id, Account> mapAccounts = new Map<Id, Account>([SELECT Id, accField__c FROM Account where Id IN :acctSet]);
        for(Opportunity opp : Trigger.new)
        {
            Account acc = mapAccounts.get(opp.AccountId);
            acc.accField__c = opp.oppField__c;
            accList.add(acc);
        }
        Update accList;
    }

}

此触发器没有错误,但我需要详细了解mapAccounts.get(opp.AccountId);会到达这里

1 个答案:

答案 0 :(得分:0)

它正在从mapAccounts获取与分配给机会opp的帐户相对应的sObject实例。

这是一种常见的批量化模式,允许在Apex中查询两个sObject并使其相互关联,而无需循环运行SOQL,这会消耗不可接受的数量的调控器限制。