Webapp x Webagent falta de sincronismo com a função While

Boa tarde.

Temos uma customização no Cliente que roda normalmente a mais
de 7 anos no SmartClient, porém no WebApp/WebAgent a mesma trava e não
conseguimos utilizar a mesma. Estudamos todo o boletim de migração
do SmartClient Desktop para o WebApp, conforme o link abaixo :

https://tdn.totvs.com/display/tec/4.+Migrando+do+SmartClient+Desktop+para+o+WebApp

A customização consiste em ler uma porta serial de uma balança de
pesagem a fim de monitorar a estabilização do peso, imprimindo uma
etiqueta ao final da estabilização.

A porta serial é aberta somente uma vez no início do processo, onde o buffer
é lido através de um “While” com Sleep de 230milisegundos. Após o peso estar
estabilizado a comunicação com a porta serial é fechada.

O Webapp/WebAgent não consegue manter o sincronismo com o “Server” quando entra
no “While”, gerando um delay de tela e travando a mesma. A interação com a tela
em tempo real é fundamental para o processo.

Gostaríamos de saber se exite alguma configuração no WebApp/WebAgent para contornar
esta anomalia, mantendo o sincronismo com o server em tempo real.

Segue em anexo as informações do ambiente e o fonte da rotina.

Versão do WebAgent = WEB-AGENT 1.0.17 WINDOWS X64
Versão do WebApp = P12_SMARTCLIENT_WEBAPP_10.1.0_WINDOWS_X64

Atenciosamente,
Fabiano Santos - TOTVS Leste

3 curtidas

@Fabiano_Santos vou ver se consigo fazer esse teste que você está falando em um ambiente aqui. Talvez seja interessante ter algum tipo de delay em cada interação do laço para dar tempo dos componentes se conversarem, já que agora tem mais camadas envolvidas no processo e pode ser isso que esteja dando problema. Não sei quanto tempo mas acho que algo pequeno como 50 ou 100ms já seja suficiente para mitigar o problema.

2 curtidas

Cirilo, bom dia.

Obrigado pelo retorno.
Fiz testes com alterando de 1 para 250ms no ttimer e de 230ms no sleep para 1000 e não resolveu. O problema é que o webapp não está devolvendo o controle para a aplicação, o que não ocorre com o smartclient, onde o controle da aplicação principal é mantida. Estou gravando alguns vídeos para enviar a Matriz e olhando se tem como devolver o controle para a aplicação utilizando alguma função ou executar a comunicação com a balança em tempo real de outra forma, tipo em segundo plano.

Obrigado,
Fabiano Santos.

1 curtida