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.

Inscrição por Grupo de Usuários

  • A partir da lib 20241125 (release 12.1.2410) será possível realizar inscrição de Grupos de Usuários nos eventos, desta forma, todos os membros do grupo indicado receberão as notificações sem a necessidade de realizar a inscrição usuário por usuário.
  • Clientes migrados para a release 12.1.2410 a partir da lib 20241125 já contam com esta funcionalidade, enquanto clientes migrados em libs anteriores deveram proceder com a atualização do FwRebuildIndex para criação dos campos necessários.
  • Apenas usuários do grupo Administradores podem realizar este tipo de inscrição.
  • Usuários não Administradores poderão apenas visualizar as inscrições dos grupos aos quais pertencem. 
  • Para maiores detalhes consultar Event Viewer - Inscrição de Eventos.

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, para ativação deste comportamento é necessário executar a rotina de atualização FwRebuildIndex - Rebuild de índices.

Obs.: 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 o novo layout da tela de Inscrições e o novo recurso de inscrição por Grupo de Usuários em Event Viewer - Inscrição de Eventos.

(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

(informação) Confira os novos metodos para emissão de erros controlados das classes tNewProcess (ControlledErrorEV) e Processa (ErrorProcessa)