用于 Salesforce 的 Adobe Sign:使用进程构建器实现自动工作流程

概述

Salesforce 中的进程构建器是一个图形点击工具,可允许您根据 Salesforce 环境中的触发事件,自动编排要采取的措施。

进程是围绕 if/then 类型的逻辑流而构建的,进程包含一个触发事件、至少一个条件,以及至少一个可能实时发生和/或作为预定事件发生的操作

Adobe Sign 支持两种操作类型:更新记录和 Apex

每种操作类型都有若干可调用的操作

  • 发送
  • 取消
  • 删除
  • 提醒
  • 更新
  • 加载(模板)仅在使用 Apex 操作类型时可用

进程构建器是一个非常强大的工具,关于其工作方式的完整描述,超出了本文档的范围。

本文档将重点介绍通过用于 Salesforce 的 Adobe Sign 软件包 v20 可以执行的操作。

如果您想了解有关进程构建器的更多信息,请参阅 Salesforce 提供的文档交互式 Trailhead


使用“更新记录”作为操作类型的进程

此方法使用 Salesforce 进程构建器中的“更新记录”操作类型,来设置协议记录上的“后台操作”选择列表字段,以调用操作。

可以创建新进程(触发点是记录更改事件),随后可调用针对相关 Adobe Sign 协议的操作。用户可以控制触发操作的具体时间(例如,在主记录上的哪个字段更新后)和选定执行该操作的相关协议。

 

目前支持以下操作:

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

注意事项:

  • 处理进程期间检测到的任何错误将存储在错误消息字段中,您可以在相应的协议页面上查看
  • 支持安排的操作
  • 支持 Adobe Sign 库文档
  • 可以选择一个或多个父协议或子协议
  • 在更新协议记录时,相关记录是 echosign_ dev 对象
    • echosign_ dev 对象与常用的 Salesforce 对象(帐户、业务机会、联系人等)关联。如果协议与某个自定义对象相关,则该名称在组织中是唯一的。

  • 通过使用相应的操作值更新协议记录上的后台操作选择列表字段,可触发相关操作

限制:
  • 必须已经存在协议记录。不能使用“更新记录”操作类型从协议模板创建或加载


使用 Apex 作为操作类型的进程

此方法使用 Salesforce 进程构建器中的 Apex 操作类型,调用与托管软件包随附在一起的“可调用方法”,以执行相应的操作。

可以创建新进程(触发点是记录更改事件),随后可调用针对相关 Adobe Sign 协议的操作。

已定义下面几个可调用的操作:

  • 协议模板加载可调用操作
    • AgreementTemplateLoadInvocableAction.load
      • 传入模板和主记录 ID 以及所有运行时变量。
      • 传入可选参数以控制模板生成是否在异步模式下运行
        • 如果模板包含 Adobe Sign 库中的文档,则需要提供该参数
      • 返回生成的协议记录 ID 或任何错误消息
        • 执行触发操作时,用户无法看到错误

在调用加载协议类型类时,有四个字段选项可供配置:

  • 主记录 ID - 协议应与之建立关系的对象的 Salesforce 记录 ID。
    • 通常将类型设置为“字段引用”,将值设置为“[Object]. Id”,其中“Object”指的是业务机会、帐户等。
  • 协议模板 ID - 要加载的协议模板的 Salesforce 记录 ID。将类型设置为“ID”,将值设置为“记录 ID”
  • 协议模板运行时变量- 变量中的收件人和/或文档。
    • 一个变量:myRecipient=auserguy@adobe.com 
    • 两个变量:myRecipient=auserguy@adobe.com,myAttachment=00Pf4000002df0q
  • 异步处理 -可选项,除非需要,否则不指定该选项。默认情况下,此项设置为 False,这样将在同步模式下调用模板(例如,相同的事务/线程)
    • 如果协议模板加载了 Adobe Sign 库文档,则设置为 True
    • 如果模板的 AutoSend 为 True,请确保上述值为 False
    • 不能将自动发送与 Adobe Sign 库文档一同使用
    • 如果从批处理或其他异步进程调用该进程,请注意 Salesforce 的内置限制

 

  • 协议取消可调用操作
    • AgreementCancelInvocableAction.cancelAgreement
      • 传入协议 ID
      • 返回所有错误消息
  • 协议删除可调用操作
    • AgreementDeleteInvocableAction.deleteAgreement
      • 传入协议 ID
      • 返回所有错误消息
  • 协议提醒可调用操作
    • AgreementRemindInvocableAction.sendReminder
      • 传入协议 ID
      • 返回所有错误消息
  • 协议发送可调用操作
    • AgreementSendInvocableAction.sendAgreement
      • 传入协议 ID
      • 返回所有错误消息
  • 协议更新可调用操作
    • AgreementUpdateInvocableAction.updateAgreement
      • 传入协议 ID
      • 返回所有错误消息

对于“取消”、“删除”、“提醒”、“发送”“更新”操作,只需提供要执行操作的协议所对应的协议 ID


注意事项:

  • 支持安排的操作
  • 支持具有自动发送功能的协议模板(例如,生成并发送)
  • 在一次调用中,所有操作可接受多个请求
  • 可以捕获任何异常情况,并存储在结果记录中,然后在 Apex 调试日志中记录为错误,以避免阻止进程执行。
  • 模板加载”函数(异步处理)的参数可用来控制是在同步模式还是异步模式下处理模板。调用者需要指定模板加载应该在同步模式还是异步模式下运行
    • 默认情况下,进程在同步模式下运行。如果是批量进程,则应当同步运行
    • 如果启用自动发送,则进程必须使用同步模式
    • 如果需要加载 Adobe Sign 库文档,则显然是异步进程。

 

限制:

  • 由于 Salesforce 中存在的限制,即一个线程无法启动另一线程,因此不支持组合使用“自动发送”模板和“Adobe Sign 库文档
  • 对于传入可调用操作的任何参数,只能引用父字段(而非子字段)。不能对主记录下的子协议执行操作
  • Apex 调用的返回值不能用在进程构建器中。不支持任何具有返回值的操作(例如,获取文档信息或获取签名 URL)。


可列队的服务

已经实施了新的服务层,以通过 Salesforce 可列队的界面调用协议操作。有关“可列队的服务”的更多信息,可单击此处查看。这些操作可以调用核心服务 API,然后调用 Adobe Sign API。

支持以下操作:

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

全局 echosign_dev1.AdobeSignApiQueueableService 是服务 Apex 类,可接受的类型参数为 echosign_dev1.QueueableServiceParameter,其中包含要调用的操作和协议记录 ID:

 

echosign_dev1.AdobeSignApiQueueableService.QueueableServiceParameter param = new echosign_dev1.AdobeSignApiQueueableService.QueueableServiceParameter();
param.actionType = EchoSignApiService.ACTION_TYPE.AGREEMENT_REMIND;
param.agreementId = 'a0I0S000000KwkaUAC';
ID jobID = System.enqueueJob(new echosign_dev1.AdobeSignApiQueueableService(param));
echosign_dev1.AdobeSignApiQueueableService.QueueableServiceParameter param = new echosign_dev1.AdobeSignApiQueueableService.QueueableServiceParameter(); param.actionType = EchoSignApiService.ACTION_TYPE.AGREEMENT_REMIND; param.agreementId = 'a0I0S000000KwkaUAC'; ID jobID = System.enqueueJob(new echosign_dev1.AdobeSignApiQueueableService(param));
echosign_dev1.AdobeSignApiQueueableService.QueueableServiceParameter param = new echosign_dev1.AdobeSignApiQueueableService.QueueableServiceParameter();

param.actionType = EchoSignApiService.ACTION_TYPE.AGREEMENT_REMIND;
param.agreementId = 'a0I0S000000KwkaUAC';

ID jobID = System.enqueueJob(new echosign_dev1.AdobeSignApiQueueableService(param));

更快、更轻松地获得帮助

新用户?