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 para o conector Salesforce. Também pode se aplicar aos conectores do Salesforce Service Cloud e ServiceMax.
Todas as entradas de solução de problemas nesta página
-
- Upsert falha para alguns registros: ID externo duplicado
- Atividade de Inserir ou Atualizar: O campo de ID do registro não pode ser mapeado
- Atividades de gravação em massa: O primeiro registro de dados é ignorado quando a origem não tem linha de cabeçalho
- Etapas de operação de atividades em massa aparecem como "Incompleto" sem dados de entrada ou saída
- Atividades em massa falham quando acionadas por uma solicitação de API ou SOAP
Testes e registro
Se você encontrar problemas com o conector Salesforce, as seguintes etapas de solução de problemas são recomendadas:
-
Certifique-se de que a conexão Salesforce seja bem-sucedida usando o botão Testar na tela de configuração. Se a conexão não for bem-sucedida, o erro retornado pode fornecer uma indicação do problema.
-
Verifique os registros de operações para qualquer informação registrada durante a execução da operação.
-
Ative o registro de depuração da operação (para agentes em nuvem ou para agentes privados) para gerar arquivos de log e dados adicionais.
-
Se estiver usando agentes privados, você pode verificar os registros do agente para mais informações.
-
Para considerações adicionais de solução de problemas, consulte Solução de problemas de operação.
Limites de registros e particionamento
Operações falham devido aos limites de registro da API do 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 no máximo 200 registros por chamada. Quando mais registros são enviados em uma única chamada, o Salesforce rejeita o excesso. Isso pode acontecer quando o particionamento não está habilitado, ou quando está habilitado mas não é respeitado porque a origem é um conector baseado no Connector SDK, como o HTTP v2. O particionamento não é suportado em origens baseadas em SDK, então todos os registros são enviados em uma única chamada, independentemente do tamanho de parte configurado (veja Chunking não respeitado quando a fonte é um conector baseado em SDK).
-
Resolução:
- Habilite o particionamento na operação e defina o tamanho da parte para 200 ou menos. Para instruções, consulte Habilitar Chunking.
- Confirme se o tamanho da parte é 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 continuar sendo excedido mesmo com um tamanho de parte correto, contate o suporte da Jitterbit.
- Para atividades em massa do Salesforce, aumente o tamanho padrão da parte de 200 para um valor maior, como 10.000, já que as atividades em massa são projetadas para lidar com grandes volumes de registros.
O particionamento divide os dados durante a transformação, e não na recuperação. Quando a origem é uma atividade do Salesforce, cada parte é gravada em um arquivo temporário e os arquivos são combinados no destino final depois que todas as partes são processadas. Quando o destino é uma atividade do Salesforce, cada parte de origem produz uma parte de destino, com a transformação aplicada separadamente a cada uma, e as partes de destino resultantes são então combinadas. Para mais detalhes, consulte Informações detalhadas sobre chunking.
Erros de autenticação
A 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 conecta mas falha nas operações com um erro de autenticação.
- Causa: Esses conectores compartilham a mesma base de código e autenticam em uma organização do Salesforce. A autenticação básica requer uma conta do Salesforce cujo conjunto de permissões atribuído não inclua 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á selecionada. Os tipos de login de integração do sistema estão isentos da exigência de MFA do Salesforce. Para detalhes, consulte a documentação do Salesforce FAQ sobre Autenticação Multifator do Salesforce.
- Se não for possível remover a MFA do usuário de integração, altere a conexão para usar autenticação OAuth 2.0 de 2 pernas.
Note
O uso de OAuth 2.0 de 2 pernas requer a versão 11.59 ou posterior do agente. Em agentes 12.x, requer a versão 12.3 ou posterior para o conector Salesforce, e 12.4 ou posterior para os conectores Salesforce Service Cloud e ServiceMax.
Incompatibilidade do Nome Alternativo do Assunto (SAN) do certificado
-
Sintoma: Uma conexão do Salesforce com um sandbox ou uma organização com Domínios Aprimorados habilitados falha com:
Certificate for <url> doesn't match any of the subject alternative names -
Possíveis causas:
- O certificado não inclui a URL do MyDomain ou do sandbox do Salesforce em seus Nomes Alternativos do Assunto.
- A caixa de seleção Sandbox nas configurações de conexão do Salesforce não está corretamente marcada.
-
Resolução:
- Inspecione as entradas SAN do certificado usando o OpenSSL:
openssl x509 -in cert.crt -text -noout. Confirme se a seção Nome Alternativo do Assunto inclui a URL do seu MyDomain do Salesforce. - Nas configurações de conexão do Salesforce no Studio, verifique se a caixa de seleção Sandbox está definida corretamente para a sua organização de destino.
- Se a URL do Salesforce estiver ausente dos SANs, gere novamente o certificado para incluir o domínio específico.
- Se a mesma conexão for bem-sucedida em um grupo de agentes de nuvem, mas falhar em um agente privado, a causa pode ser, em vez disso, uma extensão SNI ausente no handshake TLS do agente. Consulte A conexão com o sandbox do Salesforce falha devido a incompatibilidade de certificado.
- Inspecione as entradas SAN do certificado usando o OpenSSL:
Erros de configuração de atividade
O 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 a última vez que a atividade foi configurada e não é atualizado automaticamente.
- Resolução: Abra a configuração da 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 Concluído para salvar a configuração atualizada.
O Automap não mapeia campos quando uma atividade do Salesforce é o destino da transformação
- Sintoma: Quando uma atividade do Salesforce (como Inserir ou Upsert) é usada como o destino de uma transformação, usar o Automap não mapeia nenhum campo.
- Causa: O esquema da atividade do Salesforce inclui um nó raiz extra acima dos campos do objeto quando o esquema é espelhado. Esse nó raiz extra impede que o Automap corresponda os campos de origem aos campos de destino corretos.
- Resolução:
- No canvas de transformação, localize o nó do objeto de nível superior no lado de destino (por exemplo, Account).
- Arraste o nó de origem correspondente para alinhá-lo manualmente com ele.
- Com os nós alinhados, execute o Automap novamente. Os campos abaixo do nó serão mapeados automaticamente.
Atividade de Consulta: A consulta pai-filho gera um esquema hierárquico
- Sintoma: Uma atividade de Consulta do Salesforce que usa uma declaração SOQL pai-filho gera um esquema de resposta hierárquico. Quando esse esquema é espelhado no lado de destino de uma transformação, a saída é um XML hierárquico em vez de uma estrutura plana.
- Causa: O esquema hierárquico reflete o relacionamento pai-filho da consulta. Espelhar o esquema de origem no destino da transformação preserva essa hierarquia na saída.
- Resolução:
- Para produzir uma saída plana, defina um esquema plano no lado de destino da transformação em vez de espelhar o esquema de origem.
- Se os resultados da consulta forem acessados em um script, os dados já estão disponíveis como uma estrutura plana, sem necessidade de configuração adicional.
Erros de gravação 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: Vários registros de origem compartilham o mesmo valor de ID externo. Quando o ID externo não é exclusivo, 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 Registros de Atividade) para identificar quais registros falharam.
- Garanta que o campo usado como ID externo tenha um valor exclusivo para cada registro. Consulte Criar um ID externo do Salesforce para Jitterbit.
Atividade de Inserir ou Atualizar: O campo de ID do 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 Inserir ou Atualizar, mas a operação não usa o valor mapeado.
- Causa: O campo de ID de registro do Salesforce não pode conter um mapeamento nas atividades Inserir e Atualizar. O Salesforce atribui o ID do registro automaticamente na inserção; a atividade Atualizar identifica registros pelo seu ID existente do Salesforce, que não é um campo de destino mapeável.
- Resolução: Remova o mapeamento para o campo de ID do registro na transformação. Se o objetivo for atualizar um registro específico pelo seu ID do Salesforce, verifique se os dados de origem fornecem esse ID e se a atividade Atualizar está configurada para corresponder registros a partir dele.
Atividades de gravação em massa: O primeiro registro de dados é ignorado quando a origem não tem linha de cabeçalho
- Sintoma: Uma atividade de gravação 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 gravação em massa do Salesforce sempre tratam a primeira linha dos dados de origem como a linha de cabeçalho das colunas. 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 o cabeçalho e não é gravado no Salesforce.
- Resolução:
- Garanta que os dados de origem incluam uma linha de cabeçalho como a primeira linha. Os valores do cabeçalho devem corresponder aos nomes das colunas 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 atividades 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 da etapa de operação da atividade em massa mostra um status Incompleto e não exibe dados de entrada ou saída, mesmo quando a operação é concluída com sucesso e os registros são processados.
- Causa: As atividades em massa do Salesforce não geram dados de entrada e saída de componente no log da operação. O status Incompleto na etapa da atividade e a ausência de dados de entrada e saída são comportamentos esperados para todas as atividades em massa, independentemente do sucesso do processamento.
- Resolução:
- Para determinar se os registros foram processados e se ocorreram erros, verifique as entradas de texto no log da operação para mensagens de erro ou confirmação de processamento bem-sucedido.
- Para agentes privados, você também pode baixar os resultados detalhados por registro: no Management Console, vá para a página Runtime, selecione a execução, abra a aba Registros de Atividade 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 constraintA mesma atividade em massa é executada sem problemas quando acionada de forma independente 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 suportam atividades em massa do Salesforce. Nesse contexto, o ID da organização não está disponível para o subsistema de carga 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 Consulta padrão, ou uma Bulk Update por uma atividade Atualizar padrão. As atividades padrão funcionam corretamente nesse contexto.