Обзор
Process Builder в Salesforce — графический инструмент, операции в котором выполняются простым щелчком мыши. Он позволяет автоматизировать действия на основе запуска событий в среде Salesforce пользователя.
Процессы создаются на основе логической условной конструкции «если, тогда» и содержат хотя бы одно событие запуска, хотя бы одно условие и хотя бы одно действие, которое может выполняться в реальном времени и/или как запланированное событие.
Adobe Sign поддерживает 2 типа действий: Updating Records и Apex.
У каждого типа действия есть несколько вызываемых действий:
- Отправить
- Отменить
- Удалить
- Напомнить
- Обновить
- Загрузить (шаблон) — доступно только при использовании типа действия Apex
Process Builder представляем множество возможностей. Полное описание всех операций невозможно включить в данную статью.
На данной странице рассматриваются основные действия, доступные в версии 20 пакета Adobe Sign для Salesforce.
Чтобы узнать больше о Process Builder, ознакомьтесь с документацией и на странице Trailhead от Salesforce.
Процессы, использующие тип действий Update Records
Этот подход использует тип действий Update Records в Process Builder для настройки поля выбора из списка как фонового действия для записи документа для запуска действия.
Можно создать новые действия (которые срабатывают на основе событий изменения записи), которые запускают действие с соответствующим документом Adobe Sign. Пользователи могут выбирать, когда должно произойти действие (например, после обновления какого поля в главной записи) и какие документы выбраны для этого действия.
В настоящее время поддерживаются следующие действия:
- Отправить
- Отменить
- Удалить
- Напомнить
- Обновить
Следует учитывать следующее:
- Любая ошибка, обнаруженная во время процесса, будет сохранена в поле Сообщение об ошибке. Ошибки можно посмотреть на соответствующей странице документа.
- Поддерживаются запланированные действия.
- Поддерживаются документы библиотеки Adobe Sign.
- Можно выбрать один или несколько родительских или дочерних документов.
- При обновлении записи документа связанная запись — это объект echosign_dev1.
- Объект echosign_dev1 связывается с общими объектами Salesforce («Учетная запись», «Возможность», «Контакт» и другие). Если документы связаны с пользовательским объектом, это имя будет уникальным для организации.
- Действия запускаются при обновлении поля выбора Фоновое действие для записи документа с помощью соответствующего значения действия.
- Требуется наличие записи документа. Ее нельзя создать или загрузить из шаблона документа с помощью типа действия Update Records.
Процессы, использующие тип действий Apex
Этот подход использует тип действий Apex в Salesforce Process Builder для запуска Метода вызова, включенного в управляемый пакет для выполнения соответствующего действия.
Можно создать новые действия (которые срабатывают на основе событий изменения записи), которые запускают действие с соответствующим документом Adobe Sign.
Имеются следующие вызываемые действия:
- Вызываемое действие загрузки шаблона документа
- AgreementTemplateLoadInvocableAction.load
- Подает в шаблон, главные ID и переменные времени выполнения.
- Подает в дополнительный параметр для указания того, должно ли создание шаблона выполняться асинхронно.
- Требуется, если в шаблоне есть документ из библиотеки Adobe Sign.
- Возвращает сгенерированный идентификатор документа или любое сообщение об ошибке.
- Ошибка не отображается для пользователей, выполняющих запускаемое действие.
- AgreementTemplateLoadInvocableAction.load
При вызове класса Тип загрузки документа имеются 4 опции полей для конфигурации:
- Идентификатор главной записи — идентификатор записи Salesforce объекта, к которому должен относиться документ.
- Обычно выбирают тип Field Reference и значение «[Object].Id», когда объект — «Возможность», «Учетная запись» и пр.
- Идентификатор шаблона документа — идентификатор записи Salesforce шаблона документа для загрузки. Задайте тип «ID» и значение для идентификатора записи.
- Переменные времени выполнения шаблона документа — получатели и/или документы из переменной.
- Одна переменная: myRecipient=auserguy@adobe.com
- Две переменных: myRecipient=auserguy@adobe.com,myAttachment=00Pf4000002df0q
- Асинхронная обработка — необязательно; не указывайте, если нет такой необходимости. По умолчанию задано False, поэтому вызов шаблона выполнится в синхронном режиме (то есть та же транзакция/цепочка).
- Установите значение True, если шаблон документа загружает документ библиотеки Adobe Sign.
- Убедитесь, что значение — False, если для автоматической отправки задано True для шаблона.
- Нельзя автоматически отправлять документы библиотеки Adobe Sign вместе
- Обратите внимание, но встроенные ограничения Salesforce, если процесс вызывается из пакета или другого асинхронного процесса.
- Вызываемое действие отмены документа
- AgreementCancelInvocableAction.cancelAgreement
- Подает в идентификатор документа.
- Возвращает любое сообщение об ошибке.
- AgreementCancelInvocableAction.cancelAgreement
- Вызываемое действие удаления документа
- AgreementDeleteInvocableAction.deleteAgreement
- Подает в идентификатор документа.
- Возвращает любое сообщение об ошибке.
- AgreementDeleteInvocableAction.deleteAgreement
- Вызываемое действие напоминания документа
- AgreementRemindInvocableAction.sendReminder
- Подает в идентификатор документа.
- Возвращает любое сообщение об ошибке.
- AgreementRemindInvocableAction.sendReminder
- Вызываемое действие отправки документа
- AgreementSendInvocableAction.sendAgreement
- Подает в идентификатор документа.
- Возвращает любое сообщение об ошибке.
- AgreementSendInvocableAction.sendAgreement
- Вызываемое действие обновления документа
- AgreementUpdateInvocableAction.updateAgreement
- Подает в идентификатор документа.
- Возвращает любое сообщение об ошибке.
- AgreementUpdateInvocableAction.updateAgreement
Действия Отменить, Удалить, Напомнить, Отправить и Обновить требуют только Идентификатор документа (документа, с которым требуется выполнить действие):
Следует учитывать следующее:
- Поддерживаются запланированные действия.
- Поддерживаются шаблоны документа с автоматической отправкой (т. е. создание и отправка).
- Все операции могут принимать несколько запросов в одном вызове.
- Любые исключения обнаруживаются и хранятся в записи результата и записываются как ошибка в журнале отладки Apex во избежание выполнения процесса блокировки.
- Параметр функции Загрузка шаблона (Асинхронная обработка) указывает, в каком режиме происходит обработка: синхронном или асинхронном. Вызывающий должен указать, должна ли загрузка шаблона выполняться в синхронном или асинхронном режиме.
- Процесс по умолчанию выполняется в синхронном режиме. Большая часть процессов должна выполняться синхронно.
- Если включена автоматическая отправка, процесс должен быть в синхронном режиме.
- Асинхронный процесс будет осуществляться, если вам потребуется загрузить документ библиотеки Adobe Sign.
Ограничения:
- Сочетание шаблонов автоматической отправки и документов библиотеки Adobe Sign нет поддерживается из-за ограничения в Salesforce, когда одна цепочка не может сбросить другую.
- Для все параметров, которые подаются в вызываемое действие, можно ссылаться только на родительские поля (не дочерние). Выполнять действия с дочерними документами под главной записью нельзя.
- Значения, возвращенные из вызова Apex, не принимаются Process Builder. Действия, возвращающие значения, не поддерживаются (например, получить информацию о документе или URL для подписи).
Сервис Queueable
Новый слой сервиса был добавлен для вызова действий документов через Интерфейс Queueable Salesforce. Подробная информация о Queueable представлена здесь. Действия вызывают ключевые API сервиса, которые затем отвечают Adobe Sign API.
Поддерживаются следующие действия:
- Отправить
- Отменить
- Удалить
- Напомнить
- Обновить
Глобальный echosign_dev1.AdobeSignApiQueueableService — класс сервиса Apex, который принимает параметр типа echosign_dev1.QueueableServiceParameter, содержащий действие для вызова и идентификатор записи документа:
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));