1

我在 salesforce 中使用 maps.API.Geocode 时遇到问题。这个想法是通过“Process Builder”运行一个方法,获取地址列表的经度和纬度。我认为标注可能需要一段时间,所以我认为我应该使用@future (callout = true)注释。当我运行 'poc' getGeocode() 方法时:

public class GeocodeService {

    @InvocableMethod
    public static void getGeocode() {
        geocode();
    }
        
    public static void geocode() {
        Map <String, String> options = new Map <String, String> {'version' => '1', 'address' => '415 Mission Street, San Francisco, CA 94105 USA'};
        Map<String, object> result;
        result = (Map<String, object>) maps.API.Geocode(options);
        System.debug(result);        
    }
}

一切正常。但是当我添加@future (callout = true)到 geocode() 方法并再次运行它时,我收到了这条消息

| FATAL_ERROR | System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out

我从控制台运行方法,我之前没有做任何 DML,我应该从哪里寻找问题的原因?

4

0 回答 0