Função: GetAutoGRLog - retorno de array durante a execução da rotina automática
Abrangências: | Microsiga Protheus 11 , Protheus 10 |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível às Bases de Dados: | Todos |
Nível de Acesso: | Nível 1 (Acesso Clientes) |
Descrição:
A função GetAutoGrLog() retorna um array com os erros que foram gerados durante a execução da rotina automática. Pode ser utilizada caso o desenvolvedor deseje realizar o seu próprio tratamento de erros, como por exemplo, a gravação de logs específicos para cada rotina.
Programa Fonte:
MATXFUNB.PRX
Sintaxe:
GetAutoGRLog - retorno de array durante a execução da rotina automática ( ) --> aRet
Retorno:
-
aRet(vetor)
- Array com os erros gerados pela rotina automática.
Observações
A variável __aErrAuto só é alimentada se a variável lAutoErrNoFile estiver declarada como .T.
As informações são armazenadas na variável __aErrAuto quando ocorrer um erro na rotina automática ou quando for chamada a função AutoGRLog(cTexto) , onde cTexto é o texto que será incluído no array.
Depois que a função GetAutoGRLog() é chamada, a variável __aErrAuto (que armazena os erros gerados durante o processo) é reiniciada.
As informações são armazenadas na variável __aErrAuto quando ocorrer um erro na rotina automática ou quando for chamada a função AutoGRLog(cTexto) , onde cTexto é o texto que será incluído no array.
Depois que a função GetAutoGRLog() é chamada, a variável __aErrAuto (que armazena os erros gerados durante o processo) é reiniciada.
Exemplos
#include "rwmake.ch"#include "tbiconn.ch"User Function GravaErro()Local nX := 0Local nCount := 0 Local cLogFile := "" //nome do arquivo de log a ser gravadoLocal aLog := {}Local aVetor := {}Local nHandleLocal lRet := .F. // variável de controle interno da rotina automatica que informa se houve erro durante o processamentoPRIVATE lMsErroAuto := .F.// variável que define que o help deve ser gravado no arquivo de log e que as informações estão vindo à partir da rotina automática.Private lMsHelpAuto := .T. // força a gravação das informações de erro em array para manipulação da gravação ao invés de gravar direto no arquivo temporário Private lAutoErrNoFile := .T. Prepare Environment Empresa "01" Filial "01" Modulo "FAT"//+------------------------- -------------------------------------+//| Teste de Inclusao |//+------------------------------------- -------------------------+For nCount := 1 To 3 aVetor:= {{"B1_COD" ,"99"+Alltrim(Str(nCount)),Nil},; {"B1_DESC" ,"Teste" ,Nil},; {"B1_UM" ,"UN" ,Nil},; {"B1_LOCPAD" ,"01" ,Nil}} lMsErroAuto := .F. lRet := .F. AutoGrLog("Teste de geração do arquivo de log "+Alltrim(Str(nCount))) AutoGrLog("") MSExecAuto( {|x,y| MATA010(x, y) }, aVetor, 3 ) AutoGrLog(Replicate("-", 20)) If lMsErroAuto cLogFile := "C:\TESTE"+Alltrim(Str(nCount))+".LOG" //função que retorna as informações de erro ocorridos durante o processo da rotina automática aLog := GetAutoGRLog() //efetua o tratamento para validar se o arquivo de log já existe If !File(cLogFile) If (nHandle := MSFCreate(cLogFile,0)) <> -1 lRet := .T. EndIf Else If (nHandle := FOpen(cLogFile,2)) <> -1 FSeek(nHandle,0,2) lRet := .T. EndIf EndIf If lRet //grava as informações de log no arquivo especificado For nX := 1 To Len(aLog) FWrite(nHandle,aLog[nX]+CHR(13)+CHR(10)) Next nX FClose(nHandle) EndIf EndIfNextIf !lMsErroAuto ConOut("Incluido com sucesso! ") Else ConOut("Erro na inclusao !")EndIfReturn
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas