docusignapi - 通过 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 个参数!
谁能帮我克服这个问题?
解决方案
如果您sendEnvelope()
在同一事务中调用之前进行了任何 DML 操作,就会发生这种情况。常见的模式可能是创建/更新记录,然后为其发送信封,解决方案是sendEnvelope()
通过 @future 方法调用或以某种方式将记录 DML 和标注分开。
推荐阅读
- powershell - 使用 Qwinsta 导出断开连接会话的缩短列表
- gcc - 找不到 libssh 符号错误 gcc
- javascript - 从下拉列表中选择选项时如何更改视图数据,而无需刷新页面?
- r - 使用 aes(x = column) 时出错,在 ggplo2 中与 aes(x = dataset$column) 完美配合,我缺少什么包?
- java - 从 JavaFX 调用 Controller 方法时,为什么不将非静态方法更改为静态修复“无法引用非静态方法”错误?
- jquery - jQuery将图像标题放在标题字段中
- machine-learning - Keras去噪自动编码器(表格数据)
- javascript - HTML+javascript 还是 javascript+jsp?
- python - 触发不同结果的 Python 用户输入
- c++ - 为什么我的 Eigen 代码不能随更多线程扩展