Árvore de páginas

Versões comparadas

Chave

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

A partir da versão 1.2.0 é possível criar novas formas de envio de notificações para os usuários do Fluig. Isto pode ser feito através de aplicativos. Estes aplicativos podem ser instalados no Fluig e, a partir daí, o sistema utilizará o aplicativo para enviar notificações. Este tutorial tem o objetivo de mostrar passo-a-passo como criar, instalar e utilizar um aplicativo de envio de notificações no Fluig.

Projeto de exemplo

Para facilitar o entendimento e desenvolvimento de aplicativos, foi gerado um projeto de exemplo. Neste projeto, foi implementado um aplicativo que salva as notificações em arquivos ".txt". Para testá-lo, basta seguir os seguintes passos:

Aviso

Não executar estes passos em produção!

  1. Baixar o projeto: Clique aqui
  2. Configurar no arquivo "/alert-sender-sample-impl/src/main/resources/config.properties" a pasta onde o aplicativo irá salvar as notificações
  3. Compilar o projeto (é um projeto padrão maven, para compilar, executar "mvn clean install" na raíz do projeto)
  4. Fazer deploy do arquivo "/alert-sender-sample-server/target/alert-sender-sample-server.ear" em um servidor com o Fluig instalado
  5. Acessar o Fluig e gerar eventos que enviem notificações (ex. apoiar um post)
Deverão ser criados arquivos ".txt" com as notificações geradas na pasta configurada no passo 2.

 

Informações

Este projeto de exemplo pode servir de base para implementação de aplicativos reais de envio de notificações.

 

API de Notificações

Para trabalhar com aplicativos de envio de notificações no Fluig, é necessário criar um projeto Java que será publicado no servidor do produto. Este projeto deve importar a API de Notificações, com o seguinte trecho de código no arquivo "pom.xml":

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

Cadastro de aplicativos no Fluig através da API de Notificações

Para que um aplicativo possa ser utilizado pelo Fluig para enviar notificações, este deve ser cadastrado na Central de Notificações do sistema. Para isto, é necessário realizar uma chamada ao método "com.totvs.technology.foundation.alert.service.AlertAppSenderService.registerApplication()", presente na API de Notificações do Fluig. Abaixo um exemplo de código que realiza esta chamada:

Bloco de código
languagejava
@EJB(lookup = AlertAppSenderService.JNDI_REMOTE_NAME)
private AlertAppSenderService appSenderService;


public void registerMyApplicationApplication() {
				
	appSenderService
		.registerApplication(
			"MyApplication",
			"My custom application to send notifications",
			"java:global/myapp/my-app-sender/MySenderService!com.totvs.technology.foundation.alert.sender.AlertSenderApp",
			myTenantId);
		
}

Os parâmetros necessários são:

  1. applicationKey: É uma string que será o identificador único para o aplicativo. Através desta string a Central de Notificações fará todo o gerenciamento do aplicativo.
  2. description: É a descrição do aplicativo. Pode ser um texto plano ou uma chave para tradução (ex: app.my.application). Para que seja feita a tradução, a chave deve estar previamente cadastrada no módulo I18n, no bundle "foundation_alert". Caso seja inserido um texto plano, este será exibido sem tradução.
  3. jndiName: É o nome JNDI que a Central de Notificações utilizará para fazer lookup e invocar o aplicativo para envio de notificações.
  4. tenantId: O id do tenant onde o aplicativo será instalado.
Informações

É uma boa prática é fazer o cadastro do aplicativo no momento do deploy no servidor ou no momento da criação de um novo tenant. O projeto de exemplo já contém código com este comportamento.

 

Configurações de envio de notificações por usuário

Quando um novo aplicativo for instalado na Central de Notificações, todos os usuários do tenant poderão configurar se desejam ou não receber notificações através do aplicativo. Isto pode ser feito na tela de configurações. Por padrão, ao instalar um novo aplicativo, todos os usuários do tenant passarão a receber notificações através daquele aplicativo. Abaixo o exemplo da tela de configurações depois de instalado o projeto de exemplo.

Enviando notificação através do aplicativo

Para que a Central de Notificação do Fluig invoque o aplicativo para enviar notificações, o aplicativo deve obrigatoriamente implementar a interface "com.totvs.technology.foundation.alert.sender.AlertSenderApp" da API de notificações. No cadastro do aplicativo, o JNDI informado deve ser o nome para fazer lookup desta implementação. Abaixo um exemplo  simples de implementação desta interface:

Bloco de código
languagejava
@Stateless(name = "myapp/MySenderService", mappedName = "myapp/MySenderService")
public class MySenderServiceBean implements AlertSenderApp {
	
	@Override	
	public void send(final Long alertId) {
		
		/* Meu código de envio da notificação */
		
	}
}

Quando o usuário receber um alerta, a Central de Notificações vai validar se aquele usuário está configurado para receber notificações por este aplicativo. Caso esteja, a Central invocará o método "send()", através do lookup do JNDI cadastrado para o aplicativo.