我在 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,我应该从哪里寻找问题的原因?