Como utilizar o remote debugging em aplicações com PO.UI (FWCallApp)

Hoje vamos demonstrar uma dica para descobrir possíveis problemas em uma aplicação com PO UI usando o remote debugging do Smartclient.

Caso você ativou o app_environment para rodar aplicações PO UI no Protheus ( TDN ), às vezes podemos ter alguns erros como The request requires authentication. The server might return this response for a page behind a login ou Http failure response – Unauthorized, entre outros.

Pensando nisso estava conversando com o grande Alison Lemes ( LinkedIn ) que me deu uma dica de como rastrear onde pode ser o problema, usando o remote debugging.

Update Novembro de 2023: Pessoal, o Vitor Gabriel me falou que nos binários mais recentes (2310), precisa adicionar –remote-allow-origins=* na frente da porta 8888

Abaixo segue o procedimento para rastrear:

  1. Vá no atalho do Smartclient, clique com o botão direito e depois em Propriedades
  2. No caminho coloque a expressão para ativar o remote debugging e uma porta para uso, nesse exemplo vamos usar a 8888: –remote-debugging-port=8888

Configurando o atalho do Smartclient

  1. Feito isso, abra o Protheus, e faça o login

Tela após fazer o Login

  1. Após o login, já vá no navegador e acesse a máquina local com a porta configurada no item 2, por exemplo localhost:8888. Será exibido uma página com as funções em PO.UI que foram abertas

Acessando o navegador

  1. Agora pelo Protheus, abra a rotina que esta acontecendo o problema que você deseja rastrear, nesse exemplo vamos abrir a FATA900 (Dashboard)
  2. Feito isso, volte no navegador e dê um F5 na página, note que será exibido a nova opção

Verificando as opções exibidas no navegador

  1. Clique na opção (alguns navegadores podem não abrir, tente talvez o Google Chrome ou o Edge)
  2. No Navegador será exibido uma página com o resultado das consultas, no nosso caso, iremos avaliar a aba Network, nela terá as requisições que foram feitas
  3. No Protheus, clique em algum botão da tela, para poder atualizar o navegador, abaixo um print da tela Network no navegador

Acessando a aba Network

  1. Agora clique em uma das linhas que deu erro (geralmente começados com 500), feito isso, ele vai exibir como foi feito a requisição
  2. Na aba Headers, ele vai mostrar como foi feito a requisição, então como foi feito por exemplo a autorização, e quais foram os parâmetros enviados, conforme print abaixo

Verificando dados do Headers e dos Parameters

  1. E na aba Response, nós podemos analisar o retorno que veio da rotina, no nosso caso como é uma base de testes (empresa 99), a falha que deu foi que não há licenças

Verificando a mensagem no Response

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.

4 Responses

  1. João Leão disse:

    Uma outra forma de resolver é desativar a porta multiprotocolo na instância onde se faz debug, geralmente no ambiente de desenvolvimento. Com isso, a tela de login vai abrir do jeito antigo.

    • Opa, obrigado pelo adendo João.
      Só fazendo uma observação, é que esse tutorial ele foi feito para descobrir problemas que dão durante as telas (após o login), então assim, não só apenas desativar para funcionar, mas descobrir o que pode estar causando as mensagens como “The request requires authentication. The server might return this response for a page behind a login ou Http failure response – Unauthorized”
      Um grande abraço.

  2. Gabriel Torres disse:

    Salvou muito! Muito obrigado.

Deixe uma resposta

Terminal de Informação