Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
HTML
<div class="jumbotron jumbotron-full-height d-flex" style="background-position-x: center;">
    <div class="jumbotron-image">
        <img class="lazyload" data-src="https://img.freepik.com/premium-photo/close-up-business-people-are-analysis-business-report-with-digital-virtual-screen-business-financial-background_33799-7219.jpg?w=826" src="https://img.freepik.com/premium-photo/close-up-business-people-are-analysis-business-report-with-digital-virtual-screen-business-financial-background_33799-7219.jpg?w=826">
    </div>
    <div class="jumbotron-content" style="text-align: center;"> <!-- Adicionando o estilo de centralização -->
        <div class="container">
            <div class="row align-items-center">
                <div class="col-lg-7">
                    <h1 class="h3 font-weight-normal">
                        <span class="text-blue font-weight-bolder">Schedule Protheus</span><br />
                        <span class="text-white">Aqui você encontra todas as documentações e novidades sobre o Schedule</span>
                    </h1>
                </div>
            </div>
        </div>
    </div>
    <div class="jumbotron-footer jumbotron-footer-white">
        <div class="scroll scroll-white">
            <a href="#documentos">
                <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 505.7 70.1" style="enable-background:new 0 0 505.7 70.1;" xml:space="preserve"><title>curve-hollow-grey-out</title><path class="d-block" d="M351,32.6c-55.9,30.1-71.4,32.7-98.2,32.7s-42.3-2.6-98.2-32.7S28,0,28,0H0v70.1h28h449.6h28.1V0h-28.1C477.6,0,407,2.5,351,32.6z"></path></svg>
            </a>
        </div>
    </div>
</div>

  <style>
html {
	scroll-behavior: smooth;
}

.jumbotron {
    z-index: auto !important;
}

.jumbotron-full-height {
    min-height: 45vh;
    padding: 0;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
}
.jumbotron {
    background-color: transparent;
    background-size: cover;
    padding: 50px 0;
    margin-top: 0;
    margin-bottom: 0;
    border-radius: 0;
    position: relative;
    border: 0;
}
.d-flex {
    display: -webkit-box!important;
    display: -ms-flexbox!important;
    display: flex!important;
}
@media (min-width: 576px)
.jumbotron {
    padding: 4rem 2rem;
}
.jumbotron {
    padding: 2rem 1rem;
    margin-bottom: 2rem;
    background-color: #e9ecef;
    border-radius: 0.3rem;
}

 .jumbotron-full-height .jumbotron-image {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}
.jumbotron .jumbotron-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 20;
    overflow: hidden;
} 

.jumbotron-full-height .jumbotron-content {
    position: relative;
    padding: 110px 0;
    width: 100%;
}
.jumbotron .jumbotron-content {
    position: relative;
    z-index: 40;
    overflow: hidden;
    max-width: 100%;
    padding-top: 15px;
    padding-bottom: 15px;
    margin-top: -135px;
    margin-left: 50px;
 }

.jumbotron .jumbotron-footer {
    position: absolute;
    bottom: -6px;
    width: 100%;
    left: 0;
    z-index: 50;
    overflow: hidden;

    .d-block {
		fill: #fff;
	}
} 

.jumbotron img {
	width: 100%;
}

.jumbotron .jumbotron-image:before {
	content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7)
}

.jumbotron .jumbotron-footer>.scroll>a {
    display: block;
    position: relative;
    height: 100%;
}

.jumbotron .jumbotron-footer.jumbotron-footer-white .scroll>a:after {
    border-top-color: #fff;
}

.jumbotron h1 .text-highlighted {
    font-size: 3rem !important;
}

.jumbotron .text-white {
    color: #fff !important;
}

.jumbotron .text-blue {
    color: #0c9abe !important;
}

.jumbotron .font-weight-normal {
    font-weight: 400!important;
}

.jumbotron .font-weight-boldest {
    font-weight: 700 !important;
}

.jumbotron .h3, .jumbotron h3 {
    font-size: 2.125rem;
}

.jumbotron .h1, .jumbotron .h2, .jumbotron .h3, .jumbotron .h4, .jumbotron .h5, .jumbotron .h6, .jumbotronh1, .jumbotron h2, .jumbotron h3,  .jumbotron h4, .jumbotron h5, .jumbotron h6 {
    margin-bottom: 0.5rem;
    font-weight: 500;
    line-height: 1.2;
}

.jumbotron .h1, .jumbotron h1 {
    font-size: 3.125rem;
}

.jumbotron h1, .jumbotron h2, .jumbotron h3, .jumbotron h4, .jumbotron h5, .jumbotron h6 {
    margin-top: 0;
    margin-bottom: 0.5rem;
}   

.jumbotron .jumbotron-footer>.scroll {
    height: 69px;
    width: 505px;
    position: relative;
    z-index: 50;
    left: 0;
    right: 0;
    margin: auto;
}

 .jumbotron .jumbotron-footer>.scroll>a:after {
    content: "";
    width: 0;
    height: 0;
    border-top: 15px solid #fff;
    border-right: 15px solid transparent;
    border-bottom: 0;
    border-left: 15px solid transparent;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    -webkit-animation: float 1s infinite;
    -o-animation: float 1s infinite;
    animation: float 1s infinite;
}
 
@keyframes float {
    50% {
        -webkit-transform: translateY(4px);
        -o-transform: translateY(4px);
        transform: translateY(4px)
    }

    to {
        -webkit-transform: translateY(0);
        -o-transform: translateY(0);
        transform: translateY(0)
    }
}
 </style>

Livesearch
spaceKeyframework
sizelarge
placeholderEstou procurando por ....
typepage

Painel
borderColor#0c9abe
titleColor#f5f5f5
titleBGColor#0c9abe
borderStylesolid

DOCUMENTAÇÕES RELACIONADAS

Painel
titleConceito

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 agendada e não ao Schedule Protheus em si.

Painel
titleFuncionamento

O novoSchedule 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;
  • Engine: Este é o componente que gerencia as execuções fazendo o controle da fila de tarefas que serão executadas e distribuí as tarefas para as Executesque estão disponíveis no momento.
  • 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. Possui limite de 3 threads por padrão.


Quando ativo, na inicialização do ambiente o sistema se encarrega de preparar as threads responsáveis por cada componente (Manager, Engine e Execute), comportamento que se aplica para todos Servers que compartilhem do mesmo ambiente configurado, tornando-se um processo automático sem a necessidade de quaisquer configurações adicionais.

Para cenários em que existam diversos Serves trabalhando simultaneamente, obrigatoriamente apenas um dos servers ficará encarregado de executar o componente Manager, os demais apenas executam os componentes Engine e Execute. Em caso de interrupção do server responsável pelo Manager um próximo server assume automaticamente o comando de Manager.

Painel
titleNovo App
Painel
titleBGColorBeige
borderStylesolid
titlePré-requisitos
Painel
borderStylesolid
titleProcessos
Expandir
titleListagem dos agendamentos

A listagem dos agendamentos é uma rotina que contém uma tabela com as seguintes informações:

  • Código do Agendamento
  • Código do Usuário**
  • Nome do Usuário
  • Rotina
  • Data Inicial**
  • Hora Inicial**
  • Ambiente
  • Empresa e filial**
  • Módulo**

** Colunas ocultas que serão apresentadas apenas se forem habilitadas pelo usuário.

Image Added


Nela, também é possível realizar uma Busca Rápida ou uma Busca Avançada. A busca rápida consiste em uma busca mais simples, na qual irá filtrar o valor digitado para os campos de Rotina e Código do Usuário. Sendo assim, ao realizar essa busca mais simples, o sistema irá buscar os itens que contém a expressão filtrada nos campos Rotina eCódigo do Usuário. Exemplo: se o valor digitado for 'mata410', o sistema irá buscar este valor nos dois campos.

No caso da busca avançada, o operador utilizando é o igual. Portanto, para que o valor desejado seja encontrado, deve-se digitar exatamente o que deseja, considerando letras maiúsculas e minúsculas. Esse filtro pode ser realizado por Rotina e Código do Usuário, apenas por Rotina ou apenas por Código do Usuário.


Busca rápida

Image Added


Busca avançada

Image Added

Expandir
titleCadastro de agendamentos

O novo cadastro de agendamentos consiste em três etapas:
    1. Agendamento
    2. Parametrização
    3. Concluir


Agendamento

A etapa de Agendamento é onde a periodicidade da tarefa será agendada, podendo ser:

Tipo da periodicidadeDescrição
ÚnicaIrá executar apenas no dia e hora informados nos campos Dia e Horário.
Diária

Opção Frequência: Se marcada como sim, deve-se informar uma frequência de execução por horas ou minutos, sendo que deve haver uma horário inicial e final para essa execução. Se marcada como não, deve-se apenas informar um único horário para a execução do agendamento.

Opção Recorrente: Se marcada como sim, considera os parâmetros de frequência para a execução. Se marcada como não, considera apenas os parâmetros de primeira execução.

Semanal

Opção Frequência: Se marcada como sim, deve-se informar uma frequência de execução por horas ou minutos, sendo que deve haver uma horário inicial e final. Se marcada como não, deve-se apenas informar um único horário. Para as duas opções, devem ser informados os dias da semana para a execução.

Opção Recorrente: Se marcada como sim, considera os parâmetros de frequência para a execução. Se marcada como não, considera apenas os parâmetros de primeira execução.

Mensal

Opção Frequência: Se marcada como sim, deve-se informar uma frequência de execução por dias, horas ou minutos, sendo que deve haver uma horário inicial e final e dia inicial e final. Se marcada como não, deve-se informar apenas o dia e horário para a execução.

Opção Recorrente: Se marcada como sim, considera os parâmetros de frequência para a execução. Se marcada como não, considera apenas os parâmetros de primeira execução.

Sempre Ativo

Define execução contínua da rotina.

Informações

A partir da LIB 20140115.

Informações

A opção de 'Descartar tarefas atrasadas', define a geração das tarefas que estiverem em atraso com status 'Cancelado', desta forma sendo descartadas pela execução.

  • A partir da LIB 20140226.


Image Added


Parametrização

A etapa de Parametrização é onde serão informados os parâmetros para a execução, sendo eles:

Tipo do parâmetroDescrição
PadrãoSão todos os campos que já existiam no formato antigo, sendo: Empresa, Filial, Módulo, Usuário e Descrição.
Parâmetros da rotinaSão os parâmetros que cada rotina já possui hoje, então varia de rotina para rotina. Caso seja EAI, essa seção não será apresentada.
Parâmetros de impressãoMesmos parâmetros de impressão que o formato antigo, sendo que o Tipo de Impressão só será habilitado caso a Forma de Impressão seja "Email", assim como o Formato da Planilha só será habilitado quando o Tipo de Impressão for "Planilha". Caso seja EAI, essa seção não será apresentada.


Image Added


Informações
titleInformações adicionais
  1. Nesta etapa, o campo de "Avançar" só será habilitado quando todos os campos obrigatórios forem preenchidos;
  2. O módulo 99 - Configurador só pode ser selecionado para rotinas EAI;
  3. O campo de Filial torna-se obrigatório quando a rotina for EAI.


Concluir

A etapa Concluir é a final antes de incluir ou atualizar o agendamento e disponibiliza um resumo da periodicidade do agendamento.

Image Added


Exemplos de utilização

Totvs custom tabs box
tabsInclusão,Alteração,Exclusão
idsinclusao,alteracao,exclusao
Totvs custom tabs box items
defaultyes
referenciainclusao

Image Added

Totvs custom tabs box items
defaultno
referenciaalteracao

Image Added

Totvs custom tabs box items
defaultno
referenciaexclusao

Image Added

Expandir
titleMonitor de execuções

O monitoramento é uma rotina para listagem das execuções de agendamentos, contendo uma tabela com as seguintes informações:

  • Status
  • Agendamento
  • Código da Execução
  • Ambiente
  • Empresa
  • Filial
  • Usuário
  • Dia
  • Hora
  • Rotina
  • Módulo
  • Server
  • Versão do Schedule

Image Added


Nela, também é possível realizar uma Busca Rápida ou uma Busca Avançada. Similar a buscas realizadas pela listagem de agendamentos, no entanto a busca rápida se dá para os campos de Código da Execução ou Server

No caso da busca avançada, o filtro pode ser realizado por todos os campos, menos por Server.


Busca rápida

Image Added


Busca avançada

Image Added


Expandir
titleLimpeza de Tabelas

O menu de Limpeza de Tabelas permite a limpeza dos registros de uma determinada tabela pré-selecionada.

Painel
titleBGColorBeige
borderStylesolid
titlePré-requisitos
  • Disponível a partir da lib 20240408.

Tabelas disponíveis: 

  • Tarefas
  • EAI
  • Eventos

Image Added

Nela, também é possível realizar uma Busca Rápida ou uma Busca Avançada. Similar a buscas realizadas pela listagem de agendamentos e monitoramento


Limpar

Em caso de Busca Rápida/Avançada, a exclusão dos registros será executada respeitando o filtro aplicado. 


Exemplos de utilização

Totvs custom tabs box
tabsSem filtro,Com filtro
idsexclusao,filtro
Totvs custom tabs box items
defaultyes
referenciaexclusao


Image Added

Totvs custom tabs box items
defaultno
referenciafiltro

Busca rápida

Image Added


Busca avançada

Image Added



Painel
borderColor#0c9abe
borderStylesolid

Novidades

(informação) Confira a nova funcionalidade que permite manusear os agendamentos diretamente pela rotina via Função callSchedule

(informação) Confira como configurar a geração de notificações das execuções agendadas via schedule através dos Eventos de Progresso

Painel
borderColor#0c9abe
titleColor#f5f5f5
titleBGColor#0c9abe
borderStylesolid

DOCUMENTAÇÃO LEGADO (ANTIGO SCHEDULE)

Image AddedSchedule - Como agendar a execução de rotinas

Painel
borderColor#0c9abe
borderStylesolid

ÚLTIMAS ATUALIZAÇÕES

Atualizado recentemente
typespage
max10
themesocial
labelsschedule agendamento smartschedule task

 

Conceitos

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 Removed
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 Removed
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 Removed
Figura 3- Tela de cadastro dos Agents do Schedule Protheus
Na barra superior no botão Image Removed é 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 Removed
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 de rotinas no Schedule Protheus

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 Removed
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 Removed
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 Removed e a tela de cadastro de recorrência é aberta.
Image Removed
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 Removed
Figura 8 - Rotinas agendadas e seus eventos associados.

Monitor da Fila do EAI

Na interface do Schedule Protheus é possível verificar as mensagens trafegadas no EAI Protheus. No Schedule, selecionando EAI a fila de transações é apresentada.
Image Removed
Figura 9 - Fila de transações do EAI Protheus

Aqui é possível verificar o status das mensagens recebidas e enviadas pelo EAI Protheus, bem como realizar o gerenciamento das mensagens. Na barra superior, existem quatro botões com as seguintes funções:
Image Removed
O Primeiro botão permite que as mensagens com Falha de Processamento ou Bloqueadas voltem para o status de Aguardando Processamento. Somente mensagens do tipo Assíncronas permitem o reprocessamento. Mensagens síncronas entram em estado de Falha e não são mais reprocessadas. As mensagens Assíncronas sofrem quatro tentativas de reprocessamento automaticamente e após isto, somente são reprocessadas com a intervenção da funcionalidade do primeiro botão.
O segundo botão bloqueia uma mensagem, e seu processamento não será realizado, a menos que a funcionalidade de Reprocessar seja invocada.
O terceiro botão (lupa) permite que sejam visualizadas as mensagens originais (mensagem original é a mensagem que originou o processo) ou as mensagens de resposta (o retorno das mensagens originais). O último botão atualiza a interface das mensagens.
Na parte inferior é possível verificar o Status de Processamento das mensagens. Lembrando que e o EAI Protheus, tal qual o Schedule Protheus não faz o processamento da mensagem. A mensagem é processada por uma rotina específica, normalmente conhecida como Adapter EAI. As informações mostradas na parte inferior refletem o processamento desta rotina. Na lupa da parte inferior é possível conferir mais detalhes do processamento.
Image Removed
Figura 10 - Detalhes das tarefas do EAI Protheus

Limpeza de tabelas do Schedule Protheus

É possível através da interface do Schedule Protheus apagar registros das tarefas, da fila de mensagens do EAI Protheus ou ainda dos eventos associados. Para isto, posicione em Limpeza de tabelas.
Image Removed
Figura 11 - Limpeza de tabelas do Schedule Protheus

É possível selecionar qual o tipo de tabela que se deseja apagar os registros e ainda selecionar um filtro para este procedimento:
Image Removed
Figura 12 - Escolhida a tabela EAI, é possível realizar o procedimento junto com um filtro. No exemplo acima, selecionamos a tabela EAI e vamos agora apagar somente os registros que estão bloqueados. Note que é possível incluir novos filtros para o procedimento.
Image Removed
Figura 13 - Selecionado o filtro 'bloqueado', para que sejam trazidos somente os registros da fila do EAI que estão bloqueados. Somente os registros bloqueados serão trazidos. Clicando no botão excluir, no canto superior direito, os registros são excluídos. Âncora_Ref402025770_Ref402025770 Preparando uma rotina para ser agendada no Schedule Protheus

 

Considerações sobre rotinas agendadas

Criar uma rotina para ser agendada no Schedule Protheus é algo simples, porém, alguns cuidados devem ser observados. Existem algumas regras e definições que devem ser observadas no processo. Consumo de memória, travamento do serviço e desempenho são preocupações a serem tomadas pela rotina que foi agendada, e nunca pelo Schedule Protheus.
Outro cuidado que deve ser tomado ao preparar uma rotina para ser executada via Schedule, ou em qualquer job, é com relação a componentes de interface. Uma rotina que será executada apenas no server não pode ter interação com componentes que precisam de cliente para serem criados. O uso indevido desses componentes irá gerar um erro de comunicação e consecutivamente irá interromper o processamento.
Vale ressaltar que, o Schedule Protheus apenas aciona a rotina agendada e os problemas mencionados acima não estão relacionados a ele.

Agendamentos atrasados

O Schedule Protheus mantém um controle interno dos agendamentos que não foram realizados. Devido a esta característica, caso existam agendamentos que não foram executados no momento correto ele irá iniciar em sequência todos os agendamentos que já deveriam ter sido iniciados até que o processo seja normalizado. Vejamos o exemplo a seguir:
Image Removed
Figura 14- Exemplo de agendamento de rotina no Schedule Protheus No exemplo acima, agendamos a rotina TesteSch e vamos então definir uma recorrência para este agendamento:
Image Removed
Figura 15 - Exemplo de agendamento com recorrência no Schedule Protheus Como mostra na figura 15, o processo deverá ser realizado diariamente, todos os dias da semana, sem data de término, com 36 execuções diárias, com intervalo de 30 minutos entre as execuções, com início em 27/10/14 as 00:00h. Clicamos no botão execuções e verificamos as execuções que serão agendadas. Perceba que, se estivermos cadastrando este processo as 10:00h, ao salvarmos o agendamento estaremos com 21 agendamentos atrasados (um a cada meia hora, desde as 00:00). O Schedule Protheus então irá iniciar estes processos sequencialmente, até que todos os agendamentos atrasados sejam normalizados, voltando assim a respeitar os intervalos configurados. Esta característica também se aplica aos casos em que o servidor foi parado por qualquer motivo e o processo não pode ser inicializado no momento correto.

Criando uma rotina de Processo Especial no Schedule Protheus

Uma rotina de Processo Especial é uma rotina que não possuí a rotina estática Scheddef definida. Nestes casos a rotina agendada passa os seus parâmetros diretamente. Neste cenário a montagem do ambiente não é realizada, devendo ser tratada internamente na rotina que foi agendada. Também não é realizado o controle em semáforo da rotina agendada. Isto quer dizer que, se houver dois agendamentos da mesma rotina para o mesmo horário ou ainda se, devido a uma parada no sistema ou uma configuração que permita que existam agendamentos atrasados ou ainda se a rotina estiver com a recorrência cadastrada como sempre ativo e houver threads de agent livres, a rotina pode ser executada mais de uma vez ao mesmo tempo.
No exemplo abaixo, vamos cadastrar uma rotina que não possuí SchedDef definida:
Image Removed
Figura 16 - Cadastramento de uma rotina de processo especial No exemplo acima, cadastramos a rotina TesteSch, enviando para a rotina três parâmetros: TesteSch('001',2,'003') - Uma string 001, um numérico 2 e uma segunda string 003. Como se trata de um processo especial, o ambiente não será montado pelo Schedule Protheus, porém serão enviadas informações para a rotina para que isto seja realizado, caso necessário. Desta forma, é enviado um array para o processo especial, com as seguintes características:
aArray[1] – Primeiro parâmetro passado na rotina ('001');
aArray[2] – Segundo parâmetro passado na rotina (2);
aArray[3] – Terceiro parâmetro passado na rotina ('003');
aArray[4] – Empresa associada ao agendamento da rotina;
aArray[5] – Filial associada ao agendamento da rotina;
aArray[6] – Usuário associado ao agendamento;
aArray[7] – Id do agendamento.
Desta maneira, são sempre enviados primeiramente os parâmetros passados na rotina para logo em seguida serem enviadas as informações de empresa, filial, usuário e Id da tarefa.
Vejamos um exemplo de código de processo especial: Image Removed
Figura 17 - Exemplo de rotina de processo especial No exemplo acima, a rotina irá receber os parâmetros necessários e irá executar a abertura do ambiente. Lembrando que neste caso, se houverem agendamentos que devam ser executados no mesmo horário e threads disponíveis a rotina poderá ser chamada mais de uma vez ao mesmo tempo.
Vamos observar, no console do Appserver Protheus o resultado deste processamento, lembrando que todos os serviços do Schedule Protheus devem estar ativos para que o agendamento seja executado:
Image Removed

Criando uma rotina com Scheddef no Schedule Protheus sem receber parâmetros

Podemos criar uma rotina agendada no Schedule Protheus declarando na rotina a função Static Scheddef. Para mais informações sobre a Scheddef consulte a página no TDN.
Abaixo, o exemplo de cadastramento de uma rotina que possui Scheddef definida, mas não possui nenhum Pergunte (SX1) para a rotina:

Image Removed
Figura 18 - Exemplo de rotina com Scheddef e sem Pergunte
No exemplo acima, nossa rotina será chamada pelo Schedule Protheus com o ambiente já aberto, porém, não receberá nenhum parâmetro. Esta rotina também será processada como um Processo (P).
Vamos realizar o agendamento desta rotina e clicar no botão parâmetros:
Image Removed
Figura 19 - Exemplo de agendamento de rotina com Scheddef sem parâmetros No caso acima a rotina não possui parâmetros para serem visualizados. Vamos então agendar esta rotina para ser executada na empresa 19, filial D RJ 01 e verificar o retorno no console.log.
Image Removed
Não foi necessária a abertura do ambiente e nestes casos, caso existam dois processos agendados da mesma rotina para o mesmo momento, o processo é serializado, para que o segundo processo só tenha início ao término do primeiro.

Criando uma rotina com Scheddef no Schedule Protheus recebendo parâmetros do SX1

Vamos agora criar uma nova rotina com Scheddef, passando um pergunte (SX1) para a rotina.

Image Removed
Figura 20 - Função com Scheddef definida com um grupo de perguntas

Vamos agora agendar esta rotina, e clicar no botão parâmetros:
Image Removed
Figura 21 - Configuração de Schedule com grupo de perguntas Perceba que a ordem informada (Data Inicial e Data final) não foram passíveis de serem selecionadas, pois está definido no nosso Scheddef que o tipo de função era um Processo (P).
Vamos verificar o resultado no console.log
Image Removed

Criando uma rotina de relatório com Scheddef no Schedule Protheus recebendo parâmetros do SX1

Vamos agora realizar o mesmo exemplo anterior, mas agora a rotina a ser agendada será do tipo Relatório (R). Neste caso, a ordem poderá ser configurada. Image Removed
Figura 22 - Exemplo de rotina de relatório com grupo de perguntas Image Removed
Figura 23 - Exemplo de um agendamento e rotina de relatório. Neste exemplo a aba 'Dispositivo' está visível e a ordem pode ser configurada No console.log, podemos ver o resultado da rotina.
Âncora_GoBack_GoBack Image Removed
Status do documentoConcluído
Data28/10/2014
Versão1.0
Versão anterior1.0
Autores

Jandir Deodato De Souza Silva

Índice resumido
Índice
maxLevel1
indent10px
Índice Índiceoutlinetrueindent10px