Estou tentando criar uma rotina usando a função Start JOB, porem fica dando erro nessa variavel
alguem ja pegou esse erro ?
Variables in use
Publicas
Public 1: CPAISLOC(C) :BRA
Public 2: ASX8(A) :
STACK U_TSTJOB(CTBP4SK0.PRW) 24/02/2021 08:48:30
Files
Stack :
variable does not exist DDATABASE on U_TSTJOB
StartJob("U_TSTJOB()",GetEnvServer(),.F.)
User Function TSTJOB()
Conout("TESTE JOB")
Return Nil
As Soluções abaixo embora sejam corretas de acordo com o TDN.
NEnhuma funcionou comigo.
No meu caso, eu tive que usara DDataBase como Parâmetro de entrada, mesmo não precisando dela para Nada
dadinel
Fevereiro 24, 2021, 4:38pm
3
Consegue anexar o seu código fonte completo para vermos?
romarsp
Fevereiro 24, 2021, 4:38pm
4
Bom dia Guilherme !
Tem que usar o PREPARE ENVIRONMENT
na sua função.
Testei também, coloquei apenas o PREPARE ENVIRONMENT, mais nada, e ele acusa o erro nessa variavel
romarsp
Fevereiro 24, 2021, 4:38pm
6
Fiz o teste abaixo e não deu nenhum erro:
#INCLUDE “TOTVS.CH”
User Function TesteJob()
StartJob( “U_TstJob()”, GetEnvServer(), .F. )
Return( NIL )
User Function TstJob()
ConOut( “TESTE JOB” )
Return( NIL )
Aqui não vai… Desisti e coloquei a variável como parâmetro de entrada ai ela parou de acusar erro
Guilherme, você pode usar também a função Date() que pega a data do server e não da conexão com o protheus.
a Minha função JOB, é apenas o Conout
eu nem chamo nada
Bom dia,
Favor tentar conforme abaixo:
#INCLUDE "TOTVS.CH"
User Function TesteJob()
StartJob( "U_TstJob()", GetEnvServer(), .F. )
Return( NIL )
User Function TstJob()
Local cEmp := "01"
Local cFil := "01"
PREPARE ENVIRONMENT EMPRESA cEmp FILIAL cFil
ConOut( "TESTE JOB" )
RESET ENVIRONMENT
Return( NIL )
Unica mudança que fiz no seu fonte, foi remover os parênteses StartJob( “U_TstJob”, GetEnvServer(), .F. )
Porque dessa forma começou a dar o Erro: Invalid function call : U_TSTJOB()
Porem mesmo assim deu erro na Variavel DDATABASE
coloque o prepare environmnet na função TesteJob() tb, pois acredito que a função GetEnvServer() esteja puxando a variável ddatabase pra passar como parâmetro.