ADVPL - Como ler o erro do execauto?
Autor: Eurai Criado: 14/08/2021 Atualizado: 11/10/2021
Neste artigo venho compartilhar algumas formas de leitura dos erros após o execauto.
É de conhecimento geral dos desenvolvedores em ADVPL, que toda a execução do execauto, necessita da declaração da variável lMsErroAuto como private. Após o execauto, se houver algum erro, essa variável ficará com o valor .T.. E com funções auxiliarias, é possível capturar o erro ocorrido.
Há casos que a mesma fica .T. e o erro retornado é em branco, isso ocorre por gatilhos/pontos de entrada sem os devidos tratamentos, utilizando funções que não trabalham com o controle de erro do execauto. Posso citar como exemplo a função Alert/MsgAlert/ETC.
Vejo demais esses casos, além da falta de tratamento se é execauto, tela, job, etc.
Bem, boraaa ao execAuto.
Exemplo_01: Este é o mais utilizado. MostraErro()
lMsErroAuto := .F. MsExecAuto( {|UD,ER,AM| MATA410(UD,ER,AM) }, aSC5, aSC6, 5) If lMsErroAuto //DEU ERRO MostraErro() Else //Deu SUCESSO Endif
Exemplo_02: Aqui é obtido o nome do log através de função e realizado a leitura do arquivo. MemoRead( Alltrim(NomeAutoLog()) )
lMsErroAuto := .F. MsExecAuto( {|UD,ER,AM| MATA410(UD,ER,AM) }, aSC5, aSC6, 5) If lMsErroAuto //DEU ERRO MemoRead( Alltrim(NomeAutoLog()) ) //Com esse comando é possível obter o erro Else //Deu SUCESSO Endif
Exemplo_03: A leitura ocorre por array. Neste método é possível realizar tratamentos especificos. A função é a GetAutoGRLog()
Não se esqueça de declarar como a variável private lAutoErrNoFile := .T.
lAutoErrNoFile := .T. lMsErroAuto := .F. MsExecAuto( {|UDESENV,UNIVERSO,DESENVOLVEDOR| MATA410(UDESENV,UNIVERSO,DESENVOLVEDOR) }, aSC5, aSC6, 5) If lMsErroAuto //DEU ERRO aRet := GetAutoGRLog() Else //Deu SUCESSO Endif
Complemento:
Caso não tenha tratamentos corretos nas customizações, irá retornar vazio em todos os exemplos. Atuei em casos que até os erros padrões não eram bem tratados (não foi o caso do sigahelp).
Em determinados casos é possível utilizar a função FWGetUltHlp para verificação de erro, a função é utilizado para outros fins, porém porém e porém novamente, não custa tentar unificar com o execauto.
Em complemento a esta função, existe a FwClearHlp para limpeza do help.
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎
Um abraço, e até a próxima
Discussão (0)
Sem comentários ainda
Realize o LOGIN no site para poder comentar