Função FINAL() gera error.log

Oi, pessoal!

Precisei criar uma janela apartada do smartclient logado, ou seja, a tela é acionada a partir do login do smartclient e exibe uma serie informações para o usuário e fica em atualização o tempo todo, por isso precisa ficar aberta permitindo que o usuário continue trabalhando no módulo que estiver.

Essa tela possui o botão "fechar" que estou tentando utilizar a função padrão FINAL(). Como ela é um SmartClient, preciso que ela seja encerrada da forma correta, contudo, o sistema gera um error.log.

7.00.210324P-20230228 THREAD ERROR ([21740], Francisco, DESKTOP-HJ554EQ) 30/03/2023 23:49:30 Saída no final: Encerramento normal on FINAL(MSFINAL.PRW) 01/03/2023 10:31:37 line : 244

//Executo a chamada da tela dentro de um client abrindo outro client
local c_Program     := "c:\TOTVS\P12\12.1.2210\bin\smartclient\smartclient.exe" as character 
local c_Parametros  := " -M -Q -P=u_tstTdialog -E=P12LGFSW" as character
local c_Ret as character    //Nome do menu que será utilizado pelo sistema.

ShellExecute ("open",c_Program,c_Parametros,"",SW_SHOWMAXIMIZED)

//Codigo com as acoes dos botoes
oBtn1Exc       := TButton():New( 188,002,"Marcar Todos",o_Dlg,{|| f_MarcaTodos("1") },050,012,,,,.T.,,"",,,,.F. )
    oBtn2Exc      := TButton():New( 188,054,"Desmarcar Todos",o_Dlg,{|| f_MarcaTodos("2") },050,012,,,,.T.,,"",,,,.F. )
    oBtn3Exc       := TButton():New( 188,116,"Cancelar",o_Dlg,{|| n_Opc:=1, o_Dlg:End() },050,012,,,,.T.,,"",,,,.F. )
    oBtn4Exc    := TButton():New( 188,178,"Aprovar",o_Dlg,{|| n_Opc:=2, o_Dlg:End() },050,012,,,,.T.,,"",,,,.F. )
    oBtn4Exc    := TButton():New( 188,230,"Rejeitar",o_Dlg,{|| n_Opc:=3, o_Dlg:End() },050,012,,,,.T.,,"",,,,.F. )

oTimer := TTimer():New(n_Tempo, {|| f_SelecionaOrcamentos(), oBrw1:oBrowse:Refresh() }, o_Dlg )
oTimer:Activate()

o_Dlg:Activate(,,,.T.)

if n_Opc == 1
    //Cancelado
elseif n_Opc == 2
    //Aprovado
else
    //Rejeitado
endif

RESET ENVIRONMENT
BEGIN SEQUENCE
   Final("Encerramento normal")    //Utilizada para finalizar o sistema, essa função executa operações básicas que garantem a integridade dos dados ao finalizar o sistema, desmontando as transações, desbloqueando os semáforos e fechando as tabelas abertas.
END SEQUENCE
compartilhar
  • Por que sua função Final está dentro de um Begin Sequence?

    Daniel Mendes   31 de Mar de 2023
  • A função Final finaliza a thread e tivemos situações que ela gerava uma exceção ao ser encerrada, mas isso foi corrigido via binário.

    Daniel Mendes   31 de Mar de 2023
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags devforum ou faça a sua própria pergunta.