Sintaxe da função StartJob:
StartJob( NomeDaRotina, Environment, FinalizaRotina, Empresa, Filial )
Esta sintaxe é o que o TOTVS disponibiliza.
Segue abaixo um exemplo:
// Funcao principal que iniciará um novo Job.
User Function FUAtualizaDados()
Local _aParametros := {}
_aParametros := {"01","02","000001","04"}
// Inicia o Job
StartJob("U_FUTesteJob()",GetEnvServer(),.F.,_aParametros)
/* A Função GetEnvServer() retorna o environment atual, mas posso definir outro. */
Return Nil
// Função inicializada pela StartJob().
User Function FUTesteJob()
Local _cEmpresa := paramixb[1] // Usar o paramixb
Local _cFilial := paramixb[2]
Local _cFornece := paramixb[3]
Local _cLoja := paramixb[4]
/* A maioria das funcoes que sao chamadas de Job devem usar o prepare environment */
prepare environment _cEmpresa Filial _cFilial Tables "SA2"
DBSelectArea("SA2")
SA2->(DBSetOrder(1))
if SA2->(DBSeek(xFilial("SA2")+_cFornece+_cLoja))
RecLock("SA2",.F.)
SA2->A2_TESTE := "TESTANDO FUNCAO JOB"
SA2->(MsUnLock())
endif
Return Nil
Obs. Ao iniciar um Job (uma nova Thread) voce estará consumindo uma licença do server.
Nenhum comentário:
Postar um comentário