概述
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 或任何错误消息
- 执行触发操作时,用户无法看到错误
- AgreementTemplateLoadInvocableAction.load
在调用加载协议类型类时,有四个字段选项可供配置:
- 主记录 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
- 返回所有错误消息
- AgreementCancelInvocableAction.cancelAgreement
- 协议删除可调用操作
- AgreementDeleteInvocableAction.deleteAgreement
- 传入协议 ID
- 返回所有错误消息
- AgreementDeleteInvocableAction.deleteAgreement
- 协议提醒可调用操作
- AgreementRemindInvocableAction.sendReminder
- 传入协议 ID
- 返回所有错误消息
- AgreementRemindInvocableAction.sendReminder
- 协议发送可调用操作
- AgreementSendInvocableAction.sendAgreement
- 传入协议 ID
- 返回所有错误消息
- AgreementSendInvocableAction.sendAgreement
- 协议更新可调用操作
- AgreementUpdateInvocableAction.updateAgreement
- 传入协议 ID
- 返回所有错误消息
- AgreementUpdateInvocableAction.updateAgreement
对于“取消”、“删除”、“提醒”、“发送”和“更新”操作,只需提供要执行操作的协议所对应的协议 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));