将Lead传递给Salesforce APEX类

时间:2012-08-02 20:12:25

标签: salesforce apex-code

我正在尝试在Salesforce中创建一个发送短信的APEX类。这是从Lead Trigger调用的。

我想将'Lead'传递给方法,但会收到以下错误

“不支持的参数类型SOBJECT:Lead”

我的声明是这样的。

global   class SMS_Services {

    @future (callout=true)  
    public static void SendTestDriveReminder(Lead l){

    }
}

1 个答案:

答案 0 :(得分:2)

这是因为您已将方法注释为 @future 以后的方法只能接受原始参数。因此,您需要将参数类型更改为Id,例如:

@future (callout=true)  
public static void SendTestDriveReminder(Set<Id> leadIds)

需要注意的重要一点是,我建议您将参数从单个记录更改为一组Id,这是因为您应该批量化触发器

trigger LeadTriggerExample on Lead (after insert, after update) {
    Set<Id> leadIds = new Set<Id>();
    for(Lead l : Trigger.new) {
        if(/*Certain Criteria is met*/) {
            leadIds.add(l.Id);
        }
    }
    SMS_Services.SendTestDriveReminder(leadIds);
}

您每天只能获得少量的未来方法,您需要谨慎使用它们