首页 > 解决方案 > 通过 EnvelopeService 发送信封(Docusign APEX 工具包)

问题描述

我正在尝试通过 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 个参数!

谁能帮我克服这个问题?

标签: docusignapiapexdocusignapextoolkit

解决方案


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


推荐阅读