Warning |
---|
title | Melhoria ainda não disponível |
---|
|
Esta melhoria só estará disponível a partir de outubro de 2015. |
O sincronizador de carga inicial
O EAI Protheus possui um sincronizador de carga inicial para os cadastros que podem ser trafegados via EAI. É possível, dentre os adapters cadastrados, escolher qual destes se deseja iniciar a sincronização, enviando todos os registros impactados por aquele adapter via EAI para o outro sistema.
Este sincronizador é somente para a sincronização de carga inicial entre uma base Protheus populada e uma outra base. Não há controle se o registro já existe ou não no outro sistema. No cenário ideal do sincronizador os dados existem no Protheus e não existem no outro sistema integrado. Uma vez iniciado o sincronizador ele irá enviar, respeitando as regras do adapter selecionado, todos os registros via EAI para o outro sistema escolhido.
O sincronizador é um facilitador de implantação para enviar, a partir do Protheus, os registros de um determinado cadastro através do EAI. O sincronizador não é responsável por realizar as gravações de de-para, internalid (quando tratar-se de Mensagem Única TOTVS)ou processar a regra de negócio envolvida nas integrações.
Note |
---|
|
Este sincronizador deve ser utilizado somente no momento da implantação das integrações, e nunca durante a operação do sistema. |
Anchor |
---|
| _selecionandoadapter |
---|
| _selecionandoadapter |
---|
|
Selecionando o adapter para a sincronização inicial
Para selecionar os adapters para sincronização é necessário que este já esteja cadastrado no grupo no qual a rotina foi iniciada. Para verificar como cadastrar um adapter, verifique o tópico do cadastro de adapter do EAI Protheus.
Vamos selecionar a opção Sinc. Carga inicial (APCFG020A) no menu do configurador Protheus:
Opção do menu do sigacfg, onde é possível verificar o sincronizador EAI
Selecionando a opção do sincronizador é apresentado o browse com todos os adapters já cadastrados no Protheus
Tela do sincronizador EAI
O sincronizador compartilha os dados com os outros grupos de empresa do Protheus, e respeita as configurações do adapter EAI. Desta maneira, para iniciar o sincronizador para um outro grupo é necessário acessar o módulo configurador deste grupo. A rotina de sincronização não pode ser acessada por mais de um usuário ao mesmo tempo.
Podemos selecionar então os adpaters os quais iremos realizar a sincronização. Basta selecionar um adapter e clicar em Sincronização inicial. O sincronizador irá tentar identificar o alias principal relacionado à aquele adapter. Para isto ele busca se existe modelo de dados Protheus (modeldef) dentro do adapter e em caso positivo, assume como alias principal a tabela master deste modelo. Caso não exista modelo de dados e somente para as Mensagens Única TOTVS o sincronizador irá buscar o conteúdo do campo Alias(XX4_ALIASP) do cadastro do referido adapter. Caso exista valor neste campo, este será assumido como alias a ser utilizado. Caso as duas alternativas acima não sejam capazes de identificar o alias da tabela o sincronizador buscará as informações do campo SYS_OBJ do SX2 e verificará através das tabelas relacionadas ao adapter o alias principal. Caso isto não seja possível, uma mensagem adverte o usuário que aquele adapter não está pronto para sincronização:
Mensagem indicando ao usuário que o adapter não está preparado para a sincronização
Para um adapter de Mensagem Única TOTVS existe a opção para o usuário de preencher o campo Alias, do cadastro de adapter. Este campo é responsável por enviar uma série de informações para o outro sistema. Para entender o conceito deste campo, verifique o tópico do cadastro de adapter do EAI. Se nenhuma das opções acima puder ser verificada a equipe responsável pelo adapter deverá ser acionada.
Caso o adpater esteja em condições de sincronização o sistema calcula e apresenta um range de threads disponíveis para realizar o processamento (no mínimo 1 e no máximo 9 threads). Um número maior de threads torna o processo mais rápido, pois são realizados envios de mensagens de forma paralela. Porém isto consome mais recursos do sistema e pode até mesmo sobrecarregar o sistema que irá receber as mensagens.
Note |
---|
|
Outro ponto a se considerar é que, em um processo multi-thread, em um erro onde o servidor pare de responder (queda de energia, erro em alguma rotina relacionada) o sistema pode posteriormente não conseguir iniciar o processamento no ponto exato de parada, podendo iniciar alguns registros antes ou depois, pois o processo ocorreu em paralelo. |
Já o processo com uma única thread tende a ser mais demorado porém em caso de erro fatal o processo recomeçará do ponto exato onde foi interrompido. Estes pontos devem ser levados em consideração no momento de escolher o número de threads a utilizar.
Tela de escolha de threads de execução
O sistema calcula o número máximo de threads de acordo com a quantidade de registros existentes para envio. Após selecionar a quantidade de threads e clicar em Finalizar a mensagem é apresentada, e os registros começam a ser enviados.
Mensagem que indica que o processo de sincronização começou
Enquanto a sincronização deste adapter não terminar com sucesso ou não for bloqueada não é possível iniciar uma sincronização do mesmo adapter.
Mensagem indicando que já existe sincronização para o adapter
A partir deste momento para cada linha do alias associado ao adapter a integração será chamada.
A tela dos Logs de Sincronização
Existe uma interface própria para acompanhamento dos eventos enviados para sincronização. Esta tela permite através de gráficos e outras formas de visualização controlar o progresso da sincronização. Para acessar esta rotina, na tela de sincronização do EAI selecione em ações relacionadas/log de sincronização.
Image Added
Mensagem indicando que já existe sincronização para o adapter
Vamos explicar cada componente desta tela e o seu comportamento.
Interface superior da tela A interface superior da tela de logs de sincronização controla o tempo de atualização da tela e é responsável pela maioria dos comandos que podem ser executados aqui.
Image Added
Parte superior da tela de logs de sincronização
São recursos desta interface:
- Atualizar a cada - A partir deste combo é possível selecionar o intervalo de atualização da tela. A tela de Logs de sincronização é atualizada automaticamente, respeitando o intervalo definido pelo usuário através do combo atualizar a cada. A tela é automaticamente atualizada, mas de maneira assíncrona. É enviado um sinal para que sejam recalculados todos os valores e as tabelas são atualizadas, e a tela é atualizada com base nos valores já existentes. Estes valores são recalculados por outra thread, que atualiza a tabela de sincronização. Na próxima atualização de tela, estes valores são lidos e um novo pulso é enviado para iniciar o recálculo;
- Texto com informaões - Este texto (no nosso exemplo "Não há dados sendo sincronizados no momento" indica o status geral do sincronizador EAI. Ele é responsável por indicar se os registros estão sendo processados, se não existe mais processamento ou se o sincronizador está em tentativa de parar (em processos de multiplas threads a parada do sincronizador pode demorar, pois é necessário parar todas as Threads antes);
- Botão Iniciar - Caso o sincronizador esteja parado, é possível reiniciar o sincronizador;
- Botão Parar - Responsável por parar o sincronizador (em processos de multiplas threads a parada do sincronizador pode demorar, pois é necessário parar todas as Threads antes);
- Botão reprocessar - Envia um sinal para que ocorra o reprocessamento de sincronização com erro (erro causado no sistema) ou por retorno negativo de outro EAI (possível somente após o término do processo). O Sincronizador não irá chamar o adapter novamente. Ele irá carregar as mensagens já enviadas e irá realizar o reenvio das mesmas e o adapter será chamado no retorno das mensagens enviadas.;
- Botão Bloquear/Excluir - Botão responsável por bloquear um processo de sincronização. Processos bloqueados não podem ser reinicializados. Caso um registro já esteja bloqueado é possível excluir este registro. Assim sendo, só é possível excluir um registro que já esteja bloqueado. Para bloquear registros que estejam com o status de executando é necessário parar o sincronizador.
Grid dos processos em fila Neste grid é possível visualizar todos os adapters selecionados para sincronização e o seu status de processamento.
Image Added
Grid dos processos na fila
Nesta grid são apresentadas as sincronizações que estão na fila para envio. Cada adapter é concatenado com um identificador (seu Recno na tabela de sincronização) para que seja possível quando existirem mais de um adapter na fila a sua identificação. Com um duplo clique na coluna de informações é possível expandir esta informação (na parada do sincronizador por erro fatal em alguma aplicação, parte do error.log é gerado aqui e é possível visualizá-lo com o duplo clique). Cada registro possui também o seu status:
Image Added
Status de sincronização
São status de sincronização:
- Erro - Ocorreu um erro (error.log, etc) em alguma rotina relacionada (adapter, próprio sincronizador, etc) que inviabiliza o envio das mensagens. O sincronizador é parado, e nenhum outro adapter escolhido para sincronização será integrado até a verificação deste erro. Desta maneira, enquanto existir um adapter com status de erro na sincronização nenhuma outra sincronização será realizada. Para este adapter existirão duas alternativas:
- Reiniciar o processamento do adapter (ele irá tentar recomeçar do ponto onde houve o erro);
- Bloquear o processamento daquele adapter (ele não poderá mais ser reprocessado).
- Executando - O processo já iniciou, e já existem mensagens enviadas;
- Aguardando execução - O processo ainda não iniciou, e nenhuma mensagem foi enviada;
- Finalizado com sucesso. Todos os registros passíveis de envio foram enviados e todos obtiveram retorno positivo do outro EAI;
- Processo bloqueado - O processo foi bloqueado pelo usuário, não sendo mais processado;
- Processo finalizado com mensagens não processadas - Todos os registros passíveis de envio foram enviados, mas alguns obtiveram retorno negativo do outro EAI;
- Reprocessamento - Esta mensagem foi sinalizada para reprocessamento;
- Reprocessamento com erros - Este registro foi reprocessado, mas houve retorno negativo do outro EAI para uma ou mais mensagens.
Anchor |
---|
| _processadosadp |
---|
| _processadosadp |
---|
|
Gráfico de processados por adapter Este gráfico de barras mostra a quantidade de registros enviados e a quantidade que resta para envio deste adapter (este gráfico é referente ao primeiro envio das mensagens, desta forma para mensagens reprocessadas ele não é alterado).