salesforce 新人开发常见问题(一)You have uncommitted work pending
salesforce,apex开发过程中,难免遇到莫名其妙的问题,尤其是新人开发,还有可能使用不了Google查询资料,那可真的是难受。
"You have uncommitted work pending. Please commit or rollback before calling out" 报错出现在执行apex代码期间,或出现在test运行期间。根据报错信息就可以得到,这是由于存在未提交的事务挂起,所以不允许调用。例如:1.您可能需要创建记录,然后用 Web 服务提供的信息更新它。2.接口调用接口更新同一条记录,第一个接口更新字段1,成功后调用第二个接口更新字段2。
解决方法:
DML在最后调用的一个接口上统一执行。使用一个接口执行完将要修改的内容传给另一个接口,由另一个接口调用完成之后,统一执行DML操作。
如遇到审批流,提交审批成功后再调用接口更新问题,则分为两个事务,即使用异步方法例如:@future 方法。

浙公网安备 33010602011771号