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:
- Vá no atalho do Smartclient, clique com o botão direito e depois em Propriedades
- 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
- Feito isso, abra o Protheus, e faça o login
- 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
- Agora pelo Protheus, abra a rotina que esta acontecendo o problema que você deseja rastrear, nesse exemplo vamos abrir a FATA900 (Dashboard)
- Feito isso, volte no navegador e dê um F5 na página, note que será exibido a nova opção
- Clique na opção (alguns navegadores podem não abrir, tente talvez o Google Chrome ou o Edge)
- 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
- No Protheus, clique em algum botão da tela, para poder atualizar o navegador, abaixo um print da tela Network no navegador
- 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
- 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
- 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
Bom pessoal, por hoje é só.
Abraços e até a próxima.
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.
Salvou muito! Muito obrigado.
Bom dia Gabriel, tudo joia?
Opa, nós que agradecemos pelo feedback.
Tenha uma ótima e abençoada quinta feira.
Um grande abraço.