Tempo aproximado para leitura: 05:00:00 min
Dúvida
Como depurar um serviços Jobs/ WebService no binário Harpia?
Ambiente
Cross Segmento - TOTVS BackOffice (Linha Protheus) – ADVPL – A partir da versão 12.1.33
Solução
Depuração de serviços
A principal característica de um serviço é que a sua execução não está diretamente relacionada a interface com o usuário (SmartClient) e normalmente é executado em segundo plano pelo appServer.
Preparação para serviços REST
- No arquivo de configuração do appServer (
ini
) comente a sessão[OnStart]
. - Ainda no arquivo de configuração do appServer, vá até a sessão
[General]
e ajuste a chaveBUILDKILLUSERS=1
. - Reinicie a execução do appServer.
- Abra o arquivo
.vscode\launch.json
. - Localize a definição de executor que será utilizada e adicione a chave
"enableMultiThread": true
. - Crie um arquivo-fonte, adicione o código abaixo e vá adequando, se necessário.
user function startRest()
//O nome do job REST e ambiente de execução dele, podem ser obtidos no arquivo
//de configuração do _appServer_.
//Detalhes da função em https://tdn.totvs.com/display/tec/StartJob
startjob("HTTP_START", "p12", .f.) //lwait, sempre dever ser false
sleep(15000) //aguarda o serviço ser inicializado. Ajuste o tempo se necessário.
alert(">> Serviço REST inicializado. <<")
return
Preparação para outros serviços
- No arquivo de configuração do appServer (
ini
), na sessão[OnStart]
deixe ativo somente os serviços necessários na depuração e na chaveRefreshRate
informe o intervalo de30
segundos. - Ainda no arquivo de configuração do appServer, na sessão
[General]
ajuste a chaveBUILDKILLUSERS=1
. - Reinicie a execução do appServer.
- Abra o arquivo
.vscode\launch.json
. - Localize a definição de executor que será utilizada e adicione a chave
"enableMultiThread": true
;
Execução da Depuração
- Encerre todos os serviços e conexões.
Dica: Para compilar qualquer fonte encerre todos os serviços e conexões existentes. - Coloque um ponto de parada que será executado quando o serviço for requisitado.
- Iniciar a depuração executando qualquer função do RPO para que mantenha uma conexão do depurador com o appServer. Se for serviço REST, então execute a função
u_startRest
e aguarde a mensagem de serviço inicializado. - Acione o serviço por fora do VS-CODE, por exemplo, executando o
SmartClient
, uma requisição (http, rest, etc) - Quando parar no ponto de parada prossiga com a depuração normalmente.
Nota:
Todas as dúvidas e erros referente a extensão TOTVS Developer Studio for VSCode, Compilação, Depuração e/ou configuração devem ser direcionadas ao canal oficial GitHub(Repositório TOTVS).
O artigo abaixo contem vídeo exemplificando a abertura.
Cross Segmento - TOTVS Backoffice Linha Protheus - AdvPL - Vscode resolução de problemas
Saiba Mais:
github.com/totvs/tds-vscode
0 Comentários