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:


Exemplo de configuração Protheus REST:


  1. Analisando um exemplo de REST no Appserver.ini:

    ;REST====================================================================
    [HTTPJOB]
    MAIN=HTTP_START
    ENVIRONMENT=environment

    [HTTPV11]
    Enable=1
    Sockets=HTTPREST
    AddressFamily=1
    TimeOut=120
    CORSEenable=1
    AllowOrigin=*

    [HTTPREST]
    Port=8404
    URIs=HTTPURI
    CORSEenable=1
    AllowOrigin=*
    SECURITY=1

    [HTTPURI]
    URL=/rest
    Instances=1,10
    CORSEnable=1
    AllowOrigin=*
    PrepareIn=01  //Grupo de Empresa
    Stateless=1
    ;FIM REST====================================================================

    [ONSTART]
    jobs=HTTPJOB
    RefreshRate=120



  2. 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/


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/




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