Ir para o conteúdo

Solução de problemas do conector Salesforce no Jitterbit Studio

Visão geral

Este tópico fornece informações de solução de problemas específicas do conector Salesforce. Também pode se aplicar ao Salesforce Service Cloud e aos conectores ServiceMax.

Todas as entradas de solução de problemas nesta página

Testes e logs

Se você tiver problemas com o conector Salesforce, recomenda-se seguir estas etapas de solução de problemas:

  1. Garanta que a conexão Salesforce seja bem-sucedida usando o botão Test na tela de configuração. Se a conexão não for bem-sucedida, o erro retornado pode fornecer uma indicação do problema.

  2. Verifique os logs de operação para qualquer informação registrada durante a execução da operação.

  3. Ative o log de debug de operação (para agentes em nuvem ou para agentes privados) para gerar arquivos de log e dados adicionais.

  4. Se estiver usando agentes privados, você pode verificar os logs do agente para obter mais informações.

  5. Para considerações adicionais de solução de problemas, consulte Solução de problemas de operação.

Limites de registros e chunking

Operações falham devido aos limites de registros da API Salesforce

  • Sintoma: Uma atividade padrão do Salesforce (como Upsert) falha ou processa menos registros do que o esperado porque os dados de origem excedem o limite de registros por chamada. A operação pode falhar com:

    EXCEEDED_ID_LIMIT: record limit reached. cannot submit more than 200 records into this call
    
  • Causa: As atividades padrão do Salesforce aceitam um máximo de 200 registros por chamada. Quando mais registros são enviados em uma única chamada, o Salesforce rejeita o excesso. Isso pode aconter de duas formas: o chunking não está ativado ou está ativado mas a origem não consegue respeitá-lo. O chunking é respeitado apenas quando a origem é um conector nativo. Com qualquer outra origem, como HTTP v2, todos os registros são enviados em uma única chamada independentemente do tamanho de chunk configurado. Consulte Chunking requer um conector nativo como origem.

  • Resolução:
    • Ative o chunking na operação e defina o tamanho do chunk para 200 ou menos. Para obter instruções, consulte Ativar Chunking.
    • Confirme que o tamanho do chunk é realmente aplicado aos dados de origem. Quando a origem é um payload grande produzido por outra atividade, verifique se a operação o divide em chamadas de 200 registros ou menos. Se o limite ainda for excedido apesar de um tamanho de chunk correto, entre em contato com o suporte Jitterbit.
    • Para atividades em massa do Salesforce, aumente o tamanho de chunk padrão de 200 para um valor maior, como 10.000, pois as atividades em massa são projetadas para lidar com altos volumes de registros.

Chunking divide os dados durante a transformação em vez de na recuperação. Quando a origem é uma atividade do Salesforce, cada chunk é gravado em um arquivo temporário e os arquivos são combinados no destino final após todos os chunks serem processados. Quando o destino é uma atividade do Salesforce, cada chunk de origem produz um chunk de destino, com a transformação aplicada separadamente a cada um, e os chunks de destino resultantes são então combinados. Para mais detalhes, consulte Informações detalhadas sobre chunking.

Erros de autenticação

Autenticação multifator impede conexões de autenticação básica

  • Sintoma: Uma conexão que usa Autenticação Básica com o conector Salesforce, Salesforce Service Cloud ou ServiceMax falha no teste de conexão ou se conecta mas falha em operações com um erro de autenticação.
  • Causa: Esses conectores compartilham a mesma base de código e autenticam em uma org do Salesforce. A autenticação básica requer uma conta do Salesforce cujo conjunto de permissões atribuído não inclui a permissão Autenticação Multifator para Logins de API. Quando essa permissão é atribuída (MFA ativa para a conta), as conexões de autenticação básica falham.
  • Resolução:
    • No Salesforce, revise o conjunto de permissões atribuído ao usuário de login de integração do sistema e confirme que Autenticação Multifator para Logins de API não está selecionado. Os tipos de login de integração do sistema estão isentos do requisito de MFA do Salesforce. Para detalhes, consulte as Perguntas frequentes sobre autenticação multifator do Salesforce.
    • Se não for possível remover MFA do usuário de integração, mude a conexão para autenticação OAuth 2.0 de dois passos.

Nota

O uso de OAuth 2.0 de dois passos requer versão do agente 11.59 ou posterior. Em agentes 12.x, requer 12.3 ou posterior para o conector Salesforce e 12.4 ou posterior para os conectores Salesforce Service Cloud e ServiceMax.

Incompatibilidade de Nome Alternativo do Assunto (SAN) do Certificado

  • Sintoma: Uma conexão Salesforce com uma sandbox ou uma org com Domínios Aprimorados ativados falha com:

    Certificate for <url> doesn't match any of the subject alternative names
    
  • Possíveis causas:

    • O certificado não inclui o MyDomain do Salesforce ou a URL da sandbox em seus Nomes Alternativos do Assunto.
    • A caixa de seleção Sandbox nas configurações de conexão do Salesforce não está corretamente ativada.
  • Resolução:

    • Inspecione as entradas SAN do certificado usando OpenSSL: openssl x509 -in cert.crt -text -noout. Confirme que a seção Nome Alternativo do Assunto inclui sua URL do MyDomain do Salesforce.
    • Nas configurações de conexão do Salesforce no Studio, verifique se a caixa de seleção Sandbox está corretamente definida para sua org de destino.
    • Se a URL do Salesforce estiver ausente dos SANs, regenere o certificado para incluir o domínio específico.
    • Se a mesma conexão funciona em um grupo de agentes na nuvem mas falha em um agente privado, a causa pode ser uma extensão SNI ausente no handshake TLS do agente. Consulte Falha na conexão da sandbox do Salesforce com incompatibilidade de certificado.

Conexão, configuração ou operação falha intermitentemente com SERVER_UNAVAILABLE

  • Sintoma: Um teste de conexão, configuração de atividade ou execução de operação do Salesforce falha intermitentemente com:

    SERVER_UNAVAILABLE: server temporarily unavailable
    

    Por exemplo, isso pode ocorrer ao selecionar um objeto durante a configuração de atividade.

  • Possível causa: O Salesforce retorna este código de falha quando seu próprio servidor está temporariamente incapaz de processar a solicitação; o conector o relata com esta mensagem genérica em vez de passar qualquer texto mais específico do Salesforce.

  • Resolução: Repita o teste de conexão, a etapa de configuração ou a operação, aguardando mais tempo entre cada tentativa se continuar falhando. Se o erro persistir ou ocorrer com frequência, verifique Salesforce Trust para um incidente relatado que afete sua instância ou entre em contato com o Suporte do Salesforce. Um cenário relacionado é descrito no artigo do Salesforce SERVER_UNAVAILABLE: Too Many Requests Waiting for Connections.

Erros de configuração de atividade

Esquema de dados não inclui campos do Salesforce adicionados recentemente

  • Sintoma: Um campo adicionado recentemente a um objeto do Salesforce não aparece no esquema de transformação ao configurar uma atividade do Salesforce.
  • Causa: O esquema de dados é armazenado em cache desde quando a atividade foi configurada pela última vez e não é atualizado automaticamente.
  • Resolução: Abra a configuração de atividade e avance por cada etapa. Faça pelo menos uma pequena alteração (como adicionar e remover um caractere do nome da atividade) para forçar um recarregamento do esquema. Clique em Finished para salvar a configuração atualizada.

Automap não mapeia campos quando uma atividade do Salesforce é o alvo da transformação

  • Sintoma: Quando uma atividade do Salesforce (como Insert ou Upsert) é usada como alvo de uma transformação, usar Automap não mapeia nenhum campo.
  • Causa: O esquema de atividade do Salesforce inclui um nó raiz extra acima dos campos do objeto quando o esquema é espelhado. Este nó raiz extra impede que o automap corresponda aos campos de origem com os campos de destino corretos.
  • Resolução:
    1. Na tela de transformação, localize o nó de objeto de nível superior no lado do destino (por exemplo, Account).
    2. Arraste o nó de origem correspondente para alinhá-lo manualmente.
    3. Com os nós alinhados, execute Automap novamente. Os campos sob o nó serão mapeados automaticamente.

Atividade de consulta: Consulta pai-filho gera esquema hierárquico

  • Sintoma: Uma atividade de Consulta do Salesforce usando uma consulta SOQL pai-filho gera um esquema de resposta hierárquico. Quando este esquema é espelhado no lado do destino de uma transformação, a saída é XML hierárquico em vez de uma estrutura plana.
  • Causa: O esquema hierárquico reflete a relação pai-filho na consulta. Espelhar o esquema de origem no destino da transformação preserva essa hierarquia na saída.
  • Resolução:
    • Para produzir saída plana, defina um esquema plano no lado do destino da transformação em vez de espelhar o esquema de origem.
    • Se acessar resultados de consulta em um script, os dados já estão disponíveis como uma estrutura plana sem qualquer configuração adicional.

Erros de escrita de dados

Upsert falha para alguns registros: ID externo duplicado

  • Sintoma: Uma operação Upsert ou Bulk Upsert do Salesforce é concluída, mas relata falhas para alguns registros.
  • Causa: Múltiplos registros de origem compartilham o mesmo valor de ID externo. Quando o ID externo não é único, o Salesforce retorna um erro e o upsert falha para esses registros.
  • Resolução:
    • Verifique o arquivo de falha na página Runtime do Management Console (aba Activity Logs) para identificar quais registros falharam.
    • Garanta que o campo usado como ID externo tenha um valor único para cada registro. Consulte Criar um ID externo do Salesforce para Jitterbit.

Atividade Insert ou Update: Campo de ID de registro não pode ser mapeado

  • Sintoma: Uma transformação inclui um mapeamento para o campo de ID de registro do Salesforce em uma atividade Insert ou Update, mas a operação não utiliza o valor mapeado.
  • Causa: O campo de ID de registro do Salesforce não pode conter um mapeamento nas atividades Insert e Update. O Salesforce atribui o ID de registro automaticamente na inserção; a atividade Update identifica registros pelo ID do Salesforce existente, que não é um campo de destino mapeável.
  • Resolução: Remova o mapeamento para o campo de ID de registro da transformação. Se o objetivo é atualizar um registro específico pelo seu ID do Salesforce, verifique se os dados de origem fornecem esse ID e se a atividade Update está configurada para corresponder registros com base nele.

Atividades de escrita em massa: Primeiro registro de dados ignorado quando a origem não tem linha de cabeçalho

  • Sintoma: Uma atividade de escrita em massa do Salesforce (Bulk Insert, Bulk Upsert, Bulk Update, Bulk Delete ou Bulk Hard Delete) é executada sem erro, mas menos registros do que o esperado são gravados no Salesforce. Quando a origem contém apenas um registro de dados, nenhum registro é gravado.
  • Causa: As atividades de escrita em massa do Salesforce sempre tratam a primeira linha de dados de origem como a linha de cabeçalho de coluna. Esse comportamento não pode ser alterado. Se o arquivo de origem não incluir uma linha de cabeçalho dedicada, o primeiro registro de dados é consumido como cabeçalho e não é gravado no Salesforce.
  • Resolução:
    • Garanta que os dados de origem incluam uma linha de cabeçalho como primeira linha. Os valores do cabeçalho devem corresponder aos nomes de coluna definidos no mapeamento de campos da atividade.
    • Verifique se as linhas de dados começam na segunda linha, imediatamente após o cabeçalho.

Etapas de operação de atividade em massa aparecem como "Incompleto" sem dados de entrada ou saída

  • Sintoma: Ao visualizar um log de operação que inclui uma atividade em massa do Salesforce (Bulk Insert, Bulk Upsert, Bulk Update, Bulk Delete ou Bulk Hard Delete), a entrada de etapa de operação da atividade em massa mostra um status de Incompleto e não exibe dados de entrada ou saída, mesmo quando a operação foi concluída com sucesso e registros foram processados.
  • Causa: As atividades em massa do Salesforce não geram dados de entrada e saída de componente no log de operação. O status Incompleto na etapa de atividade e a ausência de dados de entrada e saída são comportamentos esperados para todas as atividades em massa, independentemente de o processamento ter sido bem-sucedido.
  • Resolução:
    • Para determinar se registros foram processados e se ocorreram erros, verifique as entradas de texto no log de operação para mensagens de erro ou confirmação de processamento bem-sucedido.
    • Para agentes privados, também é possível baixar resultados detalhados por registro: no Management Console, acesse a página Runtime, selecione a execução, abra a aba Activity Logs e baixe o arquivo de resultados.

Atividades em massa falham quando acionadas por uma solicitação de API ou SOAP

  • Sintoma: Uma atividade em massa do Salesforce (Bulk Query, Bulk Update, Bulk Insert, Bulk Upsert, Bulk Delete ou Bulk Hard Delete) falha imediatamente na inicialização com:

    Failed to initialize the operation: Failed to get the operation with OperationID = [ID].
    A database exception occurred. The reported error was:
    ERROR: null value in column "organization_id" of relation "bulkloadinstancetab" violates not-null constraint
    

    A mesma atividade em massa é executada sem problemas quando acionada independentemente ou por outros meios.

  • Possível causa: Operações acionadas por uma solicitação de API ou SOAP (como um fluxo de mensagem de saída do Salesforce) não oferecem suporte a atividades em massa do Salesforce. Neste contexto, o ID da organização não está disponível para o subsistema de carregamento em massa, causando a falha de restrição do banco de dados na inicialização.

  • Resolução: Substitua a atividade em massa pela atividade padrão equivalente do Salesforce em operações que fazem parte de uma cadeia acionada por API ou SOAP. Por exemplo, substitua uma Bulk Query por uma atividade padrão de Query ou uma Bulk Update por uma atividade padrão de Update. As atividades padrão funcionam corretamente neste contexto.