Histórico da Página
...
| 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"));
} |
...