É possível executar duas funções consecutivamente no schedule

Bom dia a todos!

Preciso tirar uma duvida, aqui no forum, em relação como o schedule. Na empresa já tinha uma função que funciona certinho no schedule. Mas tivemos que fazer a chamada de outra função que se executa despois da primeira.

Assim eu estou executando as função U_ATUAPRECO() no schedulem que está no fonte ATUAPRECO.prw, mas no mesmo fonte antes do return eu faço a chamada da função U_EMAIL que está no fonte ENVIOEMAIL.prw.

E ai quando faço isso a primeira função que já estava funcionando certinha no schedule, é executada sem problema, só que a fazer a chamada da nova função entra em um ciclo e executa a primeira função varias vezes e não termina de executar a segunda função.

No schedule a função fica executando e não finaliza.

Minha duvida: é possível executar duas função desse forma? O que estou fazendo de errado?

Alguém consegue me orientar com isso, por favor.

Editado:

Assim, na imagem Anexo01.jpg é o a função que vai ser chamada pelo schedule e eu circule em vermelho la chamada a outra função.

Essa outra função tem duas execuções principais a primeira vai gerar 3 relatórios, depois executa a segunda que vai criar e enviar um e-mail com os três relatórios adjuntos.

Mas o problema está em gerar os três relatórios, a função consegui gerar só um relatório e volta a executar a função principal e gerar de novo esse relatório. O e-mail não é enviado porque não são gerados os três.

No Anexo02.jpg está a função do Schedule.

As duas funções funcionam bem separadamente no schedule.

Também inverti a chamada, faço a execução da função que gera os relatórios chamando primeiro a função que vai atualizar os dados, e acontece a mesma coisa.

Por ultimo essa função que gerar os relatórios e envia os e-mail leva uns 8 minutos em executa-se completa, e ai eu estou pequice se o schedule tem algum limite de tempo de execução, mas não ache nada sobre isso.

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Yenny, consegue colocar o exemplo do fonte e as funções, como elas estão sendo chamadas?

Faço isso normalmente, deve ter algum problema no seu fonte.

Sim, Marcos com certeza tenho alguns problema no fonte. Mas eu não estou achando o que é. E o mais estranho é que conseguo executar essas duas funções por separado, mas quando executo elas duas consecutivamente não da certo.

Daniel edite o post com algumas informações novas. Agradeço seu interesse em me ajudar.

Difícil dizer o que está acontecendo, tente colocar a chave KillStack no INI e quando a rotina ficar presa no schedule, derrubar a thread para que o error.log seja gerado no console: [Environment] KillStack - TOTVSTEC - TDN

Daniel, muito obrigada. Consegui saber qual eram os erros configurando o KillStack.

Yenny, eu não usaria msgrun dentro da schedule nem o help, mude seu código e tente colocar dentro do if !IsBlind() lRet:= ajustaProdutos() apenas. E veja se na função UNIM018 não tem funções de tela também.

Marcos, obrigada pela sugestão.
Já consegui resolver o problema. Não era exatamente o que você sugeriu, mas sim outra coisa parecida com esse.
A rotina principal tinha várias variáveis sem declarar, ela es uma rotina antiga.
O problema era que uma dessas variável tinha o mesmo nome de outra que era chamada em a rotina dos relatórios. Por isso o sistema fazia o ciclo, além disso tinha outra que ficava em branco e essa gerava outro erro com um alerta.
Fiz a declaração de todas essas variáveis localmente e a rotinas estão funcionados corretamente.

Que bom que resolveu!