0

我正在尝试通过 APEX 工具包(Docusign for Salesforce Essentials)发送信封。遵循此处的文档

Envelope myEnvelope = dfsle.EnvelopeService.sendEnvelope(myEnvelope, true);

执行此语句时,我遇到此错误 -

common.apex.runtime.impl.ExecutionException: You have uncommitted work pending. Please commit or rollback before calling out

发送信封呼叫正在执行标注和 DML 更新返回到 salesforce 记录以附加信封

从提供的文档中,sendEnvelope 方法有 3 个参数,它们采用 Envelope、sendNow 标志和 updateNow 标志。因此,如果我将第三个参数设置为 false,则将标注和 DML 更新分开!

但看起来,sendEnvelope 方法只能接受 2 个参数!

谁能帮我克服这个问题?

4

1 回答 1

0

如果您sendEnvelope()在同一事务中调用之前进行了任何 DML 操作,就会发生这种情况。常见的模式可能是创建/更新记录,然后为其发送信封,解决方案是sendEnvelope()通过 @future 方法调用或以某种方式将记录 DML 和标注分开。

于 2020-07-13T17:01:52.410 回答