Páginas filhas
  • GetAutoGRLog - retorno de array durante a execução da rotina automática

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.
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

  • Sem rótulos