sexta-feira, 31 de janeiro de 2014

ADVPL-Trabalhando com JOBS

Como utilizar jobs no Protheus

Existe um tipo de JOB que é possível trabalhar no Protheus que eu particularmente utilizo muito.

Por diversas vezes tentei utilizar o JOB padrão da Totvs e fiquei muito frustrado por não funcionar como gostaria e também não tenho um total controle do que esta rodando por traz desse job.

Desta forma, tenho trabalhado com outro tipo de JOB. É o mesmo princípio de um Job de Tss, quase isso.

Trabalhando com JOBS

Para criar um JOB, primeiramente é necessário criar uma rotina no Protheus e apontar esta rotina no início do Protheus. Abaixo descrevo melhor .

MONTAGEM DA ROTINA


User Function WTJobQualquer
Local nVolta:=0
ConOut( dtoc( Date() )+" "+Time()+" Iniciando o job...." )   
While !KillApp()
    nVolta++
    ConOut( dtoc( Date() )+" "+Time()+" Executando os comandos" )

    If nVolta > 10
        volta:=0
        ConOut( dtoc( Date() )+" "+Time()+" Fim do Job" ) // Joga a mensagem no console
        Exit
    Endif

Enddo
Return

Obs : O nome do programa deve iniciar com WT

CRIAR UM SERVIÇO NO WINDOWS/LINUX PARA RODAR O SEU JOB

Crie um ambiente separado de preferência em outro RPO. Sugiro isso, porque as vezes precisamos fazer alguma modificação no ambiente de produção ou de teste e isso não vai interferir no outro. Este procedimento não é obrigatório.

Tendo este ambiente montado, é necessário adicionar as seguintes linhas :

[ONSTART]
Jobs=NOME_CHAVE // Vínculo com a linha abaixo
RefreshRate=10   // Tempo para atualização do JOB

[NOME_CHAVE]
main=U_WTJobQualquer()  // Nome do programa
environment=BSTESTE  // Nome do ambiente
instances=1

Note, que o nome BSTESTE é o nome do ambiente que ira rodar. É o mesmo princípio de uma base de produção.

Como sugestão, deixe um serviço separado do serviço de produção. Isso evita sobrecarga, não deixa o Protheus lento, não interfere na produção e como é um JOB, você pode parar este JOB a qualquer momento sem interferir no ambiente de produção.

Importante

Por se tratar de um JOB, fica por sua conta montar a abertura da empresa, a abertura da tabela, etc.

Nenhum comentário:

Postar um comentário