Visão geral
O Process Builder no Salesforce é uma ferramenta gráfica de apontar e clicar que permite automatizar ações com base em eventos de acionamento no ambiente do Salesforce.
Os processos são criados em torno de um tipo de fluxo lógico se/então e contêm um evento de disparo, pelo menos uma condição e pelo menos uma ação que pode acontecer em tempo real e/ou como um evento agendado.
O Adobe Sign suporta dois tipos de ação: atualização de registros e Apex
Cada tipo de ação tem várias ações invocáveis:
- Enviar
- Cancelar
- Excluir
- Lembrar
- Atualizar
- O carregamento (modelo) só está disponível ao usar o tipo de ação Apex
O Process Builder é uma ferramenta muito eficiente e a descrição completa de como funciona está fora do escopo deste documento.
Este documento destaca as ações disponíveis por meio da versão v20 do Adobe Sign para o pacote do Salesforce.
Se quiser saber mais sobre o Process Builder em geral, há uma documentação e um Trailhead interativo disponível no Salesforce.
Processos que usam “Atualizar registros” como o tipo de ação
Essa abordagem usa o tipo de ação Atualizar registros no Process Builder do Salesforce para definir o campo da lista de seleção Ação de plano de fundo no registro do contrato para chamar uma ação.
O novo processo pode ser criado (que é acionado com base nos eventos de alteração de registro) e depois chamar uma ação em um contrato relacionado ao Adobe Sign. Os usuários podem controlar quando a ação ocorrerá (ou seja, após qual atualização de campo no registro mestre) e quais contratos relacionados serão selecionados para a ação.
No momento, as ações a seguir são compatíveis:
- Enviar
- Cancelar
- Excluir
- Lembrar
- Atualizar
Fatores a considerar:
- Qualquer erro detectado durante o processo será armazenado no campo Mensagem de erro e pode ser exibido na página correspondente do Contrato
- As ações agendadas são compatíveis
- Os documentos da biblioteca do Adobe Sign são compatíveis
- Um ou mais contratos primário ou secundário podem ser selecionados
- Ao atualizar um registro de contrato, o registro relacionado é o objeto echosign_dev1
- O objeto echosign_dev1 está associado aos objetos comuns do Salesforce (Conta, Oportunidade, Contato, etc.). Se os Contratos estão relacionados a um objeto personalizado, esse nome será exclusivo para a organização.
- As ações são acionadas ao atualizar o campo da lista de seleção Ação de plano de fundo no registro do contrato com o valor correspondente da ação
- O registro do contrato já deve existir. Não pode ser criado ou carregado a partir de um modelo de contrato que usa um tipo de ação "Atualizar registros"
Processos que usam Apex como o tipo de ação
Essa abordagem usa o tipo de ação do Apex no Process Builder do Salesforce para chamar um Método invocável incluído com o pacote gerenciado para realizar a ação correspondente.
O novo processo pode ser criado (que é acionado com base nos eventos de alteração de registro) e depois chamar uma ação em um contrato relacionado ao Adobe Sign.
As ações invocáveis a seguir foram definidas:
- Ação invocável Carregar do modelo de contrato
- AgreementTemplateLoadInvocableAction.load
- Passe o modelo e as IDs mestre e quaisquer variáveis do tempo de execução.
- Passe em um parâmetro opcional para controlar se a geração de modelos é executada no modo assíncrono
- Obrigatório se o modelo contiver um documento da biblioteca do Adobe Sign
- Retorne a ID do registro de contrato gerada ou qualquer mensagem de erro
- O erro não estará visível para usuários que realizam a ação do disparador
- AgreementTemplateLoadInvocableAction.load
Ao chamar a Classe Tipo de contrato de carregamento, há quatro opções de campo que você pode configurar:
- ID do registro mestre - a ID do registro do Salesforce do objeto à qual o contrato deve estar relacionado.
- Geralmente, defina como tipo Referência de campo e o valor "[Object].Id" onde objeto é Oportunidade, Conta, etc.
- ID do modelo de contrato - A ID do registro do Salesforce do modelo de concordância a ser carregado. Defina tipo como "ID" e o valor como ID do registro
- Variáveis do tempo de execução do modelo de contrato - destinatários e/ou documentos de uma variável.
- Uma variável: myRecipient=auserguy@adobe.com
- Duas variáveis: myRecipient=auserguy@adobe.com,myAttachment=00Pf4000002df0q
- Processamento assíncrono - opcional, não especifique a menos que o necessário. Por padrão, ele será falso, portanto, a chamada do modelo será executada no modo de sincronização (ou seja, a mesma transação/vertente)
- Defina como Verdadeiro, se o modelo de contrato carregar um documento da biblioteca do Adobe Sign
- Assegure que o valor seja Falso, se AutoSend for verdadeiro para o modelo
- Não é possível enviar automaticamente com os documentos da biblioteca do Adobe Sign
- Esteja ciente das limitações incorporadas do Salesforce, se o processo estiver sendo chamado de um lote ou outro processo assíncrono
- Ação invocável Cancelar contrato
- AgreementCancelInvocableAction.cancelAgreement
- Passe a ID do contrato
- Retorne qualquer mensagem de erro
- AgreementCancelInvocableAction.cancelAgreement
- Ação invocável Excluir contrato
- AgreementDeleteInvocableAction.deleteAgreement
- Passe a ID do contrato
- Retorne qualquer mensagem de erro
- AgreementDeleteInvocableAction.deleteAgreement
- Ação invocável Lembrar contrato
- AgreementRemindInvocableAction.sendReminder
- Passe a ID do contrato
- Retorne qualquer mensagem de erro
- AgreementRemindInvocableAction.sendReminder
- Ação invocável Enviar contrato
- AgreementSendInvocableAction.sendAgreement
- Passe a ID do contrato
- Retorne qualquer mensagem de erro
- AgreementSendInvocableAction.sendAgreement
- Ação invocável Atualizar contrato
- AgreementUpdateInvocableAction.updateAgreement
- Passe a ID do contrato
- Retorne qualquer mensagem de erro
- AgreementUpdateInvocableAction.updateAgreement
As ações Cancelar, Excluir, Lembrar, Enviar e Atualizar exigem somente a ID do contrato que deve ser cumprido:
Fatores a considerar:
- As ações agendadas são compatíveis
- Os modelos de contrato com envio automático são compatíveis (ou seja, gerar e enviar)
- Todas as ações podem aceitar várias solicitações em uma chamada
- Todas as exceções são capturadas e armazenadas no registro de resultados e documantadas como erro no log de depuração do Apex, para evitar o bloqueio da execução do processo.
- O parâmetro para a função Carregamento de modelo ( Processamento assíncrono) controla se o processamento do modelo ocorre no modo síncrono ou assíncrono. O autor da chamado precisa especificar se o carregamento do modelo deve ser executado no modo síncrono ou assíncrona
- O processo padrão é executado no modo síncrono. A volume dos processos deve ser executado de forma síncrona
- Se o envio automático estiver ativado, o processo deve estar no modo síncrono
- O processo assíncrono notável seria se você precisar carregar um documento da biblioteca do Adobe Sign
Restrições:
- Não há suporte para a combinação de modelos de envio automático e documentos da biblioteca do Adobe Sign devido a uma limitação no Salesforce, na qual uma vertente não consegue iniciar outra
- Para todos os parâmetros transmitidos à ação invocável, somente os campos primários (não campos secundários) podem ser referenciados. Não é possível realizar ações nos contratos secundários em um registro mestre
- Os valores de retorno de uma chamada do Apex não podem ser usados em um Process Builder. Não há suporte para ações que retornam um valor (ou seja, obter informações do documento ou obter URL de assinatura).
Serviço em fila
Uma nova camada de serviço foi implementada para chamar as ações de contrato por meio da interface em fila do Salesforce. Obtenha mais informações sobre Fila aqui. As ações chamam as APIs do serviço principal que, em seguida, chamam a API do Adobe Sign.
As ações a seguir são compatíveis:
- Enviar
- Cancelar
- Excluir
- Lembrar
- Atualizar
O echosign_dev1.AdobeSignApiQueueableService global é a classe do Apex de serviço, que recebe um parâmetro do tipo echosign_dev1.QueueableServiceParameter, que contém a ação a ser chamada e a ID de registro do contrato:
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));