用户指南 取消(C)

适用于 Salesforce 的 Adobe Acrobat Sign:开发者指南

  1. Adobe Acrobat Sign 集成
  2. 新增功能
  3. 产品版本和生命周期
  4. Acrobat Sign for Salesforce
    1. 安装包
    2. 配置包
    3. 用户指南
    4. 开发人员指南
    5. 高级自定义指南
    6. 字段映射和模板指南
    7. 移动应用程序用户指南
    8. 流程自动化指南
    9. Document Builder 指南
    10. 配置大型文档
    11. 升级指南
    12. 发行说明
    13. 常见问题解答
    14. 故障排除指南
    15. 其他文章
  5. Acrobat Sign for Microsoft
    1. Acrobat Sign for Microsoft 365
      1. 安装指南
    2. 适用于 Outlook 的 Acrobat Sign
      1. 用户指南
    3. 适用于 Word/PowerPoint 的 Acrobat Sign
      1. 用户指南
    4. 适用于 Teams 的 Acrobat Sign
      1. 用户指南
      2. Live Sign 指南
      3. 移动用户指南
      4. 发行说明
      5. Microsoft Teams 审批
    5. 适用于 Microsoft PowerApps 和 Power Automate 的 Acrobat Sign
      1. 用户指南
      2. 发行说明
    6. 适用于 Microsoft Search 的 Acrobat Sign 连接器
      1. 用户指南
      2. 发行说明
    7. 适用于 Microsoft Dynamics 的 Acrobat Sign
      1. 概述
      2. Dynamics Online:安装指南
      3. Dynamics Online:用户指南
      4. Dynamics 内部部署版:安装指南
      5. Dynamics 内部部署版:用户指南
      6. Dynamics 工作流程指南
      7. Dynamics 365 for Talent
      8. 升级指南
      9. 发行说明
    8. 适用于 Microsoft SharePoint 的 Acrobat Sign
      1. 概述
      2. SharePoint On-Prem:安装指南
      3. SharePoint On-Prem:模板映射指南
      4. SharePoint On-Prem:用户指南
      5. SharePoint On-Prem:发行说明
      6. SharePoint Online:安装指南
      7. SharePoint Online:模板映射指南
      8. SharePoint Online:用户指南
      9. SharePoint Online:Web 表单映射指南
      10. SharePoint Online:发行说明
  6. Acrobat Sign for ServiceNow
    1. 概述
    2. 安装指南
    3. 用户指南
    4. 发行说明
  7. 适用于 HR ServiceNow 的 Acrobat Sign
    1. 安装指南
  8. 适用于 SAP SuccessFactors 的 Acrobat Sign
    1. 主控室安装指南(已弃用)
    2. 招聘管理安装指南(已弃用)
    3. 招聘管理用户指南
    4. Cloud Foundry 安装指南
    5. 发行说明
  9. 适用于 Workday 的 Acrobat Sign
    1. 安装指南
    2. 快速入门指南
    3. 配置教程
  10. 适用于 NetSuite 的 Acrobat Sign
    1. 安装指南
    2. 发行说明
  11. 适用于 SugarCRM 的 Acrobat Sign
  12. 适用于 VeevaVault 的 Acrobat Sign
    1. 安装指南
    2. 用户指南
    3. 升级指南
    4. 发行说明
  13. 适用于 Coupa BSM Suite 的 Acrobat Sign
    1. 安装指南
  14. Acrobat Sign 开发人员文档
    1. 概述
    2. Webhook
    3. 文本标记

概述

适用于 Salesforce 的 Adobe Acrobat Sign:开发者指南旨在帮助 Salesforce 开发者了解将 Salesforce 包与 Adobe Acrobat Sign 集成所需的对象和参数。

注意:

在未来的版本中,适用于 Salesforce 的 Adobe Acrobat Sign 对象可能会更改。如果构建依赖于已更改对象的自定义解决方案,则可能需要更新自定义设置。

集成指南

  • 如果需要了解协议何时完全签署,请在更新后或更新之前(取决于用例和要求),在对 echosign_dev1__SIGN_Agreement__c 对象实施一个 Apex 触发器。当 echosign_dev1__Status__c 字段更改为已签名已批准或其他最终状态时,协议就完成了。
  • 如果需要了解每个单独的已签名 PDF 何时被插入,例如,如果需要获取每个中间签名的 PDF,请在插入后对 Attachment 或 ContentVersion 对象实施 Apex 触发器,并注意父协议和以“- signed.pdf”或“- approved.pdf”结尾的名称,或其他最终状态
  • 如果需要了解单个收件人何时已签名或已批准,请在更新后或更新之前(取决于用例和要求),请对 echosign_dev1__SIGN_Recipients__c 对象实施一个 Apex 触发器。当 echosign_dev1__Status__c 字段更改为已签名已批准或其他最终状态时,收件人就完成了。
  • 如果需要了解作为签名过程一部分的特定事件何时发生,比如发送协议供签名或发送提醒,则可以对协议事件对象 (echosign_dev1__SIGN_AgreementEvent__c) 创建触发器并检查该类型的事件
  • 已完成协议的“最终协议状态名称”为:“已签名”、“已批准”、“已接受”、“已填写表单”和“已交付”
  • 已终止协议的“最终协议状态名称”为:“已取消/已拒绝”、“已取消/已拒绝”、“已过期”

更新顺序

在 v21 中,更新顺序已更改。以下是更新协议及其相关对象的序列:

  1. 附件 
  2. 收件人 
  3. 协议(状态及其他属性)
  4. 协议事件 
  5. Chatter 订阅源

Apex 服务

正在使用的 Apex 方法

从适用于 Salesforce 的 Acrobat Sign V21.0 开始,所有异步进程(包括自动更新和数据映射)都已从未来方法切换到可排队方法,这是 Salesforce 推荐的方法。

进行此更改后,订阅者组织中在自动更新或数据映射过程中将作业添加到 Salesforce 队列的所有自定义设置都将失败,并显示错误“系统。LimitException:太多可排队作业添加到队列:2”。

出现此失败的原因是一个可排队进程只能添加一个可排队作业,而这个作业已经被 Acrobat Sign 占用了。有关详细信息,请参阅可排队 Apex 限制

错误:“当链接作业时,您只能使用“系统”从执行作业中添加一个作业。enqueueJob,这意味着每个父可排队作业只能存在一个子作业。不支持从同一个可排队作业启动多个子作业”。

当协议状态不变或数据映射未正确运行时,会出现上述错误。要解决此错误,请查找错误触发器、进程构建器或工作流程,然后将其停用或切换为使用同步调用,或安排在以后进行。

协议模板服务

协议模板服务通过受管理包作为一项全局 Apex 服务公开。这允许受管理包之外的 Apex 代码根据现有协议模板加载协议。类和所有公开的方法标记为全局以允许此类访问。

Apex 服务通过以下调用类公开:echosign_dev1.AgreementTemplateService

注意:

目前不支持使用 e-Sign 库模板加载协议模板。我们建议您将文档模板移至 Salesforce 文档库。

  方法

全局

static Id load()

使用标记为默认且没有主对象类型的协议模板加载协议。

全局

static Id load(String templateId)

使用没有主对象类型的指定协议模板 ID 加载协议。

 

全局

static Id load(String templateId, String masterId)

使用指定协议模板 ID 和指定主记录 ID 加载协议,并且其类型必须与指定协议模板中配置的主对象类型相匹配。

全局

static Id load(String templateId, String masterId, Map<String,AgreementTemplateVariable> agreementTemplateVariables)

使用指定协议模板 ID 和指定主记录 ID 加载协议,并且其类型必须与指定协议模板中配置的主对象类型相匹配。此外,还以名称值对形式传入指定运行时变量。

 

全局

static List<AgreementTemplateService.AgreementTemplateBasicInfo> getAgreementTemplateList(AgreementTemplateListOptions options)

根据过滤选项获取协议模板的列表。如果使用过滤选项没有找到协议模板,则返回空列表。

全局

static AgreementTemplateService.AgreementTemplateDetails getAgreementTemplateDetails(String templateId)

获取指定协议模板 ID 的协议模板详细信息。

如果未找到协议模板,则返回空对象。

全局

static String getAgreementTemplateUrl(String templateId)

根据协议模板 ID 获取编辑协议模板的 URL。

全局

static String getNewAgreementTemplateUrl()

获取在 Adobe Sign 中创建新协议模板的 URL。

 构造函数 (1 个)

访问权限

签名

全局

AgreementTemplateListOptions()

全局

AgreementTemplateListOptions(String masterObjectType, Boolean isActive, Boolean hasAttachment, Boolean hasRecipient, Boolean autoSend)

global class AgreementTemplateService.AgreementTemplateListOptions

属性 (5)

访问权限

名称

全局

masterObjectType

全局

isActive

全局

hasAttachment

全局

hasRecipient

全局

autoSend

注意:

在查询协议模板时,如果上面列出的字段为空值,则不对其对应的字段应用过滤器。

global class AgreementTemplateService.AgreementTemplateBasicInfo

属性 (6)

访问权限

名称

全局

name

全局

recordId

全局

url

全局

isDefault

全局

daysUntilExpiration

全局

language

global class AgreementTemplateService.AgreementTemplateDetails

属性 (6)

访问权限

名称

全局

message

全局

ccList

全局

dataMappingName

全局

mergeMappingName

全局

url

全局

收件人

global class AgreementTemplateService.RecipientInfo

属性 (4)

访问权限

名称

全局

recipientRole

全局

recipientType

全局

recipientName

全局

signOrder

  运行时变量

echosign_dev1.AgreementTemplateVariable 全局类有两个全局字段。

  • name:变量名称,必须与协议模板中配置的运行时变量名称相匹配。
  • value:该变量的值,将在模板加载期间使用。该值取决于使用变量的位置。例如,对于收件人,它必须是联系人、潜在客户、用户记录 ID 或电子邮件。对于文档变量,它必须是附件记录 ID。

结果

每种方法都会返回新创建的协议记录 ID,或者如果加载操作期间出错,会抛出异常和详细错误信息。

API 服务

Adobe e-Sign API 模板服务通过受管理包作为一项全局 Apex 服务公开。这允许受管理包之外的 Apex 代码通过这些包装器调用一组 Adobe e-Sign API。包装器极大地简化了 API 调用,因为使用者不需要创建请求和响应数据模型。此外,使用者不需要处理 Salesforce 数据到 e-Sign 数据模型的转换。这为使用者减少了很多复杂操作。例如,要发送使用者刚刚通过协议记录 ID 传入的协议,该服务将处理查询操作,抽取所有相关数据,传递给 API 并解析结果。

类和所有公开的方法都标记为全局以允许此类访问。

  • v17 及以下版本调用 SOAP API
  • v18 及以上版本调用 REST API

Apex 服务通过以下调用类公开:echosign_dev1.EchoSignApiService

方法

全局

static void cancelDocument(Id agreementId)

取消具有指定协议 ID 的协议。

全局

static void delegateSigner(Id agreementId, String delegatedEmail)

将签名委派给提供的电子邮件。

全局

static void delegateSigner(Id agreementId, String delegatedEmail, String message)

将签名委派给具有指定消息的所提供电子邮件。

全局

static echosign_dev1.EchoSignApiService.DocumentInfo getDocumentInfo(Id agreementId)

检索指定协议 ID 的详细信息。

全局

static List<EchoSignApiService.SigningUrl>

getSigningUrls(Id agreementId) 

检索指定协议 ID 的所有签名 URL。

全局

static void removeDocument(Id agreementId)

取消具有指定协议 ID 的协议,并在 Salesforce 中删除该协议(该协议不会从 Adobe e-Sign 帐户中删除)。

全局

static void replaceSigner(Id replacementRecipientId)

替换指定的签名者。

全局

static void replaceSigner(Id replacementRecipientId, String message)

替换具有指定消息的指定签名者。

全局

static echosign_dev1.EchoSignApiService.

SendDocumentResult sendDocument(Id agreementId)

发出具有指定协议 ID 的协议,并返回包含文档键和 URL 的结果。

全局

static void sendReminder(Id agreementId)

向指定协议 ID 的当前签名者发送提醒。

全局 static void updateAgreement(Id agreementId)  更新具有指定协议 ID 的协议
全局 static EchoSignApiService.AgreementViewUrl getViewAgreementUrl(Id agreementId)
从 Sign 中检索具有 viewURL 属性的指定协议 ID 的查看/管理页面。
注意:出于安全原因,生成的协议 URL 只有一个临时的生命周期,因此它会生成 REST-HTTPS 调用,以便从 Adobe Sign 服务获取一个全新的 URL。

内部类

global class DocumentHistoryEvent

属性 (2 个)

访问权限

名称

全局

String eventType

全局

String participantEmail

构造函数 (1 个)

访问权限

签名

全局

DocumentHistoryEvent()


global class DocumentInfo

属性 (5 个)

访问权限

名称

全局

Map<string,list> historyByEmail

全局

Map participantsByEmail

全局

Map participantsByName

全局

String senderEmail

全局

String status

  构造函数 (1 个)

访问权限

签名

全局

DocumentInfo()

global class ParticipantInfo

属性 (5 个)

访问权限

名称

全局

String company

全局

String email

全局

String name

全局

String status

全局

String title

  构造函数 (1 个)

访问权限

签名

全局

ParticipantInfo()

global class SendDocumentResult

属性 (3 个)

访问权限

名称

全局

String documentKey

全局

Exception error

全局

String url

构造函数 (1 个)

访问权限

签名

全局

SendDocumentResult()

global class SigningUrl

属性 (3 个)

访问权限

名称

全局

String email

全局

String esignUrl

全局

String simpleEsignUrl

构造函数 (1 个)

访问权限

签名

全球

 

Apex 批处理服务

在批处理级别公开主要 e-Sign 协议操作,允许对一组协议执行一个操作。这个类实现 Salesforce Database.Batchable 接口。它能处理任意数量的记录,这些记录会以 5 条一组进行分组,每一组作为一个事务进行处理,从而满足监管者限制要求。

Apex 批处理服务通过以下调用类公开:echosign_dev1.EchoSignActionBatch

参数

必须指定以下参数来初始化批处理操作。

一个协议记录 ID 列表,将对列表中的记录执行提供的操作。要执行的操作,支持的值如下:

  • 提醒
  • 发送
  • 取消
  • 删除
  • 更新

当前用户会话 ID。只有更新类型的操作需要此 ID。

提交者用户记录,用于在批处理完成时通过电子邮件通知该用户。

用法示例

User submitterUser = UserInfo.getUserId();

EchoSignActionBatch batch = new EchoSignActionBatch( agreementIds, 'Remind', UserInfo.getSessionId(), submitterUser); syncProcessId = Database.executeBatch(batch, 5);

批量协议模板

以·SOQL 查询和协议模板记录 ID 为输入。执行该查询以获取一组主对象记录,每个对象通过提供的协议模板运行以生成协议记录。这个类实现 Salesforce Database.Batchable 接口。它能处理任意数量的记录,这些记录会以 5 条一组进行分组,每一组作为一个事务进行处理,从而满足监管者限制要求。

SOQL 查询返回的记录类型必须与提供的协议模板主对象类型相匹配。对于每个记录,调用协议模板服务。

Apex 批处理服务通过以下调用类公开:

echosign_dev1.AgreementTemplateBatch

参数

必须指定以下参数来初始化批处理操作。

要执行的 SOQL 查询,必须包含记录 ID 作为已选字段。任何其他字段都是可选的。

协议模板记录 ID,将与主记录 ID 结合使用以加载协议。

用法示例

String agreementTemplateId = [SELECT Id from echosign_dev1__Agreement_Template__c where Name = 'Default Template']; String soqlQuery = 'SELECT Id from Contact where Account.IsActive = true';

AgreementTemplateBatch batch = new AgreementTemplateBatch(soqlQuery, agreementTemplateId); syncProcessId = Database.executeBatch(batch, 5);

协议模板服务批处理

以主对象记录 ID 列表和主对象类型为输入,之后对其进行查询,并且每一个都通过所提供协议模板运行以生成协议记录。这个类实现 Salesforce Database.Batchable 接口。它能处理任意数量的记录,这些记录会以 5 条一组进行分组,每一组作为一个事务进行处理,从而满足监管者限制要求。

提供的主对象类型必须与提供的协议模板主对象类型相匹配。对于每个记录,调用协议模板服务。

Apex 批处理服务通过以下调用类公开:

echosign_dev1.AgreementTemplateServiceBatch

参数

必须指定以下参数来初始化批处理操作。

  • 主记录 ID 列表。
  • 协议模板记录 ID,将与主记录结合使用以加载协议。
  • 要从中查询主记录的主对象名称。

用法示例

String agreementTemplateId = [SELECT Id from echosign_dev1__Agreement_Template__c where Name = 'Default Template'];

AgreementTemplateBatch batch = new AgreementTemplateServiceBatch(new List<Id>{'01p50000000HoMB'}, agreementTemplateId, 'Contact');
syncProcessId = Database.executeBatch(batch, 5);

REST 服务

协议模板服务

协议模板服务通过受管理包作为一项 Salesforce REST Web 服务公开。这允许 Salesforce 组织以外的外部系统根据现有协议模板加载协议。请参考文章使用 Apex REST 创建 REST API,进一步了解如何从 Salesforce 之中访问和调用自定义 REST Apex 服务。调用必须提供有效的会话 ID 进行认证和授权。

该 Web 服务通过以下 URL 公开:

https://<instance_name>.salesforce.com/services/apexrest/echosign_dev1/template/load/<template_id>?masterId=<master_id>&varName1=var Value1&varName2=varValue2

注意:
  • 实例名称会有所不同,具体视您的组织实例而定。
  • https://_<instance_name>_.salesforce.com/services/apexrest/echosign_dev1/template/load/<template_id> 是程序包 20.0 或更高版本的 POST HTTP 方法。
    • V20 之前的版本使用 GET 方法。

模板 ID

URL 最后一部分是当前 Salesforce 组织中协议模板记录的 ID,将使用这个 ID 来加载协议。URL 的这一部分是可选的。如果省略,则加载标记为默认值的协议模板。如果省略模板 ID,且不存在默认协议模板 ID,将会返回错误。

模板 ID 可以采用 15 或 18 个字符格式。

主 ID

masterId 参数指定应使用哪个主记录从特定协议模板加载协议。该参数是可选的,但对于指定了主对象类型并在模板中引用该主对象的任何协议模板,都必须指定该参数。

主 ID 可以采用 15 或 18 字符格式。

运行时变量

任何其他参数均用作运行时变量,采用名称值对的形式,用于填充协议模板中指定的任何运行时变量。

结果

REST Web 服务返回 LoadResult 对象,该对象包含以下字段:

  • agreementId:如果协议加载操作成功,该字段包含新创建的协议记录的 ID。
  • error:如果协议加载期间出现任何错误,该字段将包含详细的错误消息。

后台服务

后台服务功能允许数据包使用者将后台操作 (echosign_dev1 Background_Actions c) 字段更新为相应的值,从而对协议对象调用各种操作。该字段值从空白值或其他值更改为以下某个值时,将立即从属于 e-Sign 受管理包中的触发器触发操作。

  • 提醒
  • 发送
  • 取消
  • 删除
  • 更新

所有操作都以异步 Future 模式执行,因此状态会存储在协议的“错误”字段中。

向后兼容性更改

  • 现在,文档和收件人更新之后,协议状态也会更新
    • 在版本 21 之前,状态是在先前设置的。
  • 现在根本无法插入已签名协议对象(用于存储图像 URL)
    • 在版本 21 之前,在完成所有其他更新后可以插入已签名协议对象
  • 根据 Salesforce 调节器限制,异步 Apex 呼出请求或响应的最大大小限制为 12 MB:https://developer.salesforce.com/docs/atlas.en-us.210.0.apexcode.meta/apexcode/apex_gov_limits.htm
    • 由于上述限制,无法从 Sign 中获取大于 12 MB 的文档。
  • 协议事件描述已更改。现在,它与 Sign API 返回的描述和审核报告相匹配。
  • 现在,更新进程在 Salesforce 中作为本机 Apex 批处理进程(异步进程)运行
    • 之前,更新进程是在 Salesforce 外部使用 API 调用进行的更新
    • 触发这些启动异步进程的状态更新不再起作用,因为 Salesforce 限制从已经运行的异步进程调用另一个异步进程
  • 在版本 21 之前,协议属性更新被拆分为单独的更新调用,现在协议对象在一个事务中即可全部更新。
  • 在版本 21 之前,失败的协议只能通过在 Salesforce 中进行手动更新来重试
    • 现在,更新更加可靠,因为 Sign 后端会自动重试失败事件指定的次数。
  • 现在,手动更新会更新协议的所有方面,包括相关对象。
  • 与常规更新一样,现在推送协议会以异步模式运行,并且也会更新其他属性。
  • 引入了新设置,以启用/禁用协议不同方面的更新。
  • 当已签名 PDF 存储在 Salesforce 中时,PDF 文件名的末尾将不再附加描述符(-signed 或 -approved)。

 Adobe

更快、更轻松地获得帮助

新用户?

Adobe MAX 2024

Adobe MAX
创意大会

10 月 14 日至 16 日迈阿密海滩及线上

Adobe MAX

创意大会

10 月 14 日至 16 日迈阿密海滩及线上

Adobe MAX 2024

Adobe MAX
创意大会

10 月 14 日至 16 日迈阿密海滩及线上

Adobe MAX

创意大会

10 月 14 日至 16 日迈阿密海滩及线上