Ir para o conteúdo

Conector NetSuite Avançado

Introdução

Esta página aborda dicas de solução de problemas, tutoriais e funcionalidades avançadas relacionadas às integrações do NetSuite.

Solução de Problemas e Como Tutoriais

Esta seção descreve problemas e soluções alternativas para problemas comuns enfrentados com integrações do NetSuite e fornece informações sobre alterações do NetSuite que podem afetar sua integração.

URL WSDL Específico da Conta NetSuite

Durante a configuração de um endpoint NetSuite, você deverá fornecer um URL WSDL específico da conta no campo WSDL Download URL. Esta seção mostra como obter esse URL localizando o domínio específico da conta NetSuite e, em seguida, usando o domínio específico da conta no URL WSDL.

Encontrando o Domínio Específico da Conta NetSuite

Estas etapas devem ser realizadas por um Administrador do NetSuite ou outro usuário com a permissão Configurar Empresa:

  1. Faça login na instância do NetSuite.

  2. Vá para Configuração > Empresa > Informações da empresa (ou pesquise Informações da empresa).

  3. Na página Informações da empresa, acesse a subguia URLs da empresa. O domínio específico da conta está sob o título SuiteTalk (SOAP e REST Web Services):

    anexo

Para obter mais informações, consulte URLs para domínios específicos da conta.

Construindo a URL WSDL

Depois de obter o domínio específico da conta, use-o para construir a URL WSDL:

  • https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2024_1_0/netsuite.wsdl
  • https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2023_2_0/netsuite.wsdl
  • https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2023_1_0/netsuite.wsdl
  • https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2022_2_0/netsuite.wsdl
  • https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2022_1_0/netsuite.wsdl
  • https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2021_2_0/netsuite.wsdl

Durante a configuração de um endpoint NetSuite, insira esse URL WSDL específico da conta no campo WSDL Download URL.

Informações sobre quais versões do Harmony Agente são necessárias para uso com as versões WSDL acima são fornecidas em Pré-requisitos no NetSuite Connector Endpoint página.

Alterar a Versão do WSDL

Atualizar periodicamente a versão WSDL usada pelo seu endpoint NetSuite para sempre usar uma versão totalmente suportada é uma boa prática recomendada. As etapas abaixo descrevem a melhor maneira de fazer a alteração, garantindo uma atualização perfeita.

  1. Crie um novo endpoint.

  2. Para cada operação do NetSuite, troque o endpoint antigo pelo novo.

  3. Atualize a função.

  4. Atualize as transformações.

  5. Repita as etapas 2 a 4 para cada operação do NetSuite.

Nota

Embora seja possível simplesmente editar a URL WSDL de um endpoint existente e reconfigurar as atividades existentes, esta é uma prática desencorajada. Nesse cenário, nenhum erro de validade é relatado e é possível implantar o projeto, substituindo inadvertidamente operações bem-sucedidas por aquelas que falham em tempo de execução devido a incompatibilidades de WSDL nos esquemas.

Erro do Data Center do NetSuite

Devido às alterações feitas pelo NetSuite, alguns formatos de URL WSDL que eram permitidos anteriormente não são mais aceitos, incluindo URLs WSDL genéricos e URLs específicos de data center. A Jitterbit recomenda sempre usar uma URL WSDL específica da conta.

Um endpoint NetSuite pode ter sido testado anteriormente com sucesso, mas agora falha com este erro:

Connector Error: Error getting the data center URL.

Caused by: org.jitterbit.integration.server.engine.connector.exception.NetSuiteWebServiceRuntimeException: FaultString:

In this account, you must use account-specific domains with this SOAP web services endpoint. You can use the SOAP getDataCenterUrls operation to obtain the correct domain. Or, go to Setup > Company > Company Information in the NetSuite UI. Your domains are listed on the Company URLs tab.

Em algumas circunstâncias, este erro pode aparecer:

You are not requesting the correct data center for your company.

Esses erros podem resultar do uso de um URL de download WSDL incorreto na configuração de uma conexão NetSuite. Devido às alterações feitas pelo NetSuite, alguns formatos de URL WSDL que eram permitidos anteriormente não são mais aceitos, incluindo URLs WSDL genéricos e URLs específicos de data center. Por exemplo:

  • URL WSDL genérico: https://webservices.netsuite.com/wsdl/v2024_1_0/netsuite.wsdl
  • URL WSDL específico do data center: https://webservices.na3.netsuite.com/wsdl/v2024_1_0/netsuite.wsdl

Para resolver, altere a URL do WSDL para usar um domínio específico da conta:

  • URL WSDL específico da conta: https://abcdef123456.suitetalk.api.netsuite.com/wsdl/v2024_1_0/netsuite.wsdl

Para obter instruções sobre como encontrar o domínio específico da conta do NetSuite e, em seguida, usar o domínio específico da conta no URL WSDL, consulte URL WSDL específico da conta do NetSuite.

Autenticação de Dois Fatores NetSuite (tfa Ou 2fa)

Aqueles que usam autenticação de dois fatores NetSuite (TFA ou 2FA) não devem usar o tipo de autenticação de logon único (SSO) ao configurar seu endpoint NetSuite em Jitterbit. Fazer isso pode causar falha no endpoint do NetSuite. Em vez disso, é recomendado que esses usuários habilitem a autenticação baseada em token (TBA) em sua conta NetSuite e configurem seu endpoint NetSuite no Jitterbit de acordo.

Nota

O tipo de autenticação SSO está sendo descontinuado pelo NetSuite e agora é recomendado que todos os usuários usem o TBA.

URL WSDL do NetSuite Sandbox

A partir de janeiro de 2018, o NetSuite usa o mesmo URL para o domínio de produção e de sandbox. Para Design Studio e Agente versões 9.2 e superiores, nenhuma ação será necessária para usuários do Jitterbit com endpoints NetSuite existentes configurados para o domínio sandbox, desde que o sandbox tenha sido atualizado desde essa alteração.

O número da conta NetSuite agora é usado para determinar se a conta está em produção ou em sandbox. Por exemplo, o ID da conta pode ser anexado com _SB1, _SB2, etc. Como o NetSuite não usa mais um URL de sandbox separado e o sandbox agora é indicado pelo ID da conta, a caixa de seleção Sandbox foi removida nas versões 9.2 e superiores do Design Studio.

Se o seu sandbox do NetSuite não tiver sido atualizado desde que essas alterações do NetSuite foram implementadas, talvez seja necessário usar um URL WSDL específico do sandbox.

Dica

Mais informações podem ser encontradas na documentação do NetSuite Sobre contas Sandbox no domínio NetSuite.

Erro de Permissões para TBA

Se você receber um INSUFFICIENT_PERMISSION erro ao executar operações usando um endpoint NetSuite configurado com autenticação baseada em token (TBA), talvez seja necessário usar uma papel diferente para gerar os tokens de acesso ou adicionar permissões à papel que você está usando atualmente. Nesse caso, o teste do endpoint parece bem-sucedido, mas durante o tempo de execução da operação ocorre a exceção.

Para resolver, ao gerar tokens de acesso, certifique-se de gerá-los em uma papel de acesso total ou de administrador ou certifique-se de que as permissões apropriadas sejam permitidas para a papel.

Dica

Instruções detalhadas estão disponíveis na documentação do NetSuite Introdução à autenticação baseada em token.

Erro Inesperado para TBA

Se você receber um UNEXPECTED_ERROR erro ao testar a conexão com um endpoint NetSuite configurado com autenticação baseada em token (TBA), é recomendável verificar se você está usando o URL WSDL correto. O erro conterá o seguinte texto:

FaultString: An unexpected error has occurred. Technical Support has been alerted to this problem.

Este erro pode ocorrer por vários motivos; entretanto, sabe-se que esse erro resulta de uma URL WSDL incorreta ao usar Agentes que são versão 9.2 a 9,5. Na versão Agentes 9.6 e superiores, o texto da mensagem de erro descreve o problema com mais precisão.

Atualização de Compatibilidade NetSuite TLS

Informações sobre o uso da criptografia TLS 1.2 são fornecidas em NetSuite TLS Compatibility Upgrade.

Governança de Simultaneidade do NetSuite

Em 18 de agosto de 2017, a Netsuite introduziu "Governança de simultaneidade" em sua versão 2017.2. Se você usa serviços web e/ou RESTlets, saiba mais sobre como isso pode afetar sua integração em NetSuite 2017.2 Concurrency Governance.

Limitações de Pesquisa Salva do NetSuite

Ao usar a pesquisa salva do NetSuite, se você estiver tentando pesquisar em objetos que possuem mais de 1.000 pesquisas salvas, pode aparecer no Jitterbit Studio como se não houvesse pesquisas salvas disponíveis no objeto. Nesse caso, o menu suspenso de pesquisas salvas no Jitterbit Studio não será preenchido com nenhuma pesquisa salva. Isso se deve a um limite de 1.000 registros imposto NetSuite em solicitações de API.

Confirmação de Limitação

Para confirmar se o problema está na limitação do NetSuite, você pode verificar o registro de uso de serviços da Web em sua instância do NetSuite. Para um erro deste tipo, o log terá uma entrada semelhante a esta:

<platformCore:code>MAX_RCRDS_EXCEEDED</platformCore:code>
<platformCore:message>The maximum number ( 1000 ) of records allowed for a READ operation has been exceeded.</platformCore:message>

Solução Alternativa para Limitação

Como solução alternativa, é recomendável limpar as pesquisas salvas do NetSuite que não estão mais sendo usadas para reduzir o número de pesquisas salvas para menos de 1.000. Depois que o número de pesquisas for reduzido, você poderá selecionar uma pesquisa salva no menu suspenso do Jitterbit Studio.

Uma alternativa para reduzir o número de buscas salvas é executar a busca salva via SOAP, referenciando a busca salva por ID. Observe que esta alternativa não faz uso do Conector NetSuite e pode resultar em problemas ao migrar ambientes.

Funcionalidade Avançada

Esta seção fornece informações sobre os recursos do Jitterbit que permitem que você aproveite ao máximo sua integração com o NetSuite.

Usando Funções do NetSuite

As funções específicas do NetSuite disponíveis no Formula Builder em Funções > Funções do Conector estão listadas abaixo. Para obter mais informações sobre como usar essas funções, consulte Funções do conector.

  • NetSuiteGetSelectValue: Recupera os valores da lista de opções para um campo do NetSuite.
  • NetSuiteGetServerTime: Obtém a hora do servidor do NetSuite.
  • NetSuiteLogin: Obtém a sessão do NetSuite.

Usando a Configuração Assíncrona

Por padrão, as chamadas de API para NetSuite são executadas de forma síncrona; ou seja, depois que uma solicitação é feita, a conexão é mantida aberta. Se algumas solicitações atingirem o tempo limite durante uma pesquisa síncrona, talvez você queira ativar a configuração assíncrona. Com esta configuração, após o envio da solicitação, o Jitterbit fará uma pesquisa periódica para ver se a solicitação foi concluída. Isto é mais útil com grandes quantidades de dados.

Para ativar a opção assíncrona, defina $jitterbit.netsuite.async=true em um script que está, por exemplo, no início da operação ou dentro da cadeia de operação (veja Criando um Script). Para obter informações adicionais, consulte a documentação do NetSuite sobre Processamento de solicitação síncrona versus assíncrona.

Passando Valores NULL para Campos Personalizados

Uma limitação da API NetSuite é que você não pode passar valores NULL ou em branco (string vazia) para campos personalizados no NetSuite.

De acordo com a documentação do NetSuite em CustomFieldList, os campos personalizados podem ser definidos como NULL enviando o campo no NetSuite nullFieldList.

No Design Studio, você não verá nullFieldList como um campo ou opção.

Em vez disso, você pode passar valores NULL ou em branco (string vazia) para campos personalizados mapeando o campo de origem para ambos os campos externalId e name campos de um campo de destino.

Usando Segmentos Personalizados do NetSuite

Segmentos personalizados em objetos NetSuite padrão e personalizados são suportados pelo NetSuite Connector Create, Atualizar, ObterLista, Inserir e Pesquisar atividades usando um NetSuite Endpoint com um NetSuite WSDL versão 2016.2 ou superior. Você deve estar usando a versão 9.4 ou superior do Design Studio e dos Agentes para usar esse recurso.

Ao configurar qualquer um dos tipos de atividade listados acima, você verá cada segmento personalizado exibido na resposta do NetSuite ou na estrutura de solicitação:

anexo

Depois que a atividade for usada em uma transformação, você poderá mapear de ou para qualquer um desses segmentos personalizados, assim como faz para outros campos. Os segmentos personalizados estão localizados em um nó chamado customFieldList que está presente em seu respectivo nó de objeto.

anexo

Nota

Se seus segmentos personalizados não estiverem sendo exibidos, verifique se a conta de usuário do NetSuite usada no endpoint do NetSuite tem as permissões apropriadas para interagir com o segmento personalizado e o objeto ao qual está associado.

Limitação

Em uma Pesquisa Avançada do NetSuite, segmentos personalizados do tipo List/Record conforme definido no NetSuite não são suportados. No entanto, observe que o tipo Seleção múltipla é suportado em uma Pesquisa avançada do NetSuite. Para determinar que tipo está sendo usado, verifique o Tipo definido no NetSuite em seu Segmento Personalizado:

anexo

Esta limitação não se aplica a outros tipos de atividades do NetSuite; ou seja, os tipos List/Record e Multiple Select são suportados em Create, Atualizar, ObterLista, Inserir, Pesquisa Básica, Pesquisa expandida e Pesquisa salva Atividades.

Usando a Pesquisa de Transações do NetSuite por Status

Ao pesquisar transações NetSuite com base em um status específico, você precisará especificar o valor correto do filtro de pesquisa que corresponde ao status desejado. Você pode determinar o valor do filtro de pesquisa correspondente conforme fornecido na tabela abaixo.

Por exemplo, se você quiser que os critérios de pesquisa limitem os registros de Cumprimento de Item apenas àqueles em que Status do Envio = Enviado, em vez de usar a enumeração para Enviado (_enviado), você realmente precisará usar o valor a de ItemShip:C como fornecido na tabela abaixo. Traduções semelhantes se aplicam a uma variedade de objetos NetSuite.

anexo

Status Filtro de pesquisa
Venda à vista:Pagamento não aprovado Venda a dinheiro:A
Venda à vista:Não depositado Venda a dinheiro:B
Venda à vista:Depositado Venda a dinheiro:C
Verifique:Anulado Verifique:V
Verifique:Pagamento de contas on-line com aprovação contábil pendente Verifique:Z
Comissão:Pagamento Pendente Comissão:A
Comissão:Pago em excesso Comissão:O
Comissão:Aguarda aprovação contabilística Comissão:P
Comissão:Rejeitado pela Contabilidade Comissão:R
Comissão:Pago integralmente Comissão:X
Cobrança de extrato:Aberto CustChrg:A
Cobrança de extrato:Pago integralmente CustChrg:B
Nota de crédito:Aberto CustCred:A
Nota de crédito:totalmente aplicada CustoCrédito:B
Depósito do cliente:Não depositado CustDep:A
Depósito do cliente:Depositado CustoDep:B
Depósito do cliente: Totalmente aplicado CustDep:C
Fatura:Aberta ClienteInvc:A
Fatura: Paga integralmente ClienteInvc:B
Pagamento:Pagamento não aprovado CustPymt:A
Pagamento:Não Depositado CustPymt:B
Pagamento:Depositado CustPymt:C
Reembolso do cliente:Anulado Cliente:V
Citação:Aberto Estimativa:A
Citação:Processado Estimativa:B
Citação:Fechado Estimativa:C
Citação:Anulado Estimativa:V
Citação:Expirado Estimativa:X
Relatório de despesas:Em andamento ExpRepto:A
Relatório de despesas:Aprovação pendente do supervisor ExpRepto:B
Relatório de despesas:Aprovação contábil pendente ExpRepto:C
Relatório de Despesas:Rejeitado pelo Supervisor ExpRepto:D
Relatório de Despesas:Rejeitado pela Contabilidade ExpRepto:E
Relatório de Despesas:Aprovado pela Contabilidade ExpRepto:F
Relatório de despesas:Aprovado (substituído) pela contabilidade ExpRepto:G
Relatório de despesas:Rejeitado (substituído) pela contabilidade ExpRept:H
Relatório de despesas:Pago integralmente ExpRepto:I
Contagem de estoque:Aberto ContagemInv:A
Contagem de inventário:Iniciado ContagemInv:B
Contagem de inventário:Aprovação concluída/pendente ContagemInv:C
Contagem de inventário:Aprovado ContagemInv:D
Cumprimento do item:Escolhido ItemEnvio:A
Cumprimento do item: Embalado Envio de item:B
Cumprimento do item:Enviado ItemEnvio:C
Diário: Aprovação Pendente Diário:A
Diário:Aprovado para publicação Diário:B
Verificação de responsabilidade da folha de pagamento: anulada LiabPymt:V
Oportunidade:Em andamento Oportunidade:A
Oportunidade:Estimativa Emitida Oportunidade:B
Oportunidade:Fechada – Ganhou Oportunidade:C
Oportunidade:Fechada – Perdida Oportunidade:D
Contracheque:Indefinido Contracheque:A
Contracheque:Cálculo de Imposto Pendente Contracheque:C
Contracheque:Compromisso Pendente Contracheque:D
Contracheque:Comprometido Contracheque:F
Contracheque:Visualizar Contracheque:P
Contracheque:Revertido Contracheque:R
Ordem de compra:Aprovação pendente do supervisor Pedido de compra:A
Pedido de compra:Recebimento pendente Pedido de compra:B
Pedido de compra:Rejeitado pelo Supervisor Ordem de compra:C
Ordem de compra:Recebida parcialmente Pedido de compra:D
Pedido de Compra:Faturamento Pendente/Recebido Parcialmente Pedido de compra:E
Pedido de Compra:Fatura Pendente Ordem de compra:F
Pedido de compra:totalmente faturado Ordem de compra:G
Ordem de compra:Fechada Ordem de compra:H
Autorização de devolução:Aprovação pendente RtnAuth:A
Autorização de Devolução:Recebimento Pendente RtnAuth:B
Autorização de devolução:Cancelada RtnAuth:C
Autorização de devolução:Recebido parcialmente RtnAuth:D
Autorização de devolução:Reembolso pendente/Recebido parcialmente RtnAuth:E
Autorização de devolução:Reembolso pendente RtnAuth:F
Autorização de devolução:Reembolsado RtnAuth:G
Autorização de Devolução:Fechado RtnAuth:H
Pedido de venda:Aprovação pendente Ordem de vendas:A
Pedido de venda: Cumprimento pendente Ordem de vendas:B
Pedido de venda:Cancelado Ordem de vendas:C
Pedido de venda:parcialmente atendido Ordem de vendas:D
Pedido de venda:Faturamento Pendente/Atendido Parcialmente Ordem de vendas:E
Pedido de Venda:Faturamento Pendente Ordem de vendas:F
Pedido de Venda:Faturado Ordem de vendas:G
Pedido de venda:Fechado Ordem de vendas:H
Cheque de Responsabilidade Fiscal: Anulado FiscalLib:V
Pagamento de imposto sobre vendas: anulado ImpostoPim:V
Pagamento de imposto sobre vendas: Pagamento de contas on-line com aprovação contábil pendente ImpostoPim:Z
Tegata a pagar:Endossado TegPybl:E
Tegata a Pagar:Emitido TegPybl:EU
Tegata Pagável:Pago TegPybl:P
Recebíveis Tegata:Cobrados TegRcvbl:C
Recebíveis Tegata:Descontados TegRcvbl:D
Recebíveis Tegata: Aprovado TegRcvbl:E
Tegata Recebíveis:Holding TegRcvbl:H
Ordem de transferência:Aprovação pendente TrnfrOrd:A
Ordem de transferência: Cumprimento pendente Ordem de transferência:B
Ordem de transferência:Rejeitada Ordem de transferência:C
Ordem de transferência:parcialmente cumprida Ordem de transferência:D
Ordem de Transferência:Recebimento Pendente/Cumprido Parcialmente Ordem de transferência:E
Ordem de Transferência:Recebimento Pendente TrnfrOrd:F
Ordem de transferência:Recebida TrnfrOrd:G
Ordem de Transferência:Fechada Ordem de transferência:H
Autorização de devolução do fornecedor:Aprovação pendente VendAuth:A
Autorização de devolução do fornecedor: Devolução pendente VendAuth:B
Autorização de devolução do fornecedor:Cancelada VendAuth:C
Autorização de devolução do fornecedor:Devolvido parcialmente VendAuth:D
Autorização de devolução do fornecedor:Crédito pendente/Devolvido parcialmente VendAuth:E
Autorização de devolução do fornecedor:Crédito pendente VendAuth:F
Autorização de devolução do fornecedor:Crédito VendAuth:G
Autorização de devolução do fornecedor:Fechado VendAuth:H
Projeto de lei:Aberto Conta de Vendedor:A
Fatura: Pago integralmente Conta de Vendedor:B
Projeto de lei:Cancelado Conta de Vendedor:C
Projeto de lei: Aprovação pendente Conta de Vendedor:D
Projeto de lei:Rejeitado Conta de Vendedor:E
Pagamento em dinheiro:Anulado VendPymt:V
Pagamento em dinheiro:Pagamento de contas on-line com aprovação contábil pendente VendPymt:Z
Ordem de serviço:Construção pendente Ordem de Trabalho:B
Ordem de serviço:Cancelada Ordem de Trabalho:C
Ordem de serviço:Em processo Ordem de Trabalho:D
Ordem de Serviço:Construído Ordem de Trabalho:G
Ordem de Serviço:Fechada Ordem de Trabalho:H

Fonte: http://blog.prolecto.com/2013/08/30/netsuite-searchfilter-transaction-internal-status-list/

Padrões de Design

Os seguintes padrões de design podem ser úteis para integrações NetSuite: