triggers - 关闭 salesforce 潜在客户触发器中的潜在客户分配规则

标签 triggers salesforce apex-code force.com

我在使用 Salesforce 主导触发器时遇到问题,该触发器在插入后触发。潜在客户分配规则需要默认启用,但我需要绕过匹配特定条件的潜在客户的规则。

我在 salesforce 文档中看到,您可以在插入/更新潜在客户时设置分配规则:http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_methods_system_database_dmloptions.htm#assignmentRuleHeader_section

但是,我无法关闭这些潜在客户分配规则:

...
// if criteria is met to skip assignment rules...
Lead tempobj1 = new Lead(id=objLead.id,OwnerId=ConDomainNameAndOwnerIdMap.get(Emaildomain),isOwnerChanged__c = true);

Database.DMLOptions dmo = new Database.DMLOptions();
dmo.assignmentRuleHeader.useDefaultRule= false; //it's still running assignment rules!
tempobj1.setOptions(dmo);

...
...

update tempobj1;

我还尝试创建一个没有实际规则的新潜在客户分配规则集,并设置 DML 选项来使用它 - 但默认分配规则仍然被触发! dmo.assignmentRuleHeader.assignmentRuleID = '01Qe00000000HAq';

执行顺序表明记录保存到数据库(未提交)> 执行触发器之后> 执行分配规则。因此触发器在分配规则之前运行。

我在插入之前尝试过该代码,但收到错误“DML 语句无法对触发器.new 或触发器.old 进行操作:Trigger.AssignOwnerToNewLead:第 133 行,第 1 列”

提前致谢, 山姆

最佳答案

在触发之前使用它

for (Lead objLead : Trigger.new) {
        Database.DMLOptions dmo = new Database.DMLOptions();
        dmo.assignmentRuleHeader.useDefaultRule = false;
        objLead.OwnerID = objLead.Eloqua_ID__c;
        objLead.setOptions(dmo);
    }
}

关于triggers - 关闭 salesforce 潜在客户触发器中的潜在客户分配规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16668168/

相关文章:

azure - 通过 ADF 内的查询检索 Salesforce 数据

regex - 如何为每场比赛只返回非空捕获组?

mysql - 我在哪里写MySQL触发器

java - 当启用/禁用 JButton 的子类时,我可以重写什么方法来触发事件

ruby-on-rails - 如何登录到 salesforce.com 沙箱?

testing - APEX 触发器的 Salesforce 测试类

inheritance - Salesforce Apex 是否支持静态方法的继承?

sql - 使用触发器 SQL 自动填充列

MySQL使用哪个触发器来限制条目数?

android - 无法为 Salesforce 混合移动应用程序设置 ADT