Histórico da Página
...
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 Fluigpostar uma mensagem em uma fila JMS. Abaixo um exemplo de código que realiza esta chamada, que pode ser encontrado em "alert-sender-sample/impl/src/main/java/com/fluig/StartupLoader.java":
Bloco de código | ||
---|---|---|
| ||
@EJB(lookup = AlertAppSenderService.JNDI_REMOTE_NAME) private AlertAppSenderService appSenderService; public void registerMyApplicationApplicationpackage com.fluig; import java.util.HashMap; import javax.annotation.PostConstruct; import javax.ejb.Singleton; import javax.ejb.Startup; import javax.jms.JMSException; import javax.jms.ObjectMessage; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueConnectionFactory; import javax.jms.QueueSender; import javax.jms.QueueSession; import javax.naming.InitialContext; import javax.naming.NamingException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Registra o aplicatico como listener para os alertas. */ @Startup @Singleton public class StartupLoader { private transient Logger log = LoggerFactory.getLogger(StartupLoader.class); /* * Nome da fila que será usada para receber os alertas. */ private static final String QUEUE = "AlertSenderSampleQueue"; /** * ID do tenante para o qual será registrado. Quando houver mais de um * tenante, deverá fazer uma chamada para cada tenante. */ private static final Long TENANT_ID = 10097l; @PostConstruct private void startup() { log.info("Inicializando aplicativo"); try { InitialContext ic = new InitialContext(); appSenderService .registerApplication( "MyApplication", "My custom application to send notifications", "java:global/myapp/my-app-sender/MySenderService!com.totvs.technology.foundation.alert.sender.AlertSenderApp", myTenantId); Queue q = (Queue) ic .lookup("java:global/TOTVSTechAsyncQueue"); QueueConnectionFactory factory = (QueueConnectionFactory) ic .lookup("java:global/FluigRemoteXAConnectionFactory"); QueueConnection connection = factory.createQueueConnection(); QueueSession session = null; QueueSender sender = null; try { session = connection.createQueueSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE); sender = session.createSender(q); HashMap<String, Object> values = new HashMap<String, Object>(); // Código do aplicativo. values.put("applicationKey", "alert.app.sender.sample"); // Chave da descrição do aplicativo. values.put("descriptionKey", "alert.app.sender.sample.description"); // Nome da fila criada no JBoss para receber os alertas. values.put("queueName", QUEUE); // ID do tenante. values.put("tenantId", TENANT_ID); ObjectMessage msg = session.createObjectMessage(); msg.setObject(values); msg.setStringProperty("action", "registerAlertAppSender"); sender.send(msg); log.info("Inicialização do aplicativo OK"); } finally { if (sender != null) { sender.close(); } if (session != null) { session.close(); } if (connection != null) { connection.close(); } } } catch (NamingException ex) { log.error("Nao foi possivel registrar o serviço de notificação via whatsapp"); ex.printStackTrace(); } catch (JMSException ex) { log.error("Nao foi possivel registrar o serviço de notificação via whatsapp"); ex.printStackTrace(); } } } |
Os parâmetros necessários são:
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas