Histórico da Página
...
Eventos globais
Os eventos globais do fluig são executados pela plataforma antes ou após alguma ação ocorrer (Ex: Aprovação de documento, movimentação de processo, publicação de comentário etc). Tais eventos podem ser personalizados através da linguagem Javascript. Os eventos são divididos em eventos do tipo before, que ocorre antes que a ação que disparou o evento seja efetivada e do tipo after, que ocorre após a ação acontecer.
Conector de Widget | ||||||
---|---|---|---|---|---|---|
|
SocialPostEventVO
Informações |
---|
Veja o exemplo em nosso repositório aqui. |
Desenvolvimento de Eventos
...
Nota | ||
---|---|---|
| ||
|
beforeSendNotification
Evento disparado antes do envio de uma notificação ao usuário. Pode ser utilizado quando for necessário adicionar alguma informação à nota ou alterar a prioridade de uma notificação, possibilitando o cancelamento do envio da notificação caso seja definida uma prioridade através do evento.
Informações | ||
---|---|---|
| ||
Por questões de segurança, somente os campos priority e note podem ser alterados. Outras alterações não serão consideradas. |
Nota | ||
---|---|---|
| ||
Caso seja lançada uma exceção através do evento a notificação não será enviada, mas esse não é o modo correto de cancelar o envio. Definir o campo priority como "NONE" impede que a notificação seja enviada sem a necessidade de lançar exceção. |
Abaixo segue um exemplo de como implementar esse evento:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
function beforeSendNotification(notification) { if (notification.eventType == "DENOUNCED_CONTENT") { notification.priority = "NONE"; } if (notification.eventType == "DOCUMENT_APPROVED") { notification.priority = "NORMAL"; } if (notification.eventType == "DOCUMENT_REPROVED") { notification.priority = "HIGH"; } if (notification.eventType == "LIKE") { notification.priority = "LOW"; } } |
São disponibilizadas algumas propriedades referentes à notificação que está sendo enviada.
Propriedade | Descrição | Tipo |
aliasSender | Alias de quem enviou a notificação. Pode vir nulo nos casos em que a notificação é enviada pelo sistema. | String |
aliasReceiver | Alias de quem vai receber a notificação. | String |
place | Lugar onde foi feita a ação que gerou a notificação. Pode vir nulo quando não for um lugar socializavel. | |
object | Objeto sobre o qual foi feita a ação que gerou o alerta. | |
eventType | Tipo do evento que gerou a notificação. | String |
metadata | Metadados da notificação. | Hashmap <String, String> |
priority | Prioridade da notificação. Valores válidos: NONE, LOW, NORMAL, HIGH. | String |
note | Nota enviada junto à notificação. | String |
Informações |
---|
Veja o exemplo (event-notification) no repositório do fluig clicando aqui. |
afterSendNotification
Evento disparado após o envio de uma notificação ao usuário. Pode ser utilizado quando for necessário registrar alguma informação, para auditoria, por exemplo.
Abaixo segue um exemplo de como implementar esse evento:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
function afterSendNotification(notification){ log.info("notification as send for " + notification.aliasReceiver); } |
São disponibilizadas algumas propriedades referentes à notificação que foi enviada.
Propriedade | Descrição | Tipo |
aliasSender | Alias de quem enviou a notificação. Pode vir nulo nos casos em que a notificação é enviada pelo sistema. | String |
aliasReceiver | Alias de quem vai receber a notificação. | String |
place | Lugar onde foi feita a ação que gerou a notificação. Pode vir nulo quando não for um lugar socializavel. | |
object | Objeto sobre o qual foi feita a ação que gerou o alerta. | |
eventType | Tipo do evento que gerou a notificação. | String |
metadata | Metadados da notificação. | Hashmap <String, String> |
priority | Prioridade da notificação. | String |
note | Nota enviada junto à notificação. | String |
Informações |
---|
Veja o exemplo (event-notification) no repositório do fluig clicando aqui. |
onDisplayTasks
Este evento é disparado antes de serem exibidas as tarefas das aba "Tarefas a concluir" , "Minhas solicitações", "Tarefas em pool", "Tarefas em consenso" e "Minhas tarefas sob gerência" na central de tarefas. Através dele é possível inserir, alterar ou remover itens da central de tarefas. O evento recebe como parâmetro uma lista de WorkflowTasksVO das tarefas existentes.
Exemplo adicionando, editando e removendo uma tarefa personalizada ao final da lista de tarefas:
Bloco de código | ||
---|---|---|
| ||
function onDisplayTasks(tasks) { // Adiciona uma tarefa customizada var newTask = new WorkflowTasksVO(); newTask.setCode("TOTVS"); newTask.setUrl("http://www.totvs.com"); newTask.setProcessDescription("Nova Tarefa"); newTask.setRequesterName("João da Silva"); newTask.setStateDescription("Atividade 1"); newTask.setColleagueName("Ana Maria"); newTask.setStartDateProcess("07/09/2025"); newTask.setDateExpires("07/10/2025"); tasks.add(newTask); for (var i = 0; i < tasks.size(); i++) { // Remove a solicitação com o id 1 if (tasks.get(i).getProcessInstanceId() == 1) { tasks.remove(i); i--; // Necessário para não pular um item após a remoção } else { // Altera a descrição de todos os processos para "Nova Tarefa alterada" tasks.get(i).setProcessDescription("Nova Tarefa alterada"); } } |
Disponibilizamos algumas informações para consulta através do método getValue.
Propriedade | Descrição | Tipo |
---|---|---|
WKUser | Código do usuário logado. | String |
WKUserLocale | Idioma do usuário logado. | String |
WKCompany | Número da empresa. | Int |
taskUserId | Código do usuário substituído, em caso de visualização da central como substituto. Nos demais casos retorna o usuário logado. | String |
taskType | Indicador do tipo de tarefas que estão sendo exibidas, “open” tarefas a concluir e “requests” para minhas solicitações. | String |
filter | Filtros utilizados. | Map<String, Object> |
order | Ordenação aplicada. | String |
maxResult | Número de resultados por página. | Int |
page | Número da página atual. | Int |
taskId | Em caso de pool, quando o taskType for pool, o taskId trará uma string contendo o tipo no caso ‘Role’ para papel ou ‘Group‘ para grupo e seu código. Exemplo: ‘Pool:Role:admin’ para um pool do papel ‘admin’. | String |
Bloco de código | ||||
---|---|---|---|---|
| ||||
function onDisplayTasks(links){ log.info("Usuário: " + getValue("WKUser")); } |
onDisplayTasksSummary
Este evento é disparado antes de serem exibidos os contadores das abas e gráficos da central de tarefas e widgets de BPM. Através dele é possível alterar números de tarefas pendentes de cada tipo.
Exemplo alterando o número de tarefas abertas e no prazo:
Bloco de código | ||
---|---|---|
| ||
function onDisplayTasksSummary(resumeTasks) { resumeTasks.openTasks=20; } |
O objeto recebido como parâmetro contém:
Propriedade | Descrição | Tipo |
---|---|---|
expiredTasks | Solicitações atrasadas. | Int |
openTasks | Solicitações no prazo. | Int |
myRequests | Minhas solicitações. | Int |
toApprover | Aprovação de documentos pendentes. | Int |
myDocuments | Documentos aguardando aprovação. | Int |
checkout | Documento em checkout. | Int |
learningTasks | Atividades de Aprendizado. | Int |
Bloco de código | ||
---|---|---|
| ||
function onDisplayTasksSummary(resumeTasks) { resumeTasks.expiredTasks=10; resumeTasks.openTasks=20; resumeTasks.myRequests=30; resumeTasks.toApprover=40; resumeTasks.myDocuments=50; resumeTasks.checkout=60; resumeTasks.learningTasks=70; } |
Disponibilizamos algumas informações para consulta através do método getValue.
Propriedade | Descrição | Tipo |
---|---|---|
WKUser | Código do usuário logado. | String |
WKUserLocale | Idioma do usuário logado. | String |
WKCompany | Número da empresa. | Int |
taskUserId | Código do usuário substituído, em caso de visualização da central como substituto. Nos demais casos retorna o usuário logado. | String |
Bloco de código | ||||
---|---|---|---|---|
| ||||
function onDisplayTasks(links){ log.info("Usuário: " + getValue("WKUser")); } |
...