Para que o EAI Protheus seja capaz de receber mensagens da VTEX (para o envio o Protheus não faz o consumo do seu serviço Web, e sim do serviço do outro sistema) é necessário que seja habilitado o protocolo HTTP/REST no servidor e que as configurações de WebServices estejam ativas.
Para isto é necessário configurar o arquivo appserver.ini do servidor Protheus.
Para isso é necessário configurar o REST Padrão do Protheus. Veja mais detalhes nos links abaixo:
- Configuração do serviço REST Configuração REST SERVER - Protheus.
- Mais detalhes sobre o conceito de um serviço REST clique aqui.
- Para mais detalhes sobre serviços REST na arquitetura Protheus clique aqui.
Exemplo de configuração Protheus REST:
1 - Configuração padrão usada. Nesta configuração está sendo usado a TAG "PrepareIn" onde tem a necessidade do cliente ter licença para utilização das API, principais licenças usadas "TOTVS I e TOTVS Full":
[HTTPV11]
Enable=1
Sockets=HTTPREST
[HTTPREST]
Port=8404
URIs=HTTPURI
SECURITY=1
[HTTPURI]
URL=/rest
Instances=1,10
CORSEnable=1
AllowOrigin=*
PrepareIn=01 //Grupo de Empresa
Stateless=1
2 - Configuração com isenção da licença "TOTVS I", válido somente para integrações via mensagem EAI (Customer, Order e EAIMessage). Neste caso não é usado a TAG "PrepareIn" não tendo o consumo da licença.
[HTTPV11]
Enable=1
Sockets=HTTPREST
[HTTPREST]
Port=8404
URIs=HTTPURI
SECURITY=1
[HTTPURI]
URL=/rest
Instances=1,10
CORSEnable=1
AllowOrigin=*
3 - Caso possua outras integrações utilizando o serviço REST com API que não estão na isenção, será necessário fazer a configuração desta maneira, com duas URI para o REST, uma com a TAG "PrepareIn" e outra sem a TAG:
[HTTPV11]
Enable=1
Sockets=HTTPREST
[HTTPREST]
Port=8404
URIs=HTTPURI,HTTPURI2
SECURITY=1
[HTTPURI]
URL=/ipaas
Instances=1,10
CORSEnable=1
AllowOrigin=*
[HTTPURI2]
URL=/rest
Instances=1,10
CORSEnable=1
AllowOrigin=*
PrepareIn=01 //Grupo de Empresa
Stateless=1
Inicie o navegador de Internet e informe o endereço do servidor e da porta do serviço REST ex: http://127.0.0.1:8070
Observe a apresentação da Lista serviços REST disponíveis:
Realize o teste de uma rede externa(3G/Outra Rede fora da empresa) para saber se o acesso externo está liberado.
Deve aparecer a lista de serviços como no exemplo abaixo:
3 - Na lista de Serviço localize o serviço EAISERVICE:
Clique em "For more details" para exibir os detalhes do serviço:
4 - Nos Detalhes do serviço localize o serviço do tipo POST de nome: "standardmessage/v1/transactions"
Esse é o serviço responsável por receber as mensagens da VTEX
5 - Será necessário enviar o Endereço do Serviço Protheus para VTEX.
O endereço é formado pelo IP do servidor(IP Externo) e porta definido no serviço REST + totvseai/standardmessage/v1/transactions/
O caminho do serviço completo ficaria assim: http://127.0.0.1:8070/totvseai/standardmessage/v1/transactions/
Dica
Caso tenha definido um caminho para o serviço REST em URL o mesmo deve ser considerado no caminho do serviço.
Isso evita erros como: {"code":404,"detailedmessage":"","message":"The server can't find the requested resource."}
Ex :
[HTTPURI]
URL=/REST
então o caminho ficaria: http://127.0.0.1:8070/rest/totvseai/standardmessage/v1/transactions/
Atenção
No Protheus, cada grupo de empresas é um aplicativo diferente para o EAI. Desta maneira, cada grupo de empresas deve possuir um endereço REST diferente. Caso seja recebida uma requisição para um endereço cujo grupo de empresas é diferente do enviado, a seguinte mensagem será apresentada: O grupo de empresas do aplicativo não corresponde ao grupo de empresas deste serviço. Grupo recebido - (A). Grupo do serviço - (B) , onde A e B são respectivamente o grupo recebido na requisição e o grupo de empresas do endereço REST