Guia do Usuário Cancelar

Adobe Acrobat Sign para Salesforce - Guia do desenvolvedor

  1. Integrações do Adobe Acrobat Sign
  2. Novidades
  3. Versões e ciclo de vida do produto
  4. Acrobat Sign para Salesforce
    1. Guia de instalação
    2. Guia do usuário
    3. Manual do desenvolvedor
    4. Manual avançado de personalização
    5. Guia de mapeamento de campo e modelos
    6. Guia de automação de fluxos
    7. Guia do Document Builder
    8. Guia de atualização
    9. Notas de versão
    10. Manual de solução de problemas
    11. Artigos adicionais
  5. Acrobat Sign para Microsoft
    1. Acrobat Sign para Microsoft 365
      1. Guia de instalação
    2. Acrobat Sign para Outlook
      1. Guia do usuário
    3. Acrobat Sign para Word/PowerPoint
      1. Guia do usuário
    4. Acrobat Sign para Teams
      1. Guia do usuário
      2. Notas de versão
      3. Aprovações do Microsoft Teams
    5. Acrobat Sign para Microsoft PowerApps e Power Automate
      1. Guia do usuário
      2. Notas de versão
    6. Conector do Acrobat Sign para Microsoft Search
      1. Guia do usuário
      2. Notas de versão
    7. Acrobat Sign para Microsoft Dynamics 
      1. Visão geral
      2. Dynamics Online: guia de instalação 
      3. Dynamics Online: guia do usuário 
      4. Dynamics local: guia de instalação 
      5. Dynamics local: guia do usuário
      6. Guia de fluxo de trabalho do Dynamics
      7. Dynamics 365 para Talent
      8. Guia de atualização
      9. Notas de versão
    8. Acrobat Sign para Microsoft SharePoint 
      1. Visão geral
      2. SharePoint local: guia de instalação
      3. SharePoint local: guia de mapeamento de modelo
      4. SharePoint local: guia do usuário
      5. SharePoint local: notas de versão
      6. SharePoint Online: guia de instalação
      7. SharePoint Online: guia de mapeamento de modelo
      8. SharePoint Online: guia do usuário
      9. SharePoint Online: guia de mapeamento de formulário web
      10. SharePoint Online: notas de versão
  6. Acrobat Sign for ServiceNow
    1. Visão geral
    2. Guia de instalação
    3. Guia do usuário
    4. Notas de versão
  7. Acrobat Sign for HR ServiceNow
    1. Guia de instalação
  8. Acrobat Sign for SAP SuccessFactors
    1. Guia de instalação do Cockpit
    2. Guia de instalação de recrutamento
    3. Guia do usuário de Recrutamento
    4. Guia de instalação do Cloud Foundry
  9. Acrobat Sign for Workday
    1. Guia de instalação
    2. Guia de início rápido
    3. Tutorial de configuração
  10. Acrobat Sign for NetSuite
    1. Guia de instalação
    2. Notas de versão
  11. Acrobat Sign for SugarCRM
  12. Acrobat Sign for VeevaVault
    1. Guia de instalação
    2. Guia do usuário
    3. Guia de atualização
    4. Notas de versão
  13. Acrobat Sign for Coupa BSM Suite
    1. Guia de instalação
  14. Documentação do desenvolvedor do Acrobat Sign
    1. Visão geral
    2. Webhooks
    3. Tags de texto

Visão geral

O Adobe Acrobat Sign para Salesforce - Guia do desenvolvedor foi projetado para ajudar os desenvolvedores da Salesforce a saber mais sobre os objetos e parâmetros necessários para integrar seu pacote da Salesforce com o Adobe Acrobat Sign.

Cuidado:

Objetos do Adobe Acrobat Sign para Salesforce podem mudar em uma versão futura. Se você criar uma solução personalizada que depende de objetos alterados, poderá ser necessário atualizar sua personalização.

Diretrizes de integração

  • Se precisar saber quando o contrato está totalmente assinado, implemente um acionador Apex no objeto echosign_dev1__SIGN_Agreement__c após ou antes da atualização (dependendo do caso de uso e dos requisitos). Quando o campo echosign_dev1__Status__c é alterado para Assinado ou Aprovado ou outros status finais, o contrato é concluído.
  • Se você precisar saber quando cada PDF assinado individual é inserido, se por exemplo precisar obter cada PDF assinado intermediário, implemente um acionador Apex nos objetos Attachment ou ContentVersion, após a inserção, e observe um contrato principal e um nome que termine em "- signed.pdf" ou "- approved.pdf" ou outro status final
  • Se precisar saber quando um recipient individual assinou ou aprovou, implemente um acionador Apex no objeto echosign_dev1__SIGN_Recipients__c, após ou antes da atualização (dependendo do caso de uso e dos requisitos). Quando o campo echosign_dev1__Status__c é alterado para Assinado ou Aprovado ou outros status finais, o recipient foi concluído.
  • Se você precisar saber quando ocorre um evento específico que faz parte do processo de assinatura, como o envio de um contrato para assinatura ou um envio de lembrete, um acionador pode ser criado no objeto de eventos do contrato (echosign_dev1__SIGN_AgreementEvent__c) para verificar o tipo do evento
  • Os nomes dos status finais de um contrato concluído são: "Assinado", "Aprovado", "Aceito", "Preenchido com formulário" e "Entregue"
  • Os nomes do Status final do contrato para um contrato encerrado são: "Cancelado/Recusado" e "Expirado"

Atualizar ordem

Na v21, a ordem das atualizações foi alterada. Veja abaixo a nova sequência em que o contrato e seus objetos relacionados são atualizados:

  1. Anexos 
  2. Destinatários 
  3. Contrato (status e outros atributos)
  4. Eventos do contrato 
  5. Feeds do Chatter 

Serviços Apex

Método Apex em uso

A partir do Acrobat Sign para Salesforce versão 21.0, todos os processos assíncronos (que incluem atualizações automáticas e mapeamentos de dados) foram alternados de métodos futuros para em fila, uma abordagem recomendada pela Salesforce.

Devido a essa alteração, todas as personalizações na organização do assinante que adicionam tarefas à fila da Salesforce como parte do processo de atualização automática ou mapeamento de dados falhará com o erro "Sistema.LimitException: muitas tarefas em fila adicionadas à fila: 2". 

A falha acontece porque um processo em fila só pode adicionar um trabalho secundário em fila, que já foi usado pelo Acrobat Sign. Para obter detalhes, consulte Limites do Apex em fila.

Erro: "Ao encadear tarefas, você pode adicionar apenas uma tarefa de uma tarefa em execução com o Sistema.enqueueJob, o que significa que apenas uma tarefa secundária pode existir para cada tarefa principal em fila. Iniciar várias tarefas secundárias a partir da mesma tarefa em fila não é compatível."

O erro acima descrito ocorre quando o status do contrato não é alterado ou o mapeamento de dados não é executado corretamente. Para solucionar esse erro, localize o acionador, construtor de processo ou fluxo de trabalho com problema e desative-o, alterne-o para usar uma chamada assíncrona ou agende-o para depois.

Serviço de modelo de contrato

O serviço de modelo de contrato é exposto como um serviço global do Apex pelo pacote gerenciado. Isso permite que o código do Apex fora do pacote gerenciado carregue contratos com base em modelos de contrato existentes. A classe e todos os métodos expostos são marcados como global para permitir esse acesso.

O serviço Apex é exposto por meio da seguinte classe de chamada: echosign_dev1.AgreementTemplateService

Observação:

No momento, não é possível carregar um modelo de contrato com Modelos de biblioteca para assinar eletronicamente. Sugerimos mover os modelos de documento para uma biblioteca de documentos do Salesforce.

  Métodos

global

static Id load()

Carrega um contrato usando um modelo de contrato marcado como padrão e que não tem um tipo de objeto principal.

global

static Id load(String templateId)

Carrega um contrato usando a ID de modelo de contrato especificada, que não tem um tipo de objeto principal.

 

global

static Id load(String templateId, String masterId)

Carrega um contrato usando a ID de modelo de contrato especificada e a ID de registro principal especificada, cujo tipo deve corresponder ao tipo de objeto principal configurado no modelo de contrato especificado.

global

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

Carrega um contrato usando a ID de modelo de contrato especificada e a ID de registro principal especificada, cujo tipo deve corresponder ao tipo de objeto principal configurado no modelo de contrato especificado. Também é transmitida nas variáveis de tempo de execução especificadas como pares de valores de nome.

 

global

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

Obtenha uma lista de modelos de contrato com base nas opções de filtragem. Retorne uma lista vazia se nenhum modelo de contrato for encontrado com as opções de filtragem.

global

static AgreementTemplateService.AgreementTemplateDetails getAgreementTemplateDetails(String templateId)

Obtenha detalhes do modelo de contrato para a ID do modelo de contrato especificada.

Retorne um objeto vazio se nenhum modelo de contrato for encontrado.

global

static String getAgreementTemplateUrl(String templateId)

Obtenha o URL para editar o modelo de contrato com a ID do modelo de contrato.

global

static String getNewAgreementTemplateUrl()

Obtenha o URL para criar um novo Modelo de contrato no Adobe Sign.

 Construtores (1)

Acessar

Assinatura

global

AgreementTemplateListOptions()

global

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

global class AgreementTemplateService.AgreementTemplateListOptions

Propriedades (5)

Acessar

Nome

global

masterObjectType

global

isActive

global

hasAttachment

global

hasRecipient

global

autoSend

Observação:

Nenhum filtro é aplicado em seu campo correspondente ao consultar modelos de contrato se um campo listado acima tiver um valor nulo.

global class AgreementTemplateService.AgreementTemplateBasicInfo

Propriedades (6)

Acessar

Nome

global

name

global

recordId

global

url

global

isDefault

global

daysUntilExpiration

global

idioma

global class AgreementTemplateService.AgreementTemplateDetails

Propriedades (6)

Acessar

Nome

global

message

global

ccList

global

dataMappingName

global

mergeMappingName

global

url

global

destinatários

global class AgreementTemplateService.RecipientInfo

Propriedades (4)

Acessar

Nome

global

recipientRole

global

recipientType

global

recipientName

global

signOrder

  Variáveis de tempo de execução

A classe global echosign_dev1.AgreementTemplateVariable tem dois campos globais.

  • nome: o nome da variável, que deve corresponder a um nome de variável de tempo de execução configurado no modelo de contrato.
  • valor: o valor dessa variável que será usado durante o carregamento do modelo. O valor depende de onde a variável foi usada. Por exemplo, para um recipient, deve ser uma ID de registro de contato, cliente potencial ou usuário ou um email. Para uma variável de documento, deve ser uma ID de registro de anexo.

Resultado

Cada método retorna a ID do registro de contrato recém-criado ou gera uma exceção com uma mensagem de erro detalhada se algo der errado durante a operação de carregamento.

Serviço de API

O serviço de modelo de API para assinar eletronicamente da Adobe é exposto como um serviço global do Apex pelo pacote gerenciado. Isso permite que o código do Apex fora do pacote gerenciado chame um conjunto de APIs para assinar eletronicamente da Adobe por meio desses empacotadores. Os empacotadores simplificam muito a chamada de API porque os consumidores não precisam criar modelos de dados de solicitação e resposta. Além disso, os clientes não precisam lidar com a transformação dos dados do Salesforce em modelos de dados para assinar eletronicamente. A maior parte da complexidade é abstraída do consumidor. Por exemplo, para enviar um contrato que o consumidor acaba de transmitir na ID de registro do contrato, o serviço tratará de consultá-lo, extrair todos os dados relevantes, transmiti-lo na API e analisar o resultado.

A classe e todos os métodos expostos são marcados como global para permitir esse acesso.

  • v17 e anteriores chamam APIs SOAP
  • v18 e posterior chamam APIs REST

O serviço Apex é exposto por meio da seguinte classe de chamada: echosign_dev1.EchoSignApiService

Métodos

global

static void cancelDocument(Id agreementId)

Cancela o contrato com a ID especificada.

global

static void delegateSigner(Id agreementId, String delegatedEmail)

Delegar assinatura ao email fornecido.

global

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

Delegar assinatura ao email fornecido com a mensagem especificada.

global

static echosign_dev1.EchoSignApiService.DocumentInfo getDocumentInfo(Id agreementId)

Recupera informações detalhadas para a ID de contrato especificada.

global

static List<EchoSignApiService.SigningUrl>

getSigningUrls(Id agreementId)

Recupera todos os URLs de assinatura da ID de contrato especificada.

global

static void removeDocument(Id agreementId)

Cancela o contrato com a ID especificada e exclui o registro de contrato no Salesforce (o contrato não é removido da conta de assinatura eletrônica da Adobe).

global

static void replaceSigner(Id replacementRecipientId)

Substitui o signatário especificado.

global

static void replaceSigner(Id replacementRecipientId, String message)

Substitui o signatário especificado pela mensagem especificada.

global

static echosign_dev1.EchoSignApiService.

SendDocumentResult sendDocument(Id agreementId)

Envia o contrato com a ID especificada, retorna o resultado com a chave do documento e o URL.

global

static void sendReminder(Id agreementId)

Envia um lembrete ao signatário atual para a ID de contrato especificada.

global static void updateAgreement(Id agreementId) Atualiza o contrato com a agreementId especificada
global static EchoSignApiService.AgreementViewUrl getViewAgreementUrl(Id agreementId)
Recupera a página exibir/gerenciar do Sign para a ID do contrato especificada, que tem uma propriedade viewURL.
Observação: por motivos de segurança, o URL do contrato gerado tem apenas uma duração temporária, portanto gera uma chamada REST-HTTPS para obter um URL novo dos serviços do Adobe Sign.

Classes internas

global class DocumentHistoryEvent

Propriedades (2)

Acessar

Nome

global

String eventType

global

String participantEmail

Construtores (1)

Acessar

Assinatura

global

DocumentHistoryEvent()


global class DocumentInfo

Propriedades (5)

Acessar

Nome

global

Map<string,list> historyByEmail

global

Map participantsByEmail

global

Map participantsByName

global

String senderEmail

global

Status da string

  Construtores (1)

Acessar

Assinatura

global

DocumentInfo()

global class ParticipantInfo

Propriedades (5)

Acessar

Nome

global

Empresa da string

global

Email da string

global

Nome da string

global

Status da string

global

Título da string

  Construtores (1)

Acessar

Assinatura

global

ParticipantInfo()

global class SendDocumentResult

Propriedades (3)

Acessar

Nome

global

String documentKey

global

Erro de exceção

global

URL da string

Construtores (1)

Acessar

Assinatura

global

SendDocumentResult()

global class SigningUrl

Propriedades (3)

Acessar

Nome

global

Email da string

global

String esignUrl

global

String simpleEsignUrl

Construtores (1)

Acessar

Assinatura

Global

 

Serviços em lote do Apex

Expõe as principais ações de contratos para assinar eletronicamente em massa, permitindo que uma operação seja executada em um conjunto de contratos. Esta classe implementa a interface Database.Batchable do Salesforce. Ela pode processar qualquer número de registros, que serão divididos em conjuntos de 5, e processar cada conjunto como uma transação individual, o que permite que os limites do regulador sejam respeitados.

O serviço em lote do Apex é exposto por meio da seguinte classe de chamada: echosign_dev1.EchoSignActionBatch

Parâmetros

Os parâmetros a seguir devem ser especificados para inicializar uma operação em lote.

Uma lista das IDs de registro do contrato nas quais executar a ação fornecida. A ação a ser executada, um dos seguintes valores suportados:

  • Lembrar
  • Enviar
  • Cancelar
  • Excluir
  • Atualizar

ID da sessão do usuário atual. Necessário apenas para um tipo de ação de atualização.

Registro de usuário remetente, usado para notificar este usuário por email quando o processamento em massa for concluído.

Exemplo de uso

User submitterUser = UserInfo.getUserId();

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

Lote de modelos de contrato

Usa uma consulta SOQL e uma ID de registro de modelo de contrato. A consulta é executada para obter um conjunto de registros de objeto principal, cada um dos quais é executado por meio do modelo de contrato fornecido para gerar um registro de contrato. Esta classe implementa a interface Database.Batchable do Salesforce. Ela pode processar qualquer número de registros, que serão divididos em conjuntos de 5, e processar cada conjunto como uma transação individual, o que permite que os limites do regulador sejam respeitados.

Os tipos de registro retornados pela consulta SOQL devem corresponder ao tipo de objeto principal do modelo de contrato fornecido. Para cada registro, o serviço de modelo de contrato é chamado.

O serviço em lote do Apex é exposto por meio da seguinte classe de chamada:

echosign_dev1.AgreementTemplateBatch

Parâmetros

Os parâmetros a seguir devem ser especificados para inicializar uma operação em lote.

A consulta SOQL a ser executada deve conter a ID do registro como um campo selecionado. Qualquer outro campo é opcional.

A ID do registro do modelo de contrato, que será usada em conjunto com a ID do registro principal para carregar um contrato.

Exemplo de uso

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);

Lote de serviço de modelo de contrato

Usa uma lista de IDs de registro de objeto principal e o tipo de objeto principal, que são consultados, e cada um deles é executado por meio do modelo de contrato fornecido para gerar um registro de contrato. Esta classe implementa a interface Database.Batchabledo Salesforce. Ela pode processar qualquer número de registros, que serão divididos em conjuntos de 5, e processar cada conjunto como uma transação individual, o que permite que os limites do regulador sejam respeitados.

O tipo de objeto principal fornecido deve corresponder ao tipo de objeto principal do modelo de contrato fornecido. Para cada registro, o serviço de modelo de contrato é chamado.

O serviço em lote do Apex é exposto por meio da seguinte classe de chamada:

echosign_dev1.AgreementTemplateServiceBatch

Parâmetros

Os parâmetros a seguir devem ser especificados para inicializar uma operação em lote.

  • Lista de IDs do registro principal.
  • A ID de registro do modelo de contrato, que será usada em conjunto com os registros principais para carregar um contrato.
  • Nome do objeto principal para consultar os registros principais.

Exemplo de uso

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);

Serviços REST

Serviço de modelo de contrato

O serviço de modelo de contrato é exposto como um serviço Web REST do Salesforce pelo pacote gerenciado. Isso permite que sistemas externos fora da organização do Salesforce carreguem contratos com base em modelos de contrato existentes. Consulte o artigo Criação de APIs REST usando o Apex REST para obter mais detalhes sobre como acessar e chamar serviços personalizados do Apex REST no Salesforce. As chamadas devem fornecer uma ID de sessão válida para autenticação e autorização.

O serviço Web é exposto pelo seguinte URL:

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

Observação:
  • O nome da instância varia de acordo com a instância da sua organização.
  • https://_<instance_name>_.salesforce.com/services/apexrest/echosign_dev1/template/load/<template_id> é um método HTTP POST para as versões de pacote 20.0 e posteriores.
    • As versões antes da v20 usam um método GET.

ID do modelo

A última parte do URL é a ID do registro do modelo de contrato na organização atual do Salesforce que deve ser usada para carregar o contrato. Esta parte do URL é opcional. Se omitida, o modelo de contrato marcado como padrão será carregado. Se a ID do modelo for omitida e nenhuma ID de modelo de contrato padrão existir, um erro será retornado.

A ID do modelo pode estar no formato de 15 ou 18 caracteres.

ID principal

O parâmetro masterId especifica qual registro principal deve ser usado para carregar o contrato do modelo de contrato específico. Esse parâmetro é opcional, mas deve ser especificado para qualquer modelo de contrato que especifique um tipo de objeto principal e faça referência a esse objeto principal no modelo.

A ID principal pode estar no formato de 15 ou 18 caracteres.

Variáveis de tempo de execução

Quaisquer parâmetros adicionais são usados como variáveis de tempo de execução, como pares nome-valor, usados para preencher quaisquer variáveis de tempo de execução especificadas no modelo de contrato.

Resultado

O serviço Web REST retorna um objeto LoadResult que contém os seguintes campos:

  • agreementId: se a operação de carregamento do contrato foi bem-sucedida, ela contém a ID do registro do contrato recém-criado.
  • erro: se houve qualquer erro durante o carregamento do contrato, este campo conterá uma mensagem de erro detalhada.

Serviço em segundo plano

O recurso de serviço em segundo plano permite que os consumidores de pacotes chamem várias ações em um objeto de contrato atualizando o campo Ação em segundo plano (echosign_dev1 Background_Actions c) para o valor correspondente. Quando o valor do campo é alterado de um valor em branco ou outro valor para um dos seguintes valores, a ação é iniciada de um acionador que faz parte do pacote gerenciado da assinatura eletrônica.

  • Lembrar
  • Enviar
  • Cancelar
  • Excluir
  • Atualizar

Todas as ações são executadas em um modo futuro assíncrono, portanto, o status será armazenado no campo Erro no contrato.

Alterações na compatibilidade com versões anteriores

  • Agora o status do contrato é atualizado após a atualização dos documentos e destinatários
    • Antes da v21, o status era definido antes.
  • Agora o objeto Contrato assinado (que armazena os URLs de imagem) não é inserido de forma alguma
    • Antes da v21, ele era inserido após a conclusão de todas as outras atualizações
  • O tamanho máximo da solicitação ou resposta de callout é limitado a 12 MB para Apex assíncrono, de acordo com os limites do administrador da Salesforce: https://developer.salesforce.com/docs/atlas.en-us.210.0.apexcode.meta/apexcode/apex_gov_limits.htm
    • Os documentos maiores que 12MB não podem ser buscados pelo Sign porque estão acima do limite.
  • As descrições de eventos do contrato foram alteradas. Agora corresponde a descrição como retornada pela API do Sign e com os relatórios de auditoria.
  • Agora o processo de atualização é executado como um processo em lote nativo do Apex (que é um processo assíncrono) no Salesforce
    • Antes era uma atualização que usava chamadas de API de fora do Salesforce
    • Desativar essas atualizações de status que iniciam processos assíncronos não funciona mais porque o Salesforce limita a chamada de outro processo assíncrono de um processo assíncrono já em execução
  • Antes da v21, as atualizações dos atributos do contrato eram divididas em chamadas separadas de atualização. Agora todos os objetos do contrato são atualizados em uma única transação.
  • Antes da v21, os contratos com falha só podiam ser recuperados fazendo uma atualização manual no Salesforce
    • Agora as atualizações são mais seguras porque o backend do Sign recupera automaticamente os eventos com falha para um número de vezes especificado.
  • Agora as atualizações manuais atualizam todos os aspectos dos contratos, incluindo os objetos relacionados.
  • Agora os contratos por push são executados no modo assíncrono, da mesma forma que as atualizações regulares e os atributos adicionais são atualizados, da mesma forma que as atualizações regulares.
  • Novas configurações foram inseridas para ativar e desativar atualizações de diferentes aspectos do contrato.
  • Quando um PDF assinado é armazenado no Salesforce, não haverá mais um descritor (assinado ou aprovado) adicionado ao final do nome de arquivo PDF.
Logotipo da Adobe

Fazer logon em sua conta