0

SMSを送信するAPEXクラスをSalesforceで作成しようとしています。これは、リードトリガーから呼び出されます。

'Lead'をメソッドに渡したいのですが、次のエラーが発生します

「サポートされていないパラメータタイプSOBJECT:Lead」

私の宣言はこんな感じです。

global   class SMS_Services {

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

    }
}
4

1 に答える 1

2

これは、@future 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);
}

future メソッドは毎日少量しか取得できないため、慎重に使用する必要があります

于 2012-08-02T21:59:37.560 に答える