salesforce - 对现有数据触发触发器?

标签 salesforce apex-code

设置:

A----C。在 A 上,B 上有一个 RFS,然后有一个更新后触发器,运行时会填充 B 上的字段。然后,B 的其中一个字段将汇总到 C 上的字段中。

问题:

触发器可以工作,但我需要在数据库中的现有记录上运行它以使所有内容保持最新。我怎么做?我已经尝试在 A 和 C 上使用 RFS 运行“强制质量重新计算”。

最佳答案

你可以写得相当简单Batch Apex (see docs)作业类来触摸您想要重新计算的所有记录:

global class TouchRecords implements Database.Batchable<sObject>{
    private String query;

    global TouchRecords(String query) {
        this.query = query;
    }

    global Database.QueryLocator start(Database.BatchableContext BC){
        return Database.getQueryLocator(query);
    }

    global void execute(Database.BatchableContext BC, List<sObject> scope){
        update scope;
    }

    global void finish(Database.BatchableContext BC){
    }
}

然后可以通过运行以下命令来执行作业(例如通过执行匿名):

Id batchInstanceId = Database.executeBatch(new TouchRecords('select id from A__c'));

Id batchInstanceId = Database.executeBatch(new TouchRecords('select id from Contact'));

触摸所有联系人

这应该在所有被触及的记录上运行触发器(最多支持 5000 万条记录)。与建议的数据加载器解决方案相同的想法,但保留在 SFDC 内以便于重用

关于salesforce - 对现有数据触发触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10997613/

相关文章:

mysql - 查询右侧 4 列时结果为空

apex-code - 你能用 soql 填充一个集合吗?

salesforce - 以编程方式访问 salesforce 上的 excel 文件

pdf-generation - Salesforce PDF 生成支持哪些字体?

salesforce - Visualforce 电子邮件模板单元测试

salesforce - 适用于 Salesforce 的 DocuSign : Reference Lead Record to Recipient Status When Creating Envelopes From Custom Button

javascript - 打开选项卡时通过 Jquery 锁定浏览器当前选项卡 URL 栏

java - 在java中向salesforce发送post请求

crystal-reports - 将 Crystal Reports 与 Salesforce 结合使用的好方法?

apex-code - 在 Force.com Apex 代码中是否有办法像 java/cpp 中那样将 "import packages/namespaces"转换为 0x104567910 ?