Invalid handle used in file

Bom dia, Tenho uma rotina que gera um arquivo texto, usamos a função fWrite para gerar esse arquivo. Ocorre que criamos um job para executar automaticamente esse rotina, só que no momento da execução ocorre o erro: TOTVS Build 7.00.131227A-20180727 NG THREAD ERROR ([19876], VITALHML2AGENT01, THIS) 18/11/2020 18:00:34 invalid handle used in file D:\bamboo-agent-5.7.2\xml-data\build-dir\TP11-BUILDV2APPSRV-TEC11WIN32RPO32\advtec9_tt11\lib_base\diskman.cpp at line 266 on CABCXA(VTCADCXA.PRW) 18/11/2020 17:03:56 line : 214

Na linha 214 a 218 do fonte temos o seguinte:

If fWrite(nHdl,cLin,Len(cLin)) != Len(cLin) If !MsgAlert("Ocorreu um erro na gravacao do arquivo. Continua?","Atencao!") Return Endif Endif

Alguém tem alguma luz?

Pablo, como está a linha que você faz o

FCreate

ou

FOpen

?

nHdl := fCreate(c_NArq)

E qual o conteúdo da variável

c_NArq

?

Bom dia!

Verifique se o arquivo foi criado corretamente (nHdl diferente de -1), pois pode ser algum problema quanto ao caminho. Exemplos: inexistente, sem permissão, com caracteres especiais, etc.

Alguns diretórios possuem comportamento diferente via SmartClient e via Job. Uma boa forma de testar esse comportamento depurando é utilizar a função StartJob.


Além disso, caso estiver utilizando job, não é recomendável a utilização de funções de exibição de mensagens como MsgAlert, MsgStop, etc.

No caso do seu fonte você criou uma condição com a função MsgAlert, mas essa função possui retorno nulo, podendo ocasionar inconsistências na execução. O correto nessa situação, se executado fora de Job, seria um MsgYesNo/MsgNoYes.