Histórico da Página
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 | ||||||||
---|---|---|---|---|---|---|---|---|
|
Painel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
ÚLTIMAS ATUALIZAÇÕES
|
Schedule Protheus
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.
...
Monitoramento de Agents
...
Agendamento de rotinas no Schedule Protheus
...
- 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 e a tela de cadastro de recorrência é aberta.
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.
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.
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:
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.
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.
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:
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.
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.
...
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:
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:
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
...
Criando uma rotina com Scheddef no Schedule Protheus sem receber parâmetros
...
Criando uma rotina com Scheddef no Schedule Protheus recebendo parâmetros do SX1
...
Criando uma rotina de relatório com Scheddef no Schedule Protheus recebendo parâmetros do SX1
...