Bulkify铅行业重新分类

时间:2015-06-29 18:16:12

标签: salesforce apex force.com

我正在尝试设置一项工作,我可以每天运行几次,以保持我们的潜在客户分类,以符合我们的销售和营销批准列表。我的测试脚本效果很好。但是,当我在沙盒中运行它时,我正在运行一堆虚拟数据,我遇到了DML限制的问题。

我正在寻找能够有效处理尽可能多的潜在客户的想法。

编辑:

  

18:00:20.106(10106660336)| EXCEPTION_THROWN | [377] | System.LimitException:DML语句太多:151   18:00:20.106(10106789908)| FATAL_ERROR | System.LimitException:DML语句太多:151

     

DML语句数量:150个中的151个*******接近限制    DML行数:10000个中的150个

209

1 个答案:

答案 0 :(得分:1)

你在for循环中使用DML操作会导致错误。 您只需要在for循环

之外模式化DML语句
    for (Lead ld : DisplayIndLeads) {
        if (skip == 0) {
            for (string AnM : AdvertisingAndMarketing) {
                if (ld.Industry == AnM) {
                    ld.Sub_Industry__c = ld.Industry;
                    ld.Industry = 'Advertising and Marketing';
                    skip = 99;
                    leadstoupdate.add(ld);
                }
            }
        }
    }
    update leadstoupdate;

- - - - 更新 - - - -

您的代码只更新了一个潜在客户的原因是,在将第一个潜在客户添加到if (skip == 0)列表后,您的条件leadsToUpdate为假(因为您将其设置为99)。

更改此条件甚至删除它,因为我没有看到任何原因。

    for (Lead ld : DisplayIndLeads) {
        for (string AnM : AdvertisingAndMarketing) {
            if (ld.Industry == AnM) {
                ld.Sub_Industry__c = ld.Industry;
                ld.Industry = 'Advertising and Marketing';
                leadstoupdate.add(ld);
            }
        }
    }
    update leadstoupdate;