Você está na página 1de 12

Como agendar rotinas para executar automaticamente no

Protheus

Hoje vou mostrar duas formas de como executar rotinas (Jobs) de forma automática no Protheus.

Existem duas formas de agendar rotinas automáticas para executar do Protheus, a primeira é
diretamente pelo sistema operacional, não é muito difundida, pois se houver falhas ou problemas,
não ficarão gravados logs no Protheus, mas é uma forma mais simples de se configurar.

A segunda forma é diretamente pelo Scheduler do Protheus que é uma ótima ferramenta, onde
ficam logs das rotinas executadas.

Abaixo ambas as formas com prints.

Diretamente pelo Windows:

1. Abra o bloco de notas


2. Coloque o caminho completo do smartclient.exe. Nos parâmetros, o c coloque a Comunicação
/ Comunication, no parâmetro e coloque o Ambiente / Environment e no parâmetro p, coloque
o nome da User Fucntion com u_ sem os parênteses, abaixo um exemplo de como fica no
notepad:

C:\TOTVS\ERP\Protheus\bin\smartclient\smartclient.exe -c=tcp -e=environment -p=u_zExpNFE -q -m -l

3. Salve o arquivo, e coloque no nome a extensão .bat


Arquivo com extensão .bat

4. Clique no Iniciar e procure por Agendador de Tarefas

Procurando por Agendador de Tarefas

5. Clique em Biblioteca do Agendador

Acessando a Biblioteca do Agendador

6. Clique com o botão direito na área branca, e depois clique em Criar Tarefa Básica
Criando tarefa básica

7. Na primeira tela, coloque o nome de execução da rotina

Nome da rotina

8. No disparador, selecione o tipo, nesse exemplo será diariamente


Definindo a ocorrência da rotina

9. Defina o horário que será executado a rotina, nesse exemplo, será executado todo dia as
08h30

Definindo o horário e a repetição

10. Na ação, clique em escolher um programa

Setando para iniciar um programa

11. Informe o caminho do arquivo que foi salvo no tópico de número 3

Informando o caminho do .bat

12. Revise as informações na última tela e clique em Concluir


Resumo da tela

Diretamente pelo Scheduler do Protheus:

1. Vá na sua instalação do Protheus, copie a pasta apo, e nessa nova cópia, coloque apo_job

Criando a pasta apo_job

2. Faça a mesma coisa para a pasta appserver, crie uma cópia (se ai usa balanceamento de
carga, copie de um slave / load balance) e renomeie para appserver_job
Criando a pasta appserver_job

3. Dentro da pasta appserver_job, abra o arquivo appserver.ini


4. A primeira alteração, é na configuração do Environment, mude o nome e o caminho coloque
aquele do tópico 1

Definindo o environment no appserver.ini

5. A segunda alteração é na porta da conexão, mude ela, nesse exemplo iremos usar a 1258

Definindo a porta do AppServer

6. E a terceira alteração é no nome do serviço, coloque algo que remeta ao JOB

Definindo o nome do serviço

7. Por último, iremos adicionar o Manager e o Queue (responsáveis por gerenciar e pela fila de
Jobs), para isso iremos adicionar os dois, e acionar eles via ONSTART. Além disso, no
Environment, lembre-se de apontar para o ambiente configurado no tópico 4

[ONSTART]

JOBS=FWSCHDMANAG_AMBJOB,FWSCHDQUEUE_AMBJOB

RefreshRate=120

[FWSCHDMANAG_AMBJOB]

Main=FWSCHDMANAG

Environment=AMBJOB

[FWSCHDQUEUE_AMBJOB]

Main=FWSCHDQUEUE

Environment=AMBJOB

8. Crie um atalho do appserver na área de trabalho, e teste com -console ou faça a instalação
com -install e deixe o serviço executando
9. Agora vá na pasta smartclient, e abra o arquivo smartclient.ini
10. Copie a configuração de tcp ou outro slave que tenha, mude o nome para job, e coloque a
porta que foi configurada no tópico 5

Configurando no smartclient.ini

11. Nos drivers ativos, insira o job

Deixando o driver ativo

12. Abra o executável do Smartclient, no programa inicial coloque SIGACFG, na comunicação


coloque a configuração do tópico 10 e no ambiente coloque a configuração do tópico 4
Acessando o configurador nessa nova conexão e

ambiente

13. Faça o login normalmente, e acesse Ambiente > Schedule > Schedule

Acessando a opção Schedule

14. Na navegação em Cadastro dos Agentes


Acessando o cadastro de Agentes

15. Clique no botão para criar o Agente automaticamente (ele será criado com até 2 threads
simultâneas). Note também o IP que é gerado, se tiver sido gerado com alguma
inconsistência, altere o agente e deixe com o mesmo IP que esta rodando o serviço.

Clicando no botão para criar automaticamente

16. Clique na esquerda na opção Schedule, e deixe o Manager e o Queue iniciados

Voltando para Scheduler e iniciando os serviços

17. Clique agora em Agent, e inicie ele também


Verificando o status do agente

18. Agora vá em Agendamentos, e clique em Cadastro, depois clique no botão de adicionar

Adicionando nova função

19. Insira a função (se tiver um Pergunte na função, clique no botão Parâmetros para
parametrizar), insira a data e hora inicial, a empresa e filial, qual é o módulo e uma descrição

Informando os detalhes da rotina

20. Antes de confirmar, clique no botão Recorrências


Acessando o botão de Recorrências

21. Nas recorrências, eu coloquei para ser diário, a cada 1 dia, sem data de término, descartando
tarefas atrasados, sendo executado 5 vezes por dia, com um intervalo de 3 em 3 horas (se
clicar no botão Execuções, ele mostra a lista de horários que irá executar a rotina)

Definindo a recorrência do agendamento

22. Caso você queira visualizar as execuções, dentro de Agendamentos, em Monitor, é exibido a
lista de Jobs executados com os horários (dê um duplo clique na bolinha de status para ver as
legendas)

Verificando as execuções

Bom pessoal, por hoje é só.


Abraços e até a próxima.

Você também pode gostar