Event Viewer
Aqui você encontra todas as documentações e novidades sobre Event Viewer

 

Introdução

EventViewer é o processo padrão de notificações do Protheus que permite aos usuários se inscreverem em notificações específicas do ERP.
Tem como objetivo possibilitar a emissão de mensagens do ERP de seus processos que ocorrem em segundo plano ou até mesmo que ocorrem em seções de outros usuários e que um determinado usuário tenha interesse.

Fluxo Macro

  • Com exceção as notificações de Progresso e Scheduller, todas as demais são emitidas apenas para os usuários inscritos;
  • Os gatilhos são definidos nas rotinas do ERP Protheus, podendo também ser implementados em customizações;
  • As notificações são geradas no momento do acionamento do gatilho para os usuários inscritos no evento.
Benefícios
  • Garantir monitoramento de ações sensíveis no ERP;
  • Melhorar a dinâmica entre os processos e áreas;
  • Possibilitar melhor acompanhamento de processos em segundo plano;
  • Extensão para outras funcionalidades (ex.: Meu Protheus, e-mail).
Eventos

Diferente do comportamento comumente visto nas mídias sociais, nas notificações Protheus os usuários precisam determinar quais eles desejam receber, sendo possível apenas para usuários do grupo de Administradores realizar a inscrição de outros usuários.

Para realizar inscrição em um evento o usuário deverá acessar o menu “Miscelânea” e selecionar a rotina “Inscr. Event Viewer”, enquanto os usuários com acesso ao Configurador podem realizar por meio do menu “Ambiente/Cadastros” também por meio da opção “Inscr. Event Viewer”.



Os eventos apresentados ficam armazenados na Tabela Genérica (SX5) sobre o código E3, podendo o cliente cadastrar e implementar seus próprios eventos, porém os mesmos podem ser sobrescritos caso coincidir com novos Eventos Padrões.

Visualizando Notificações

As notificações do Event Viewer podem ser acessadas por meio do ícone localizado no canto superior direito da tela principal do Protheus e a partir da lib 20240408 o ícone passa a sinalizar a existência de novas notificações, sendo:


Não possui mensagens pendentes

Existência de mensagens não lidas



A partir da lib 20240408 o comportamento das notificações do Event Viewer após sua leitura sofreu uma importante mudança, passando a não mais ser apagado e sendo mantido na base de dados com status de "Evento lido", garantindo um melhor histórico.

Em libs anteriores a notificação é apagada da base de dados após a visualização do usuário.

Como implementar uma Notificação do Event Viewer

A inclusão de notificações do Event Viewer é um recurso aberto para implementação tanto pelo Produto Padrão quanto por Clientes em suas Customizações, para isso foi disponibilizada a função EventInsert com o objetivo de registrar um Evento e consequentemente notificar todos os usuários inscritos.

Para isso, primeiramente precisamos proceder com o cadastro do evento na tabela genérica E3 (SX5), para isso deveremos acessar o Configurador no menu “Ambiente/Cadastro” e escolher a rotina “Tabelas” (CFGX016).


Importante

Para cadastro de eventos customizados recomenda – se considerar um número muito superior ao atual para o campo Chave (ex.: se a última chave da tabela E3 é 084, cadastrar customizado a partir de 300), garantindo assim uma distância maior até que novas notificações padrões sobrescrevam as customizadas.



Finalizado o cadastro, o novo evento passa a ser disponibilizado para inscrição para os usuários que selecionarem o Canal “002 – Ambientes” e a categoria “001 – Módulos” conforme abaixo:


Porém apenas com o cadastro nenhum evento será emitido para os usuários inscritos pois ainda se faz necessária a implementação do "gatilho" em uma rotina, gatilho esse que podemos programar pelo uso da função EventInsert que vamos detalhar melhor abaixo:

EventInsert( cChannel, cCateg, cEventID, nLevel, cCargo, cTitle, cMessage, lPublic )

ParâmetroTipoDescriçãoObrigatórioDeafult

cChannel

CharacterCanal do eventoX

cCateg

CharacterCategoria do eventoX

cEventID

CharacterCódigo do eventoX

nLevel

Numeric

Nível do evento, sendo:

  • 0 - Informação
  • 1 - Critico
  • 2 - Erro
X

cCargo

CharacterIdentificador auxiliar do evento
Em branco

cTitle

CharacterTítulo da mensagem do evento
Em branco

cMessage

CharacterMensagem do evento
Em branco

 lPublic 

LogicalIndica se é pública, e qualquer inscrito receberá a mensagem (.T.) ou se somente o usuário que disparou o evento.
.F.

Importante

Não é possível emitir um Evento direcionado para um determinado usuário do sistema, sempre é emitido um evento e apenas os usuários inscritos são notificados.

Exemplo
#Include "FWEVENTVIEWCONSTS.CH"

Function TstEvent(cMensagem,cTitulo)
Local cEventID	:= "061"

Default cMensagem 	:= ""
Default cTitulo 	:= "Bloqueio de Processos"

EventInsert(FW_EV_CHANEL_ENVIRONMENT /*"002"   */,; 
			FW_EV_CATEGORY_MODULES	 /*"001"   */,;
			cEventID				 /*cEventID*/,;
			FW_EV_LEVEL_INFO		 /*1       */,;
			""						 /*cCargo  */,;
			cTitulo					 /*cTitle  */,;
			cMensagem				 /*cMessage*/,;
			.T.						 /*lPublic */)

Return Nil



Novidades

(informação) Confira a nova funcionalidade de Eventos de Progresso em segundo plano em EventViewer - Eventos de Progresso

(informação) Confira os novos Eventos de Progresso dos componentes tNewProcess e Processa

(informação) Uso do Mingle para receber notificações do Event Viewer