Implementado a rotina SCHEDESTMG que deverá ser responsável por enviar os produtos que tiveram o estoque modificado. Segue abaixo configurações necessárias para agendamento da rotina.
Conceito:
O Schedule Protheus permite que rotinas do sistema sejam agendadas para que possam ser executadas posteriormente, em um período determinado pelo usuário. É possível definir quando (dias, horários e quantidades de execuções) e em qual Grupo de Empresas e Filiais o processo será executado. O Schedule Protheus não realiza nenhum processamento. Sua função é chamar a rotina agendada no momento definido ou manter esta rotina sendo executada constantemente, quando o agendamento é configurado como sempre ativo. Consumo de memória, desempenho e processamento são atributos associados a rotina agenda, e não ao Schedule Protheus em si.
O Schedule Protheus é composto por três componentes principais:
- Manager: Componente responsável por fazer o gerenciamento das tarefas, como o controle de geração das tarefas (Task Manager) e o controle da fila das tarefas que serão executadas (Queue Manager);
- Agent: Este é o componente que gerencia as execuções e distribuí as tarefas para que as Executes configuradas que estão disponíveis no momento. Os Agents podem estar localizados em servidores diferentes, possibilitando o balanceamento da carga de execuções;
- Execute: São os componentes responsáveis por realizar a chamada das rotinas agendadas. A única das entidades que consome licença no Schedule Protheus, e isto ocorre na execução da rotina agendada.
Monitoramento dos serviços do Schedule Protheus
Existem dois serviços que estão configurados no Schedule Protheus.
- Task Manager: Serviço de verificação de agendamentos. Este serviço é responsável por monitorar os agendamentos e gerar as tarefas para execução.
- Queue Manager: Serviço de gerenciamento de filas. Este é o serviço que faz a distribuição das tarefas entre os Agents configurados.
Para visualizar estes serviços acesse o módulo Configurador (Sigacfg) e no menu acesse Ambiente/Schedule/Schedule (CFGA010):
Image Modified
Figura 1 - Task Manager e Queue Manager do Schedule Protheus. Serviços responsáveis por gerar e gerenciar a fila de tarefas.
Através desta interface é possível gerenciar os serviços. O primeiro botão permite iniciar todos os serviços de uma só vez. O segundo inicia o serviço no qual se está posicionado.
Já o terceiro botão para todos os serviços de uma vez e o quarto interrompe o serviço no qual se está posicionado.
Devido a complexibilidade de manipulação dos serviços existe um botão de atualização (quinto botão) que permite que esta interface seja atualizada. Para que o Schedule Protheus funcione estes dois serviços devem estar iniciados.
Monitoramento de Agents
Nesta visão são exibidas informações sobre o status dos Agents e também sobre os eventos de cada um.
Image Modified
Figura 2 - Monitor de Agents. Aqui são exibidos os seus status e a data e hora de última utilização de cada um.
O gerenciamento dos Agents cadastrados é realizado da seguinte maneira:
No primeiro botão superior é possível iniciar todos os Agents cadastrados. O segundo botão inicia somente o Agent no qual se está posicionado.
O terceiro botão interrompe o serviço de todos os Agents e o quarto botão interrompe somente o Agent no qual se está posicionado.
Para que as tarefas sejam executadas, é necessário que exista ao menos um Agent cadastrado com a empresa equivalente a tarefa, e este esteja inicializado.
Cadastrar os Agents é muito simples. Clicando em Agent/Cadastro a tela de cadastro é apresentada.
Image Modified
Figura 3- Tela de cadastro dos Agents do Schedule Protheus
Na barra superior no botão Image Modified é possível incluir automaticamente um Agent para cada um dos grupos de empresas cadastrados no sistema. Cada Agent já vem configurado com duas Threads para execução das rotinas.
É possível incluir Agents de maneira manual. Para isso, na parte inferior, em Detalhes, clique em adicionar e inclua o Agent. É necessário definir um código para o Agent, seu nome, o Ip, porta de comunicação e empresa na qual este Agent irá se conectar e o número de Threads disponíveis para execução das rotinas agendadas. É possível também desabilitar o Agent, caso necessário, ou ainda excluí-lo.
MUITO IMPORTANTE: É recomendável que seja utilizado sempre o endereço IP da máquina, e não o seu Alias de rede.
Exemplo: Utilize 172.16.32.111 ao invés de Maquina_001.
Dentro de Agent/Monitor é possível monitorar o Agent posicionado.
Image Modified
Figura 4 - Monitoramento dos Agents cadastrados
É possível aqui verificar se o Agent está em execução ou não e em caso de execução, qual a rotina que está sendo executada no momento e a sua última data de utilização. Isto ajuda a medir sua utilização, sendo possível diminuir o número de threads ou aumentaer de acordo com o uso deste Agent.
Agendamento da rotina SCHEDESTMG
Cadastrar as rotinas no Schedule Protheus é muito simples. Acesse Ambiente/Schedule/Schedule (CFGA010). Clicando em Agendamentos é possível verificar quais rotinas estão agendadas para execução.
Image Modified
Figura 5- Visualização de rotinas agendadas para execução.
Para realizar o agendamento de uma nova rotina, basta ir em Cadastro e incluir a rotina na qual se deseja realizar o agendamento.
Image Modified
Figura 6 - Interface para manipulação das rotinas a serem agendadas.
Na parte inferior, em detalhes é possível incluir uma nova rotina, clicando em Incluir. É necessário incluir dados nos seguintes campos:
Código – O código do agendamento é incluído automaticamente;
Usuário – É necessário vincular o usuário associado à execução da rotina;
Rotina – Rotina que terá a sua execução agendada. Existe um facilitador para encontrar a rotina desejada (uma consulta padrão, ou F3). Para que a rotina seja localizada pela consulta é necessário que:
- Esta rotina esteja em um dos menus do sistema;
- O usuário associado possua permissão para executar a rotina a ser agendada;
- A rotina a ser agendada possua a função static Scheddef (veja detalhes sobre a criação da Scheddef no TDN).
O botão Parâmetros trará os parâmetros da rotina, caso a mesma possua Scheddef definida. Para rotinas que possuem Scheddef definida não é possível realizar passagem de parâmetros diretamente na rotina.
Supondo que a rotina TesteSched possua Scheddef definida. Neste caso, ela deve ser cadastrada no campo Rotina como 'TESTESCHED'. Caso a rotina não possua Scheddef definida, é possível realizar a passagem de parâmetros pela própria rotina, e neste caso a rotina pode ser cadastrada como 'TESTESCHED (parametro1, parametro2, parametroN)'. Mais detalhes da diferença entre rotinas com Scheddef e rotinas sem Scheddef (rotinas de processo especial) são mostradas no tópico Preparando uma rotina para ser agendada no Schedule Protheus.
Data – Defina a data de início para o agendamento da rotina;
Hora – Defina a hora de início do agendamento da rotina;
Ambiente – Defina em qual ambiente esta rotina será executada;
Empresa/Filial – Defina para qual par empresa/Filial a rotina será executada.
Módulo – Defina o módulo associado a rotina agendada.
Criada desta forma, a rotina será executada apenas na data e hora informada. Caso seja necessário que o processo se repita é possível cadastrar também uma Recorrência.
Clique em Image Modified e a tela de cadastro de recorrência é aberta.
Image Modified
Figura 7 - Cadastro de recorrência para a rotina agendada.
É possível definir a regra de execução da rotina. É possível definir o padrão de recorrência (diário, semanal, mensal anual e sempre ativo, o número de execuções e a data de término deste agendamento).
Não é possível selecionar o número de execuções e a data de término quando o padrão de Recorrência é cadastrado como sempre ativo. Neste tipo de padrão, a rotina é executada em loop, ou seja, ao final de sua execução ela é iniciada novamente, isto enquanto houver Threads de Agents disponíveis.
Confirmando a inclusão e tendo os serviços de Manager e Agents ativos, a rotina já está pronta para ser executada pelo Schedule Protheus.ClicandoProtheus. Clicando em Monitor é possível verificar as execuções agendadas, bem como as tarefas geradas para a rotina cadastrada. Já os eventos associados a execução só estarão disponíveis para as rotinas preparadas para agendamento, ou seja, para aquelas que tiverem SchedDef definida.
É importante esclarecer a relação entre um agendamento e as tarefas geradas. Um agendamento gera uma tarefa para cada grupo de empresa/filial cadastrado para este agendamento.
Image Added
Figura 8 - Rotinas agendadas e seus eventos associados.
Cadastro do adapter STOCKLEVEL
Deve ser feito o cadastro da mensagem StockLevel, reponsavel pelo envio de dos dados dos produtos que foram encontrados naquele periodo.
Image Added
Conceitos de utilização da rotina SCHEDESTMG
A rotina SCHEDESTMG tem por objetivo enviar informações dos produtos cadastrados que tiveram movimentações e atualizações de saldos realizando consulta nas tabelas de Entradas (SD1), Saídas(SD2) e Movimentações Internas(SD3), verificando desde o ultimo envio o que teve de atualização de saldos.