Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Entendendo os conceitos para criação de notificações personalizadas

...

Módulos de Notificações

Os módulos de notificação são apenas agrupadores, para que as notificações semelhantes se apresentem agrupadas para o usuário.

Os módulos padrão do fluig são:

Colaboração: notificações de apoiar, comentar, etc.

Documentos: notificações de indicação de leitura, atualização de versão, etc.

Processos: notificações de movimentação de processo, tarefas atrasadas, etc.

Portal: notificações de alteração no layout de páginas, etc.

É possível criar novos módulos de notificações. No projeto exemplo, é criado um novo módulo chamado "Notificações de RH".


Eventos de Notificações

Antes de criar notificações personalizadas, é importante que fique claro o conceito de "Eventos de Notificações". Um evento é uma representação de alguma ação que pode gerar notificações no fluig. O evento contém todas as configurações das notificações.

...

Para criar notificações personalizadas, é necessário criar novos eventos de notificações. No projeto exemplo, é criado um novo evento chamado "Holerit disponível no RH online".


Atributos de Eventos de Notificações

Como dito anteriormente, um evento contém as configurações das notificações. Estas configurações são:

...

  • Apenas para administradores: Indica se aquele tipo de notificação é exclusivo para administradores da empresa (tenant).


Notificações

As notificações devem ser criadas obrigatoriamente com um evento associado. Desta forma a Central de Notificações poderá fazer o gerenciamento de criação, envio e exibição da notificação. As notificações criadas contém alguns objetos associados, que são:

...

  • Metadados: São dados do tipo chave-valor que podem ser associados à notificação. Eles podem ser utilizados por aplicativos customizados de envio de notificações.


Ações de Notificações

Uma notificação pode disponibilizar uma ou mais ações. Estas ações são informadas no momento da criação da notificação. As ações são individuais por notificação, não sendo associadas ao evento relacionado à ela. As ações possuem os seguintes atributos:

...

Bloco de código
languagehtml/xml
<dependency>
    <groupId>com.fluig</groupId>
    <artifactId>foundation-alert-api</artifactId> 
    <version>1.2.0</version>
    <scope>compile</scope>
</dependency>


Cadastrando módulos de Notificações

Para criação de um novo módulo de notificações, é necessário realizar uma chamada ao método "registerModule", da interface "com.totvs.technology.foundation.alert.service.AlertModuleService". Um exemplo de chamada deste método segue abaixo:

...

  1. moduleKey: Chave única de identificação do módulo
  2. description: É a descrição do módulo. Pode ser um texto plano ou uma chave para tradução. Para que a tradução funcione, a chave deve estar previamente cadastrada no serviço I18n, no bundle "foundation_alert".
  3. tenantId: Id do tenant para qual o módulo está sendo criado.


Cadastrando eventos de Notificações

Para criação de um novo evento de notificações, é necessário realizar uma chamada ao método "createEvent", da interface "com.totvs.technology.foundation.alert.service.AlertEventService". Um exemplo de chamada deste método segue abaixo:

...

  1. eventKey - String única que representa o evento no fluig.
  2. required - Indica se o evento é requerido. Caso seja, o usuário não conseguirá configurar para não receber notificações do evento.
  3. descriptionKey - Descrição do evento. Pode ser um texto plano ou uma chave para obter descrição traduzida no I18n. Caso queira utilizar a tradução, a chave deve estar previamente cadastrada no I18n, no bundle "foundation_alert".
  4. singleDescriptionKey - Descrição da ação feita por um usuário. Pode ser um texto plano ou uma chave para obter descrição traduzida no I18n. Caso queira utilizar a tradução, a chave deve estar previamente cadastrada no I18n, no bundle "foundation_alert".
  5. groupDescriptionKey - Descrição da ação feita por por vários usuários. Pode ser um texto plano ou uma chave para obter a descrição traduzida no I18n. Caso queira utilizar a tradução, a chave deve estar previamente cadastrada no I18n, no bundle "foundation_alert".
  6. eventIcon - Ícone que representa o evento (opcional). Este ícone será exibido pelo sistema em notificações que não tenham um usuário que a enviou. Caso tenha um usuário "enviador", o sistema exibirá a foto deste usuário. Caso haja mais de um usuário "enviador", o sistema mostrará a foto do último usuário que enviou a notificação.
  7. moduleId - Módulo ao qual pertence este evento
  8. grouped - Indica se a notificação pode ser agrupada por ação e objeto.
  9. canRemove - Indica se a notificação pode ser removida.
  10. removeAfterExecAction - Indica se a notificação é removida após ser executada uma ação.
  11. onlyAdmin - Indica se o evento é válido somente para usuários administradores.
  12. tenantId - Empresa (tenant) para a qual o evento está sendo cadastrado.



Enviando Notificações

Para enviar uma notificação é necessário realizar uma chamada ao método "sendAlert", da interface "com.totvs.technology.foundation.alert.service.AlertService". Um exemplo de chamada deste método segue abaixo:

Bloco de código
languagejava
@Stateless(name = "AlertCreator", mappedName = "AlertCreator")
public class AlertCreator {
	
	@EJB(lookup = AlertService.JNDI_REMOTE_NAME)
	private AlertService alertService;
	
	public void sendHoleritAlert() {
		
		alertService.sendAlert("MY_EVENT", loginUserThatSendsTheNotification, loginUserThatIsGoingToReceiveTheNotification, objectAttached, placeWhereTheEventOccurs, actions, metadata);
				
	}
}

Os parâmetros para execução do método são:

  1. eventKey - Chave do evento cadastrado para envio de notificações.
  2. loginSender - login do usuário que envia a notificação. (opcional)
  3. loginReceiver - login do usuário que irá receber a notificação.
  4. object - objeto associado à notificação (opcional) - implementação padrão para a interface "AlertObject" é a classe "com.totvs.technology.foundation.alert.GenericAlertObject", da API de Notificações do fluig.
  5. place - lugar onde a notificação foi gerada (opcional) - objeto e lugar são tratados com a mesma estrutura de dados - implementação padrão para a interface "AlertObject" é a classe "com.totvs.technology.foundation.alert.GenericAlertObject", da API de Notificações do fluig.
  6. actions - ações disponibilizadas pela notificação (opcional) -  implementação padrão para a interface "AlertAction" é a classe "com.totvs.technology.foundation.alert.GenericAlertAction", da API de Notificações do fluig.
  7. metadata - metadados da notificação (opcional).


Desabilitando eventos de Notificações

É possível desabilitar qualquer evento de notificações. Atualmente este serviço está disponível na API Pública do fluig. Uma vez desabilitado, o sistema não gerará mais nenhuma notificação para aquele tipo de evento, e também não o exibirá mais na tela de configurações.

Nota
titleAtenção

Obrigatoriamente o valor informado deve ser um formulário. Outros tipos de documentos não serão tratados e ocorrerá erro na execução do evento.