Tratamento de erros no console do desenvolvedor
Se você realizou testes automatizados, processos ou triggers no Salesforce, podem ocorrer erros ao usar a integração com o Salesforce. Este artigo ajuda a resolver esses erros comuns.
Problema no teste Apex
Cenário
Ao realizar testes automatizados para a organização, se o teste incluir uma chamada HTTP do Cooby, um erro pode ocorrer.
Solução
Existem 2 métodos para resolver esses erros.
- Classe TestContext: Finge que a chamada foi bem-sucedida para resolver o erro.
A classe TestContext contém métodos para configurar simulações (mocks) de chamadas HTTP durante a execução de testes.
setPackageMock()
- Finalidade: Configura um mock padrão para chamadas HTTP durante a execução dos testes.
- Uso: Este método deve ser chamado para garantir que as chamadas HTTP sejam simuladas durante os testes.
setMock(HttpCalloutMock mockInstance)
- Finalidade: Configura uma instância específica de mock para chamadas HTTP durante os testes.
- Parâmetros: mockInstance: A instância de HttpCalloutMock a ser usada durante os testes.
- Uso: Use este método para definir um mock personalizado para chamadas HTTP durante os testes.
- Classe TestContext: Finge que a chamada foi bem-sucedida para resolver o erro.
A classe TriggerControl contém métodos para gerenciar o estado dos triggers (ativá-los ou desativá-los) para diferentes sObjects.
disable(String sObjectName)
- Finalidade: Desativa o trigger para o sObject especificado.
- Parâmetros:
sObjectName: O nome do sObject para o qual o trigger deve ser desativado.
- Uso: Chame este método para impedir que um trigger seja executado para um sObject específico.
enable(String sObjectName)
- Finalidade: Ativa o trigger para o sObject especificado.
- Parâmetros:
sObjectName: O nome do sObject para o qual o trigger deve ser ativado.
- Uso: Chame este método para permitir que um trigger seja executado para um sObject específico.
isDisabled(String sObjectName)
- Finalidade: Verifica se o trigger para o sObject especificado está desativado.
- Parâmetros:
sObjectName: O nome do sObject a ser verificado.
- Retorna: Verdadeiro se o trigger estiver desativado, Falso caso contrário.
- Uso: Use este método para verificar o status do trigger para um sObject específico.
disableAll()
- Finalidade: Desativa todos os triggers.
- Uso: Chame este método para impedir que todos os triggers sejam executados.
enableAll()
- Finalidade: Ativa todos os triggers.
- Uso: Chame este método para permitir que todos os triggers sejam executados.
Problema pós-instalação
Entendendo o Script de Pós-Instalação
O Script de Pós-Instalação é executado como um usuário especial do sistema que representa nosso pacote. Isso significa que todas as operações feitas pelo script parecem ser realizadas por nosso pacote.
A execução do Script de Pós-Instalação é iniciada por uma chamada de API do sistema, o que impõe certas limitações nos recursos disponíveis do Salesforce durante essa transação. Algumas dessas limitações incluem:
- Acesso a certos objetos padrão como Grupo, Grupo de Colaboração e Membro de Rede, etc.
- Uso limitado de Eventos de Plataforma.
- Operações DML em Objetos de Configuração. Transações API não podem executar operações DML em objetos de configuração ou metadados, como criação ou modificação de perfis, funções ou configurações personalizadas.
- Triggers e Regras de Workflow. Alguns triggers e workflows podem não ser acionados durante transações API, dependendo de como a transação está estruturada e se respeita a ordem de execução.
- Gerenciamento de Sessões. Transações iniciadas por API não mantêm uma sessão de usuário da mesma forma que sessões interativas. Isso pode afetar operações baseadas em sessão, como manutenção de estado entre transações.
Se alguma automação em sua organização acionada por Contato, Lead ou objetos do Cooby interagir com os recursos acima, a atualização de dados pode falhar e você receberá um e-mail com mensagens de erro.
Contexto Especial e Desafios
É importante observar que o Script de Pós-Instalação é executado no contexto de um usuário "fantasma". Esse contexto único pode levar a vários desafios:
- Restrições de Recursos: Devido à execução em nível de sistema, alguns recursos do Salesforce são restritos, o que pode não acontecer quando os processos são executados por um usuário comum.
- Diferenças de Contexto: O código que funciona perfeitamente no contexto de um usuário comum pode falhar durante a execução do Pós-Instalação por causa dessas restrições.
- Dificuldades de Depuração: Essas falhas podem ser difíceis de detectar antes do lançamento e ainda mais difíceis de depurar quando ocorrem. Infelizmente, não há como executar seu código InstallHandler nesse contexto de usuário "fantasma".
Cenário
O Cooby alterará extensivamente os Contatos/Leads durante a pós-instalação (para permitir que nossas funções operem corretamente). Se o usuário tiver triggers configurados para essas mudanças, ocorrerá um erro.
Solução
Se você notar erros durante a execução do Pós-Instalação, por favor:
- [Obrigatório] Verifique as Mensagens de Erro: Revise as mensagens fornecidas para identificar os problemas específicos.
- [Obrigatório] Revise os Logs de Depuração: Analise as linhas de erro para determinar a causa dos erros.
- [Opção 1] Execute manualmente o lote de manutenção de dados do Cooby
- [Opção 2] Atualize ou Desative a Automação: Desative ou atualize temporariamente as condições de acionamento das automações que podem estar causando esses erros.
Recomendamos verificar e ajustar temporariamente os processos automatizados da sua organização caso ocorram erros. Isso pode envolver a revisão e possível atualização de qualquer automação personalizada, trigger ou fluxo de trabalho que possa conflitar com as operações realizadas pelo Script de Pós-Instalação.
Executar manualmente o lote de manutenção de dados do Cooby
Cenário
Devido a um erro pós-instalação, o Cooby não será executado corretamente e o usuário não quer desativar os triggers.
Passo a passo da operação
- Abrir o Console do Desenvolvedor:
- Faça login na sua organização Salesforce.
- Clique no ícone de engrenagem no canto superior direito.
- Selecione Console do Desenvolvedor no menu suspenso.
- Executar os trabalhos de manutenção:
- No Console do Desenvolvedor, clique em Depurar na barra de menu.
- Selecione Abrir Janela Anônima (ou pressione Ctrl + E).
- Na janela anônima, insira o seguinte comando:
cooby.DataMaintenanceManager.run();
- Clique em Executar para iniciar o trabalho em lote.
- Ao finalizar, significa que você concluiu o trabalho em lote manualmente.
Verificando o status do trabalho em lote
- Navegar até Apex Jobs:
- Vá para Configurações clicando no ícone de engrenagem no canto superior direito e selecione Configurações.
- Na caixa de pesquisa rápida, digite Apex Jobs e selecione nos resultados.
- Monitorar o status do trabalho:
- Na página Apex Jobs, você verá uma lista de todos os trabalhos Apex.
- A coluna Status mostrará o status atual do trabalho em lote (ex: Na fila, Em andamento, Concluído ou Falhou).
- Estamos particularmente interessados em cinco Classes Apex específicas. Algumas podem ter Total de Lotes: 0, indicando que não há nada a alterar.
Tratamento de conclusão e erros
Receber notificação por e-mail:
- Após a conclusão de todos os trabalhos em lote, você poderá receber um e-mail de notificação.
- Esse e-mail conterá detalhes sobre quaisquer erros ocorridos durante a execução.
Se você notar falhas durante a execução em lote, esses erros estão diretamente relacionados aos processos de automação configurados na sua organização Salesforce. Para resolvê-los, siga os passos abaixo:
- Verificar Mensagens de Erro:
Revise as mensagens de erro no e-mail ou na página Apex Jobs. Essas mensagens geralmente contêm detalhes sobre os processos automáticos que causaram o erro.
- Revisar Logs de Depuração:
Vá para Configurações e pesquise por "Logs de Depuração" na caixa de busca.
Revise os logs para identificar o processo e as condições que geraram o erro.
- Atualizar ou Desativar Automação:
Depois de identificar o processo relevante, você pode desativá-lo temporariamente ou atualizar suas condições de acionamento para evitar novos erros.
Esperamos que este documento ajude você a entender melhor como o Cooby funciona. Para dúvidas sobre a integração com o Salesforce, envie um e-mail para support@cooby.co 💜
Actualizado em: 14/07/2025
Obrigado!