Conectar o SAP Business One: receber pedidos e clientes, consultar estoque
Preencha a URL do Service Layer sem o sufixo /b1s/v2, a CompanyDB e um usuário e senha do B1, depois teste, mapeie e ative: entram pedidos e clientes e o estoque pode ser consultado.
O conector do SAP Business One faz login no seu Service Layer do B1 com um login por sessão, traz pedidos e clientes para o sistema e pode consultar o estoque no SAP Business One. O estoque ainda não pode ser enviado de volta ao SAP Business One por aqui, então use esta conexão para trazer pedidos e clientes e para consultar o estoque. Uma conexão aponta para uma CompanyDB.
Pré-requisitos#
- Um sistema SAP Business One com o Service Layer disponível, e você conhece o endereço dele, por exemplo https://b1server:50000.
- O nome exato do banco de dados da empresa ao qual você quer se conectar, a CompanyDB, por exemplo SBODemoUS.
- Um usuário do B1 nessa CompanyDB, com permissão de acesso à API, e a senha dele.
- Não há uma chave de desenvolvedor separada para solicitar: as credenciais são a própria conta de usuário do B1.
Obter credenciais#
- Peça ao seu administrador do SAP Business One o endereço do Service Layer. Ele tem o formato https://b1server:50000, apenas host e porta. Não adicione o sufixo /b1s/v2: o sistema adiciona essa parte sozinho ao chamar o Service Layer.
- Confirme a CompanyDB com o mesmo administrador: é o nome do banco de dados da empresa usado no Login do Service Layer, por exemplo SBODemoUS.
- Obtenha um nome de usuário e uma senha do B1 para essa CompanyDB, por exemplo o usuário manager. O usuário precisa ter permissão de acesso à API; caso contrário, o login e as leituras seguintes não funcionarão.
Preencher no Integration#
- Abra Integration → Marketplace → SAP Business One → Nova conexão.
- base_url, obrigatório, Service Layer URL: cole o endereço do Service Layer, por exemplo https://b1server:50000. Preencha no campo base_url, apenas até o host e a porta, sem o sufixo /b1s/v2.
- company_db, obrigatório, CompanyDB: preencha o nome do banco de dados da empresa, por exemplo SBODemoUS. Preencha no campo company_db, exatamente como o administrador informou.
- username, obrigatório, Username: preencha o nome de usuário do B1 dessa CompanyDB, por exemplo manager. Preencha no campo username.
- password, obrigatório, Password: preencha a senha desse usuário do B1. Preencha no campo password; é um campo de senha, então o que você digita fica mascarado e não é exibido de volta no formulário.
Testar a conexão#
Clique em Testar a conexão. O teste primeiro verifica os quatro campos deste lado: uma company_db vazia retorna MISSING_CONFIG, e um username ou password vazio retorna MISSING_CREDENTIALS. Depois ele faz login de verdade: envia CompanyDB, UserName e Password ao Login do Service Layer e pega o SessionId da resposta, e em seguida lê um pedido com essa sessão, Orders com $top=1 e $select=DocEntry, para provar que os documentos podem ser lidos, não apenas que o login funciona.
É um login por sessão, então não há nenhum token para renovar manualmente. Se uma leitura posterior receber um 401, o sistema faz login mais uma vez sozinho e tenta novamente. O teste desiste após 12 segundos, então um tempo limite esgotado geralmente significa que o endereço do Service Layer não pode ser alcançado ou não responde a tempo: verifique primeiro o endereço e teste novamente.
Mapping / escolher modelo#
Escolha o modelo do SAP Business One para os pedidos recebidos, para que cada pedido do B1 chegue como um pedido padrão. Antes de ativar, abra a prévia com um pedido real e confira se o documento, suas linhas e suas quantidades coincidem com o que está no SAP Business One. Os clientes trazidos do B1 e as consultas de estoque usam os valores como vêm do SAP Business One, então mantenha os nomes e códigos no B1 consistentes com os produtos que você usa aqui.
Ativar#
Após ativar, o Integration traz novos pedidos e clientes do SAP Business One na frequência que você definir, e o estoque do SAP Business One pode ser consultado por aqui. O estoque ainda não pode ser enviado de volta ao SAP Business One por aqui, então planeje qualquer retorno de estoque como uma etapa separada dentro do próprio SAP Business One. Acompanhe os primeiros pedidos recebidos em Runs / Logs antes de confiar sem supervisão.
Perguntas frequentes#
O teste falha com 401 (INVALID_CREDENTIALS)
O Service Layer respondeu ao Login com 401, o que significa que a CompanyDB, o nome de usuário ou a senha não é válido: pelo menos um dos três não corresponde ao que o SAP Business One tem para esse banco de dados.
Verifique os três valores um por um: confirme que company_db é a CompanyDB exata que o administrador informou, e que username e password pertencem a essa mesma CompanyDB, depois digite a senha novamente e teste de novo.
O teste retorna MISSING_CONFIG ou MISSING_CREDENTIALS
Um campo obrigatório está vazio e o teste para antes mesmo de tentar fazer login. MISSING_CONFIG significa que company_db está vazia, e MISSING_CREDENTIALS significa que username ou password está vazio.
Preencha os quatro campos obrigatórios, base_url, company_db, username e password, salve a conexão e teste novamente.
O login falha quando a URL termina em /b1s/v2
A base_url que você colou é o endereço completo do Service Layer incluindo a parte /b1s/v2. O sistema adiciona essa parte sozinho, então, com ela no campo, o endereço a contém duas vezes e a chamada de Login vai para o caminho errado.
Encurte a base_url apenas para o host e a porta, por exemplo https://b1server:50000, salve e teste novamente.
O teste falha e nenhuma sessão é retornada (AUTH_FAILED)
A chamada de Login voltou sem um SessionId, então nenhuma sessão B1SESSION foi criada e a leitura de pedidos que segue o login não pode ser executada. A etapa que travou é o próprio login.
Primeiro verifique se a base_url é o endereço raiz do Service Layer, apenas até o host e a porta, sem nenhum caminho extra. Depois peça ao seu administrador do SAP Business One que confirme que o Service Layer responde a um Login para essa CompanyDB e esse usuário, e teste novamente após a confirmação.