Abrindo o Protheus por linha de comando via WebAgent

No artigo de hoje, vamos abordar em como acionar customizações via linha de comando no Protheus através do WebAgent.

Até a versão 2410, era possível acionar o smartclient.exe e executar um programa direto via linha de comando, por exemplo:

C:\TOTVS\ERP\Protheus\bin\smartclient\smartclient.exe -c=sua_conexao -e=seu_ambiente -p=u_zTstLinha -q -m -l

 

Mas a partir da versão 2410, como não tem mais o smartclient.exe, como podemos fazer? Abaixo o passo a passo (para Windows).

  1. Clique com o botão direito no atalho do WebAgent e em seguida, clique em Abrir local do Arquivo
Encontrando o local de instalação

Encontrando o local de instalação

 

  1. Nessa pasta, pegue o nome do arquivo executável, web-agent.exe conforme exemplo abaixo
Copiando o caminho

Copiando o caminho

 

  1. Agora vamos pegar o caminho de um navegador instalado, nesse caso, vamos usar o Google Chrome como exemplo, para isso, no iniciar procure pelo Chrome, depois clique com o botão direito e em Abrir local do arquivo
Repetindo o processo com o navegador

Repetindo o processo com o navegador

 

  1. Nisso, já pegamos o caminho do webagent e pegamos o caminho do navegador, agora vamos pegar o caminho do nosso Protheus, que nesse caso aqui é a URL http://127.0.0.1:8093/
  2. A estrutura do comando então vai ser:
[caminho do WebAgent] launch "[url do protheus com ambiente e programa inicial]" --browser="[caminho do navegador]" --headless

 

  1. Logo, se substituir então as partes da estrutura acima, vai ficar assim:
C:\Users\danat\AppData\Local\Programs\web-agent\web-agent.exe launch "http://127.0.0.1:8093?E=AMBTST2&P=u_zTstLinha" --browser="C:\Program Files\Google\Chrome\Application\chrome.exe" --headless

 

  1. Vamos pegar então esse comando e colar no PowerShell ou em algum Prompt de Comando do Windows
Executando o comando

Executando o comando

 

  1. Se abrirmos o console.log do appserver, e tudo deu certo, ai vai exibir uma mensagem
Exemplo do log no Console do AppServer

Exemplo do log no Console do AppServer

 

 

Obs.: Para o cenário acima, foi utilizado esse código fonte de exemplo:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} zTstLinha
Exemplo de programa executado em linha
@type user function
@author Atilio
@since 02/04/2025
/*/

User Function zTstLinha()
    Local cMensagem := "Testando 123, na data " + dToC(Date()) + " na hora " + Time()
    QOut(cMensagem)
Return

Referências:

 

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

2 Responses

  1. Muito bom artigo, inclusive chamar o web-agent assim é muito util em alguns casos.
    Só uma observação importante que eu peguei com o nosso alecrim dourado, que é o Totvs PDV, que a Totvs inclusive manda acionar o protheus exetamente assim

    [caminho do WebAgent] launch “[url do protheus com ambiente e programa inicial]” –browser=”[caminho do navegador]”

    Cada vez que aciona o web-agent assim, ele abre uma instância. Então um exemplo pratico, temos lá um Totvs PDV que é vinculado na porta de uma impressora não fiscal, a impressora só aceita 1 conexão na porta. Ai abrimos o Protheus dessa forma, acionando o web-agent, ai fecha-se o protheus e abre novamente, ele vai abrir outra instancia do web-agent e pow, o Totvs PDV vai falar que a porta está em uso, porque o outro web-agent vai estar aberto.

    Então é um cuidado que tem que ter, no Totvs PDV mesmo eu não chamo assim conforme a Totvs manda por conta desse problema. Se o usuário fechar 20 vezes o sistema e abrir 20 vezes, no final do dia ele vai ter 20 instâncias do web-agent abertas na máquina (caso ele não feche manualmente).

    • Bom dia mano Súlivan, tudo joia?

      Opa, muito obrigado pelo comentário e pelo adendo.

      Não sabia dessa sobre o PDV, obrigado pelo toque. Vou ficar atento se precisar.

      Tenha uma ótima e abençoada sexta feira.

      Um forte abraço.

Deixe uma resposta

Terminal de Informação